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

How to use XSD occurance indicators to denote at least one required

我想创建一个元素,该元素至少需要 1 个 child 才能存在,但可能会多次出现一个或多个 child。

以下示例都是有效的:

<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,但它似乎不允许任何特定 child.

的出现次数可变

all 似乎也不允许出现超过一次

这个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。您的有效示例将被视为有效,但不是您的无效示例。