0

我想创建一个 XSD 序列,其中元素可以是无序的,但可能具有有限的多重性。这个问题很相似,但多样性不是我所需要的。

<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 中写这个?

4

1 回答 1

2

这在 XSD 1.0 中可能无法实现:您基本上需要一个xsd:all合成器(滚动到 xsd:all 示例),其中包含的粒子的 maxOccurs > 1。

带有 Schematron 的 XSD 1.0 可以正常工作。

XSD 1.1 放宽了这个限制;如果您对其中任何一个选项感兴趣,请适当地标记问题,我会更新答案。

于 2013-10-29T15:43:55.650 回答