2012-03-31 6 views
0

私の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> 
私のスキーマです

そして、これは「期間」は、前の年のために3回以上を繰り返し

<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> 
     [...] 

私のxmlの小さなスナップショットです。 は、シーケンス(日付、トラック、レース)が繰り返されるので、何卒ご

答えて

1

ありがとう、あなたがこれを指定する必要があります。

<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> 
+0

ありがとうございましたが、今、私は次のエラーを取得:要素「レース」:行方不明の子供を要素。予想されるのは(ライダー)です。 – Iuli

+0

しかし、要素名= "race"にはライダー要素があることが指定されています – Iuli

+0

私は尋ねられたように質問を解決しました。その答えを受け入れてください。さらに無関係な質問がある場合は、新しい質問をしてください。 –

関連する問題