如何指定允许任何顺序的一系列元素的XSD?

时间:2010-02-05 21:51:11

标签: xml xsd

我有一些看起来像这样的XSD:

<element name="a">
  <complexType>
    <sequence>
      <element name="b" type="t:typ" minOccurs="1" maxOccurs="unbounded" />
      <element name="c" type="t:typ" minOccurs="1" maxOccurs="unbounded" />
    </sequence>
  </complexType>
</element>

我如何更改它以便代替序列,我可以允许标签b和c以任何顺序混杂,例如我怎么能使这个有效?..

<a>
  <b />
  <c />
  <b />
  <c />
  <b />
  <b />
</a>

'all'选项听起来很有希望,但它似乎只允许每个子元素中只有一个。

2 个答案:

答案 0 :(得分:4)

我相信你想要这个:

<element name="a">
  <complexType>
    <choice maxOccurs="unbounded">
      <element name="b" type="t:typ" />
      <element name="c" type="t:typ" />
    </choice>
  </complexType>
</element>

答案 1 :(得分:0)

你能尝试一下无界的选择元素序列吗?像这样的东西? (另)

<element name="a"> 
  <complexType> 
    <sequence maxOccurs="unbounded" minOccurs="0">
      <choice> 
        <element name="b" type="t:typ" /> 
        <element name="c" type="t:typ" /> 
      </choice>
    </sequence>
  </complexType> 
</element>