如何使用XSD出现指示符来表示至少一个必需的

时间:2017-08-08 21:19:58

标签: xml xsd xsd-validation xml-validation

我想创建一个要求至少存在1个子元素的元素,但可能会有多个子元素出现多次。

以下示例均有效:

<Parent>
    <ChildA></ChildA>
    <ChildB></ChildB>
</Parent>

<Parent>
    <ChildB></ChildB>
    <ChildA></ChildA>
</Parent>

<Parent>
    <ChildB></ChildB>
    <ChildA></ChildA>
    <ChildB></ChildB>
    <ChildB></ChildB>
    <ChildB></ChildB>
    <ChildA></ChildA>
</Parent>

这将无效:

<Parent>
</Parent>

我找到但似乎不允许任何特定孩子出现可变数量的事件。

this似乎不允许多次出现

1 个答案:

答案 0 :(得分:1)

此XSD,

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Parent">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="ChildA"/>
        <xs:element name="ChildB"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

将成功验证至少包含一个列出的子元素的XML。您的有效示例将被视为有效,但不是您的无效示例。