什么是xsd模式中的'序列'(但没有排序)

时间:2012-03-20 15:02:07

标签: xsd

我有一些带有序列的类型,它确实限制了子元素的顺序。我想删除这些订单限制。假设我不能(或不想)更改子元素的定义,我应该选择哪个元素? 例如,如果我用<xs:choise maxOccurs="unbounded">更改它将不会完全等同于<xs:sequence>,因为最初应该只出现一次的一些子元素现在可能会出现几次。 反之亦然,我不能使用xs:all,因为现在我对最大元素数量(不超过1)有限制。

那么,有简单快速的解决方案吗? (尽可能少地对架构进行更改)

2 个答案:

答案 0 :(得分:2)

简短的回答是你做不到的。

一个选项是为每个可能的节点序列组合定义一个类型,然后将它们包含在一个但是这可能是微不足道的。

答案 1 :(得分:0)

您可以将<sequence>打包在<choice>

<choice>
  <sequence>
    <!-- list your choices here -->
  </sequence>
</choice>