XSD の要素は、デフォルトで存在する必要があります。指定しない場合、子要素のminOccurs
プロパティは 1 に設定されます。
つまり、 を設定して、要素を明示的にオプションminOccurs="0"
にする必要があります。
スキーマの例
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="parentTag">
<xs:complexType>
<xs:sequence>
<xs:element name="childTag1" minOccurs="0"/> <!-- This element is optional -->
<xs:element name="childTag2"/> <!-- This element is required -->
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
有効な XML のテスト (xmllint を使用)
<?xml version="1.0"?>
<parentTag>
<childTag1>
<!-- ... stuff -->
</childTag1>
<childTag2>
<!-- ... stuff -->
</childTag2>
</parentTag>
testfile.xml が検証します
無効な XML のテスト
<?xml version="1.0"?>
<parentTag>
<childTag1>
<!-- ... stuff -->
</childTag1>
</parentTag>
testfile.xml:2: 要素のparentTag: スキーマの妥当性エラー: 要素 'parentTag': 子要素がありません。期待されるのは ( childTag2 ) です。
testfile.xml が検証に失敗する