默认情况下,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 无法验证