xs:在xs:all中选择

时间:2011-11-06 11:32:20

标签: xsd

可以在xs:sequence,

中使用xs:choice元素
<xs:sequence>
    <xs:choice>...</xs:choice>
</xs:sequence>

但不在xs:all里面。这是为什么?解析xml时是否会产生一些歧义?

1 个答案:

答案 0 :(得分:3)

这只能由XML Schema的设计者真正回答。您可以将其提交给XSD新闻组(xmlschema-dev@w3.org)。我的猜测是模糊性和/或复杂性是问题所在。

例如,模糊性,考虑让一个包含两个子项的所有组作为选择组,并且每个子组都有一个名为“X”的元素,它们有两种不同的类型。当解析器遇到X元素时,X是它:属于第一选择组或第二选择组的那个(请注意它确实很重要,因为您必须知道要对哪个类型进行验证)?也许设计师可以指定约束来避免这种模糊,但也许这样做太复杂而且不值得。