[英]validating repeating element groups with schema
我在尝试使我的xml针对我的架构进行验证时遇到了很大的困难。 发生以下错误:
Element 'date': This element is not expected. Expected is ( race ).
Element 'date': This element is not expected. Expected is ( race ).
Element 'date': This element is not expected. Expected is ( race ).
Element 'date': This element is not expected. Expected is ( race ).
以下是我的架构
<!-- Structure definition -->
<xs:element name="history">
<xs:complexType>
<xs:sequence>
<xs:element ref="period" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="period">
<xs:complexType>
<xs:sequence>
<xs:element ref="date" minOccurs="1" maxOccurs="unbounded"/>
<xs:element ref="track" minOccurs="1" maxOccurs="unbounded"/>
<xs:element ref="race" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="year" type="Tyear"/>
</xs:complexType>
</xs:element>
<xs:element name="date">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="track">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="race">
<xs:complexType>
<xs:sequence>
<xs:element ref="rider" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="nr" type="Tracenr"/>
</xs:complexType>
</xs:element>
<xs:element name="rider">
<xs:complexType>
<xs:sequence>
<xs:element ref="place" maxOccurs="1"/>
<xs:element ref="first_name" maxOccurs="1"/>
<xs:element ref="last_name" maxOccurs="1"/>
<xs:element ref="manufacturer" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="place">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="first_name">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="last_name">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="manufacturer">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
</xs:schema>
这是我的xml的小快照
<history>
<period year="2011">
<date>10/16/2011</date>
<track>Portimao</track>
<race nr="1">
<rider>
<place>1</place>
<first_name>Marco</first_name>
<last_name>Melandri</last_name>
<manufacturer>Yamaha</manufacturer>
</rider>
<rider>
<place>2</place>
<first_name>Eugene</first_name>
<last_name>Laverty</last_name>
<manufacturer>Yamaha</manufacturer>
</rider>
[...]
<rider>
<place>DNF</place>
<first_name>Tom</first_name>
<last_name>Sykes</last_name>
<manufacturer>Kawasaki</manufacturer>
</rider>
</race>
<date>10/16/2011</date>
<track>Portimao</track>
<race nr="2">
<rider>
<place>1</place>
<first_name>Carlos</first_name>
<last_name>Checa</last_name>
<manufacturer>Ducati</manufacturer>
</rider>
<rider>
<place>2</place>
<first_name>Sylvain</first_name>
<last_name>Guintoli</last_name>
<manufacturer>Ducati</manufacturer>
</rider>
[...]
<rider>
<place>15</place>
<first_name>Noriyuki</first_name>
<last_name>Haga</last_name>
<manufacturer>Aprilia</manufacturer>
</rider>
</race>
<date>10/02/2011</date>
<track>Magny-Cours</track>
<race nr="1">
<rider>
<place>1</place>
<first_name>Carlos</first_name>
<last_name>Checa</last_name>
<manufacturer>Ducati</manufacturer>
</rider>
[...]
前一年,“期间”重复了3次。 非常感谢你
由于序列(日期,曲目,比赛)重复,因此您需要指定以下内容:
<xs:sequence maxOccurs="unbounded">
<xs:element ref="date" minOccurs="1" maxOccurs="unbounded"/>
<xs:element ref="track" minOccurs="1" maxOccurs="unbounded"/>
<xs:element ref="race" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.