2011-05-02 9 views
0

すべてのノード<foo>には、<c1>の1つ以上の出現か、または<c2>の出現が次のようにしか含まれていないxmlスキーマを作成する必要があります。子ノードを制限するためのXMLスキーマ

<main> 
    <foo> 
    <a></a> 
    <b></b> 
    <c1></c1> 
    </foo> 
    <foo> 
    <a></a> 
    <b></b> 
    <c1></c1> 
    </foo> 
    <foo> 
    <a></a> 
    <b></b> 
    <c1></c1> 
    </foo> 
</main> 

または

<main> 
    <foo> 
    <a></a> 
    <b></b> 
    <c2></c2> 
    </foo> 
    <foo> 
    <a></a> 
    <b></b> 
    <c2></c2> 
    </foo> 
    <foo> 
    <a></a> 
    <b></b> 
    <c2></c2> 
    </foo> 
</main> 

誰も私を助けることができますか?

答えて

0

"どちらか - または"状況がある場合、ソリューションは通常<xs:choice>です。 maxOccursおよびminOccurs属性を使用して、表示できる要素の回数を制限します。これらの属性のデフォルト値は "1"で、これらの属性を追加しない場合に使用されます。

<foo>要素の定義のサンプルコードスニペット。使用方法に注意してください。<xs:choice>maxOccurs="unbounded"

<xs:element name="foo"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="a" type="xs:string /> 
      <xs:element name="b" type="xs:string /> 
      <xs:choice> 
       <xs:element name="c1" maxOccurs="unbounded" type="xs:string /> 
       <xs:element name="c2" type="xs:string /> 
      </xs:choice> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
関連する問題