Forum » Izdelava spletišč » Validacija XML po XML shemi
Validacija XML po XML shemi

s1m0n ::
Poskušam validirat ta XML
A mi nikakor ne uspe. Napaka se vedno pojavi zaradi ID-jev področij! Shema pade pri referencah na ID-je v pojmih.
Npr.: če je ID področja = "1100" bo validacija uspela kakor bo nivoj globje toraj "1101" pa referenca na ta ID ne bo najdena v področjih.
Po tej shemi
A mi nikakor ne uspe. Napaka se vedno pojavi zaradi ID-jev področij! Shema pade pri referencah na ID-je v pojmih.
Npr.: če je ID področja = "1100" bo validacija uspela kakor bo nivoj globje toraj "1101" pa referenca na ta ID ne bo najdena v področjih.
<?xml version="1.0" encoding="utf-8"?>
<glosar naziv="Naslov">
<vir url="http://vir">vir</vir>
<jeziki>
<jezik id="2" naziv="slovenski"/>
</jeziki>
<podrocja>
<podrocje id="1000">
<nazivi>
<naziv jezik="2">Naslov</naziv>
</nazivi>
<podpodrocja>
<podrocje id="1100">
<nazivi>
<naziv jezik="2">Drug naslov</naziv>
</nazivi>
<podpodrocja>
<podrocje id="1101">
<nazivi>
<naziv jezik="2">Prvič</naziv>
</nazivi>
<podpodrocja/>
</podrocje>
<podrocje id="1102">
<nazivi>
<naziv jezik="2">Drugič</naziv>
</nazivi>
<podpodrocja/>
</podrocje>
<podrocje id="1103">
<nazivi>
<naziv jezik="2">Tretjič</naziv>
</nazivi>
<podpodrocja/>
</podrocje>
<podrocje id="1104">
<nazivi>
<naziv jezik="2">četrtič</naziv>
</nazivi>
<podpodrocja/>
</podrocje>
</podpodrocja>
</podrocje>
</podpodrocja>
</podrocje>
</podrocja>
<pojmi>
<pojem>
<nazivi>
<naziv jezik="2">Test1</naziv>
</nazivi>
<opredelitve>
<opredelitev jezik="2">
<![CDATA[ostala vsebina]]>
</opredelitev>
</opredelitve>
<podrocja>
<podrocje id="1101"/>
</podrocja>
<povezave/>
</pojem>
<pojem>
<nazivi>
<naziv jezik="2">Test2</naziv>
</nazivi>
<opredelitve>
<opredelitev jezik="2">
<![CDATA[ostala vsebina]]>
</opredelitev>
</opredelitve>
<podrocja>
<podrocje id="1102"/>
</podrocja>
<povezave/>
</pojem>
</pojmi>
</glosar>
Po tej shemi
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="glosar">
<xs:complexType>
<xs:sequence>
<xs:element ref="vir" minOccurs="1" maxOccurs="unbounded"/>
<xs:element ref="jeziki" minOccurs="1" maxOccurs="1"/>
<xs:element ref="podrocja" minOccurs="0" maxOccurs="1"/>
<xs:element ref="pojmi" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="naziv" use="required"/>
</xs:complexType>
<xs:key name="jezikID">
<xs:selector xpath="jeziki/jezik"/>
<xs:field xpath="@id"/>
</xs:key>
<xs:keyref name="jezikIdRef" refer="jezikID">
<xs:selector xpath=".//*"/>
<xs:field xpath="@jezik"/>
</xs:keyref>
<xs:key name="podrocjeID">
<xs:selector xpath="./podrocja/podrocje | .//podpodrocja/podrocje"/>
<xs:field xpath="@id"/>
</xs:key>
<xs:keyref name="podrocjeIdRef" refer="podrocjeID">
<xs:selector xpath="pojmi/pojem/podrocja/podrocje"/>
<xs:field xpath="@id"/>
</xs:keyref>
</xs:element>
<xs:element name="vir">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="url" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="jeziki">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="jezik"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="uniqueJezikId">
<xs:selector xpath="jezik"/>
<xs:field xpath="@id"/>
</xs:unique>
<xs:unique name="uniqueJezikNaziv">
<xs:selector xpath="jezik"/>
<xs:field xpath="@naziv"/>
</xs:unique>
</xs:element>
<xs:element name="jezik">
<xs:complexType>
<xs:attribute name="id" use="required" type="xs:integer"/>
<xs:attribute name="naziv" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="pojmi">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="pojem"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="nonEmptyString">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="podrocjaPojem" >
<xs:sequence>
<xs:element name="podrocje" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="nonEmptyString" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="pojem">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" ref="nazivi"/>
<xs:element minOccurs="0" ref="opredelitve"/>
<xs:element minOccurs="0" name="podrocja" type="podrocjaPojem"/>
<xs:element minOccurs="0" ref="povezave"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="uniquePodrocjeId">
<xs:selector xpath="podrocja/podrocje"/>
<xs:field xpath="@id"/>
</xs:unique>
</xs:element>
<xs:element name="opredelitve">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="opredelitev"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="opredelitev">
<xs:complexType mixed="true">
<xs:attribute name="jezik" use="required" type="xs:integer"/>
</xs:complexType>
</xs:element>
<xs:element name="povezave">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="povezava"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="povezava">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="naslov"/>
<xs:element ref="opis"/>
<xs:element ref="url"/>
</xs:choice>
<xs:attribute name="jezik" use="required" type="xs:integer"/>
</xs:complexType>
</xs:element>
<xs:element name="naslov" type="xs:string"/>
<xs:element name="opis" type="xs:string"/>
<xs:element name="url" type="xs:anyURI"/>
<xs:element name="podrocja">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="podrocje"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="nazivi">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="naziv"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="uniqueNazivJezik">
<xs:selector xpath="naziv"/>
<xs:field xpath="@jezik"/>
</xs:unique>
</xs:element>
<xs:element name="naziv">
<xs:complexType mixed="true">
<xs:attribute name="jezik" use="required" type="xs:integer"/>
</xs:complexType>
</xs:element>
<xs:element name="podrocje">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element ref="nazivi"/>
<xs:element ref="podpodrocja"/>
</xs:choice>
<xs:attribute name="id" use="required" type="nonEmptyString" />
</xs:complexType>
</xs:element>
<xs:element name="podpodrocja">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="podrocje"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Web services - Neveljavni karakterji v XMLOddelek: Programiranje | 4399 (3511) | boolsheat |
» | [C++] Pridobitev podatkov iz XMLOddelek: Programiranje | 907 (667) | keworkian |
» | XML viewerOddelek: Programska oprema | 1043 (955) | norcuron |
» | PHP XML->attributesOddelek: Programiranje | 1446 (1382) | keworkian |
» | [XML] xslt: sortOddelek: Programiranje | 1564 (1343) | house |