2012-01-19 6 views
1

XML文書の検証のためのXMLスキーマを作成しています。私はXMLデータのいくつかの順序付けられていない要素のためにいくつかのcomplexTypeコンテンツを定義することに固執しました。XMLスキーマの順序付けられていない要素を検証するXMLスキーマ

XMLデータは、以下のように表示されます

上記のXMLデータに示されるように
<country name="India"> 
    <state name="Karnataka"> 
     <!-- about state --> 
     <capital>Bangalore</capital> 
     <largestCity>Bangalore</largestCity> 
     <districts>30</districts> 
     <population>61130704</population> 
     <language>Kannada</language> 

     <!-- cities in state --> 
     <city name="Bijapur"> 
      <talukas>30</talukas> 
      <population>611307</population> 
     </city> 
     <city name="Belgaum"> 
       <talukas>30</talukas> 
       <population>6113070</population> 
     </city> 

     <!-- cities will be listed here --> 
    </state> 

    <state name="Maharashtra"> 
     <!-- about state --> 
     <largestCity>Mumbai</largestCity> 
     <capital>Mumbai</capital> 
     <population>112372972</population> 
     <language>Marathi</language> 
     <districts>35</districts> 

     <!-- cities in state --> 
     <!-- cities will be listed here --> 

    </state> 
</country> 

、それぞれ「状態」タグ下の最初の5つの要素は 任意の順序で現れることができます。

誰かがこのような種類の入力に対してxmlスキーマ定義を書くのを手伝ってください。

<xs:group name="stateElements"> 
     <xs:all> 
     <xs:element name="capital" type="xs:string"/> 
      .... 
    <xs:all> 
</xs:group> 
<xs:element name="state"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:group ref="stateElements"/> 
     <xs:element name="city" type="cityType" maxOccurs="unbound"/> 
     </xs:sequence> 
    <xs:complexType> 
<xs:element> 

これが動作していない: は、私はこのようないくつかのことを書き込もうとしました。

は、最も簡単な方法は、1ドロップグループの最大の発生で、<都市/>と呼ばれるもので、すべての<市/>要素をラップすること、そしてあなたの複合型を持つことになり、事前

答えて

0

にありがとう< state />のコンテンツモデルについては、< xsd:all />としてください。

あなたが回避しなければならない制限は、< xsd:all />コンポジタの下のどのパーティクルも(maxOccurs = "1")繰り返さないでください。

+0

ありがとうPetru Gardea、私は混合モデルを一緒に使うことはできません。 – santosh

+0

残念ながら、いいえ、xsd:allは非常に厄介です。私はそれが乾燥した読書であることを知っていますが、それは最善の情報源です:http://www.w3.org/TR/xmlschema-1/#Model_Groups、セクション3.8.6;同じページにあるxsd:allの詳細について見てください。 –

関連する問題