オプション要素と必須要素の両方を許可する複雑な要素を作成する際に問題に直面しています。以下の xml では、h2 は必須で、h1 はオプションであり、順序は関係ありません。
ケース 1:
<root>
<h1/>
<h2/>
</root>
ケース 2:
<root>
<h2/>
</root>
ケース 3:
<root>
<h2/>
<h1/>
</root>
XSD:
<xs:element name="root">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="h1" minOccurs="0"></xs:element>
<xs:element name="h2" minOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
上記の 3 番目のケースはこの xsd では失敗しますが、そのようなケースは有効です。上記のすべてのケースに有効な xsd が必要です。