Здраствуйте, помогите пожалуйста разобратся со схемой, валидатор (Altova XMLSpy) пишет что сама схема в порядке, но потом когда пробую проверить, соответсвтует ли xml документ схеме, получаю ошибку: The selector 'sl:prodavec' of identity constraint 'sl:IDProdavca' must evaluate to a node set. Вот схема: Код | <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sl="http://stas.Magazin.ru/seller" xmlns="http://stas.Magazin.ru/seller" targetNamespace="http://stas.Magazin.ru/seller" elementFormDefault="qualified"> <xsd:element name="Magazin" type="personal"> <xsd:key name="IDProdavca"> <xsd:selector xpath="sl:prodavec"/> <xsd:field xpath="@id"/> </xsd:key> <xsd:keyref name="ssylkaNaProdavca" refer="IDProdavca"> <xsd:selector xpath="sl:upravliajuscij"/> <xsd:field xpath="@id"/> </xsd:keyref> </xsd:element> <xsd:complexType name="personal"> <xsd:sequence> <xsd:element ref="sl:prodavec" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:element name="prodavec" type="sl:lichnost"/> <xsd:complexType name="lichnost"> <xsd:sequence> <xsd:element ref="sl:imia"/> <xsd:element ref="sl:familija"/> <xsd:element ref="sl:kod"/> <xsd:element ref="sl:prodajot"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:integer" use="required"/> </xsd:complexType> <xsd:element name="imia" type="xsd:NCName"/> <xsd:element name="familija" type="xsd:NCName"/> <xsd:element name="kod" type="sl:KOD"/> <xsd:simpleType name="KOD"> <xsd:restriction base="xsd:string"> <xsd:length value="11"/> <xsd:pattern value="[0-9]{11}"/> </xsd:restriction> </xsd:simpleType> <xsd:element name="prodajot"> <xsd:complexType> <xsd:sequence> <xsd:element ref="sl:telefon" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="telefon"> <xsd:complexType> <xsd:sequence> <xsd:element ref="sl:proizvoditel"/> <xsd:element ref="sl:model"/> <xsd:element ref="sl:cena"/> <xsd:element ref="sl:dataProizvodstva"/> <xsd:choice minOccurs="0"> <xsd:element ref="sl:masa"/> </xsd:choice> </xsd:sequence> <xsd:attribute name="tip" type="xsd:NCName" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="proizvoditel" type="xsd:string"/> <xsd:element name="model" type="xsd:string"/> <xsd:element name="cena" type="xsd:decimal"/> <xsd:element name="dataProizvodstva" type="xsd:date"/> <xsd:element name="masa" type="xsd:decimal"/> <xsd:simpleType name="masa"> <xsd:restriction base="xsd:decimal"> <xsd:minExclusive value="0"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="polProdavca"> <xsd:list> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="muz"/> <xsd:enumeration value="zen"/> </xsd:restriction> </xsd:simpleType> </xsd:list> </xsd:simpleType> <xsd:complexType name="lichnostSPolom"> <xsd:complexContent> <xsd:extension base="sl:lichnost"> <xsd:sequence> <xsd:element ref="sl:pol"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="pol" type="sl:polProdavca"/> <xsd:complexType name="MeniuJazyk"> <xsd:simpleContent> <xsd:extension base="xsd:token"> <xsd:attribute name="jazyk" type="xsd:language"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:complexType name="MeniuJazykData"> <xsd:simpleContent> <xsd:extension base="sl:MeniuJazyk"> <xsd:attribute name="data" type="xsd:date"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:schema>
|
хмл документ: Код | <?xml version="1.0" encoding="UTF-8"?> <sl:Magazin xsi:schemaLocation="http://stas.Magazin.ru/seller 1.xsd" xmlns:sl="http://stas.Magazin.ru/seller" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sl:prodavec id="123547"> <sl:imia>Andrej</sl:imia> <sl:familija>Kruglov</sl:familija> <sl:kod>65124587451</sl:kod> <sl:prodajot> <telefon tip="novyj" xmlns="http://stas.Magazin.ru/seller"> <proizvoditel>Nokia</proizvoditel> <model>N95</model> <cena>649.50</cena> <dataProizvodstva>2008-08-17</dataProizvodstva> <masa>250</masa> </telefon> <telefon tip="novyj" xmlns="http://stas.Magazin.ru/seller"> <proizvoditel>Nokia</proizvoditel> <model>6233</model> <cena>451</cena> <dataProizvodstva>2008-03-21</dataProizvodstva> <masa>250</masa> </telefon> <telefon tip="polzovanyj" xmlns="http://stas.Magazin.ru/seller"> <proizvoditel>Nokia</proizvoditel> <model>N75</model> <cena>520.99</cena> <dataProizvodstva>2008-10-10</dataProizvodstva> <masa>250</masa> </telefon> </sl:prodajot> </sl:prodavec> <sl:prodavec id="124158"> <sl:imia>Viktor</sl:imia> <sl:familija>familijanis</sl:familija> <sl:kod>65214521458</sl:kod> <sl:prodajot> <telefon tip="polzovanyj" xmlns="http://stas.Magazin.ru/seller"> <proizvoditel>samsung</proizvoditel> <model>I780</model> <cena>700</cena> <dataProizvodstva>2008-11-11</dataProizvodstva> </telefon> <telefon tip="polzovanyj" xmlns="http://stas.Magazin.ru/seller"> <proizvoditel>samsung</proizvoditel> <model>B220</model> <cena>104</cena> <dataProizvodstva>2007-04-15</dataProizvodstva> </telefon> </sl:prodajot> </sl:prodavec> <sl:prodavec id="126584"> <sl:imia>Anton</sl:imia> <sl:familija>Antonov</sl:familija> <sl:kod>63210254758</sl:kod> <sl:prodajot> <telefon tip="novyj" xmlns="http://stas.Magazin.ru/seller"> <proizvoditel>sonyericsson</proizvoditel> <model>C702</model> <cena>589.99</cena> <dataProizvodstva>2008-06-01</dataProizvodstva> </telefon> <telefon tip="novyj" xmlns="http://stas.Magazin.ru/seller"> <proizvoditel>sonyericsson</proizvoditel> <model>W980i</model> <cena>1100</cena> <dataProizvodstva>2008-12-01</dataProizvodstva> </telefon> </sl:prodajot> </sl:prodavec> </sl:Magazin>
|
хмл код, сгенерированный по схеме программой: Код | <?xml version="1.0" encoding="UTF-8"?> <!--Sample XML file generated by XMLSpy v2007 (http://www.altova.com)--> <sl:Magazin xsi:schemaLocation="http://stas.Magazin.ru/seller 1.xsd" xmlns:sl="http://stas.Magazin.ru/seller" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sl:prodavec id="0"> <sl:imia>NCName</sl:imia> <sl:familija>NCName</sl:familija> <sl:kod>00000000000</sl:kod> <sl:prodajot> <sl:telefon tip="NCName"> <sl:proizvoditel>String</sl:proizvoditel> <sl:model>String</sl:model> <sl:cena>0.0</sl:cena> <sl:dataProizvodstva>1967-08-13</sl:dataProizvodstva> <sl:masa>0.0</sl:masa> </sl:telefon> <sl:telefon tip="NCName"> <sl:proizvoditel>String</sl:proizvoditel> <sl:model>String</sl:model> <sl:cena>0.0</sl:cena> <sl:dataProizvodstva>1967-08-13</sl:dataProizvodstva> <sl:masa>0.0</sl:masa> </sl:telefon> </sl:prodajot> </sl:prodavec> <sl:prodavec id="0"> <sl:imia>NCName</sl:imia> <sl:familija>NCName</sl:familija> <sl:kod>00000000000</sl:kod> <sl:prodajot> <sl:telefon tip="NCName"> <sl:proizvoditel>String</sl:proizvoditel> <sl:model>String</sl:model> <sl:cena>0.0</sl:cena> <sl:dataProizvodstva>1967-08-13</sl:dataProizvodstva> <sl:masa>0.0</sl:masa> </sl:telefon> <sl:telefon tip="NCName"> <sl:proizvoditel>String</sl:proizvoditel> <sl:model>String</sl:model> <sl:cena>0.0</sl:cena> <sl:dataProizvodstva>1967-08-13</sl:dataProizvodstva> <sl:masa>0.0</sl:masa> </sl:telefon> </sl:prodajot> </sl:prodavec> </sl:Magazin>
|
Сгенерированный хмл документ тоже непроходит валидауию :( Подскажите пожалуйста, что неправильно и как можно исправить этот key и keyref, или подскажите, какой можно придумать ключ для данного хмл документа? С Уважением, Станислав. Это сообщение отредактировал(а) iveyk - 15.4.2009, 21:23
|