如何使用 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。您的有效示例将被视为有效,但不是您的无效示例。
我想创建一个元素,该元素至少需要 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。您的有效示例将被视为有效,但不是您的无效示例。