XSD-是否强制存在子标记?

XSD-是否强制存在子标记?,xsd,Xsd,这是一个非常简单的问题,但我的谷歌技能还没有给我答案,所以: XSD能否强制元素必须存在于更高级别的元素中?我知道你可以允许或不允许“显式设置为零”,但这听起来不是一回事 例如: <parentTag> <childTag1> ... stuff </childTag1> <childTag2> <!-- FAIL VALIDATION IF a childTag2 isn't in parentT

这是一个非常简单的问题,但我的谷歌技能还没有给我答案,所以:

XSD能否强制元素必须存在于更高级别的元素中?我知道你可以允许或不允许“显式设置为零”,但这听起来不是一回事

例如:

<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