我想创建一个XSD序列,其中元素可以是无序的,但可能具有有界的多重性。 This question类似,但多样性不是我需要的。
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element name="a" minOccurs="0" />
<xs:element name="b" maxOccurs="2" />
<xs:element name="c" minOccurs="1" />
</xs:choice>
</xs:sequence>
</xs:complexType>
例如,我在这里想要任何顺序的a,b和c。但最后我需要最多2 b和最小1 c,并且可能有0或很多a。我怎样才能在XSD中写这个?
答案 0 :(得分:2)
这可能无法在XSD 1.0中实现:你基本上需要一个xsd:all合成器(滚动到xsd:all示例),其中包含粒子可以有一个maxOccurs&gt; 1.
带有Schematron的XSD 1.0可以解决问题。XSD 1.1放宽了这个限制;如果您对其中任何一种选择感兴趣,请适当标记问题,我会更新答案。