在下面的模式中,我试图创建一个扩展simpleConfigurationObject的无序xml:
<xs:complexType name="forTestingConfigurationObjectCreator">
<xs:complexContent>
<xs:extension base="simpleConfigurationObject">
<xs:all>
<xs:element name="a" type="xs:string"/>
<xs:element name="b" type="xs:string" minOccurs="0"/>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="simpleConfigurationObject">
<xs:all>
<xs:element name="base" type="xs:string" minOccurs="0"/>
</xs:all>
</xs:complexType>
但是我在xs上收到以下错误:all “所有不是该组中唯一的粒子,或者被用作扩展” (这是正确的)
如果将基本元素放在xs:all中并且根本不使用xs:extension,我将获得无序的模式限制。 (但这不是我想要的)
问题是:如何使用扩展名生成无序模式?
由于
答案 0 :(得分:1)
你不能,这是架构规范所禁止的。请参阅Henry Thompson的this post(规范的作者)以获得解释。
简而言之:在解析器到达派生类型时,必须完全解析基类型的内容模型;这是你无法实现的目标。