XSD-是否强制存在子标记?
这是一个非常简单的问题,但我的谷歌技能还没有给我答案,所以: XSD能否强制元素必须存在于更高级别的元素中?我知道你可以允许或不允许“显式设置为零”,但这听起来不是一回事 例如:XSD-是否强制存在子标记?,xsd,Xsd,这是一个非常简单的问题,但我的谷歌技能还没有给我答案,所以: XSD能否强制元素必须存在于更高级别的元素中?我知道你可以允许或不允许“显式设置为零”,但这听起来不是一回事 例如: <parentTag> <childTag1> ... stuff </childTag1> <childTag2> <!-- FAIL VALIDATION IF a childTag2 isn't in parentT
<parentTag>
<childTag1>
... stuff
</childTag1>
<childTag2> <!-- FAIL VALIDATION IF a childTag2 isn't in parentTag!!! -->
... stuff
</childTag2>
</parentTag>
... 东西
... 东西
如果是,语法是什么?XSD中的元素在默认情况下需要存在。如果未指定,则子元素的属性设置为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)
testfile.xml验证
测试无效的XML
<?xml version="1.0"?>
<parentTag>
<childTag1>
<!-- ... stuff -->
</childTag1>
</parentTag>
testfile.xml:2:element parentTag:Schemas有效性错误:元素“parentTag”:缺少子元素。预期为(childTag2)。
testfile.xml无法验证
+1,尽管默认值为
minOccurs=“1”
,但无需明确指定。谢谢,这非常有用:)
testfile.xml validates
<?xml version="1.0"?>
<parentTag>
<childTag1>
<!-- ... stuff -->
</childTag1>
</parentTag>
testfile.xml:2: element parentTag: Schemas validity error : Element 'parentTag': Missing child element(s). Expected is ( childTag2 ).
testfile.xml fails to validate