2012-02-05 14 views
1

XML文書に適用するXMLスキーマ(XSDファイル)を作成したいとします。 のは、次のXML文書を考えてみましょう:XMLスキーマ+ complexType要素+シーケンスの代わり

後に所望の制約が尊重される
<root> 
    <a /> 
    <b /> 
    <c /> 
    <a /> 
    <a /> 
    <b /> 
</root> 

  1. <ルート>はルート要素です。
  2. < a>、< b>および<c>要素は無制限に表示されます。
  3. < a>、< b>および<c>要素はグループ化されません。例えば、要素は、<b>要素の前後に置くことができます。

私は次のように開始する例のXML文書に適用するためにXMLスキーマを作成する必要がありました場合:

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema targetNamespace="http://doesnotmatter.com/" 
      xmlns="http://doesnotmatter.com/" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="root" 
       min="1" 
       max="1"> 
     <complexType> 

      <!-- ? --> 

     </complexType> 
    </xs:element> 

</xs:schema> 

私は自分のスキーマ内<のcomplexType>要素を埋める方法がわかりません。
第3の制約のため、< sequence>要素を使用することはできません。
どのように3つの制約すべてを尊重するためにスキーマを達成することができますか。

編集

choice要素は、私の問題へのキーストーンでした。

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema targetNamespace="http://doesnotmatter.com/" 
      xmlns="http://doesnotmatter.com/" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="root"> 
    <xs:complexType> 

     <xs:choice maxOccurs="unbounded"> 
     <xs:element name="a" /> 
     <xs:element name="b" /> 
     <xs:element name="c" /> 
     </xs:choice> 

    </xs:complexType> 
    </xs:element> 

</xs:schema> 

答えて

0

ので、根のためのモデルがある:A、B、C:繰り返しこれらの可能性の中から選ぶ
はここで、上記の私のニーズに対応するXMLスキーマです。それですか?手術語は選択肢として選択されます。たぶん私は何かが欠けているかもしれませんが、答えはかなり明白です。

関連する問題