次のルールを適用するXSD(v1.0ベース)を定義したいと思います...
parent1要素があり、次の子要素child1、child2、およびchild3を持つことができます。
- parent1はchild1の0-1を持つことができます
- parent1はchild2の0-1を持つことができます
- parent1は0を持つことができます-child3の無制限
アイテムの順序は重要ではありません。例えば
<parent1>
<child3/>
<child1/>
<child2/>
<child3/>
<child3/>
</parent1>
近づきましたが、葉巻はありません。私が得ることができる最も近いものは、最小値と最大値の強制ですが、順序は強制されます。
<xsd:element name="parent1" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="child1" minOccurs="0" maxOccurs="1"/>
<xsd:element name="child2" minOccurs="0" maxOccurs="1" />
<xsd:element name="child3" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
all
の代わりにを使用してみましたが、子要素の場合は1にsequence
制限されます。シーケンスを置き換えるためにchoiceをmaxOccurs
使用してみましたが、それは下に持つことができる要素の数を制限するものではありません。maxOccurs
child1
child2
parent1
編集:これはXSDv1.0用です
XSD 1.1で機能するソリューションを見つけましたが、Eclipseのようなものでどれほどサポートされているかがわかったら、 1.0を使い続けます。