如何编写一个生成带扩展名的无序xml的模式

时间:2010-04-11 01:03:44

标签: xsd jaxb

在下面的模式中,我试图创建一个扩展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,我将获得无序的模式限制。 (但这不是我想要的)

问题是:如何使用扩展名生成无序模式?

由于

1 个答案:

答案 0 :(得分:1)

你不能,这是架构规范所禁止的。请参阅Henry Thompson的this post(规范的作者)以获得解释。

简而言之:在解析器到达派生类型时,必须完全解析基类型的内容模型;这是你无法实现的目标。