Xsd 如何编写一个模式来生成具有扩展名的无序xml

Xsd 如何编写一个模式来生成具有扩展名的无序xml,xsd,jaxb,Xsd,Jaxb,在以下模式中,我尝试生成扩展SimpleConfiguration对象的无序xml: <xs:complexType name="forTestingConfigurationObjectCreator"> <xs:complexContent> <xs:extension base="simpleConfigurationObject"> <xs:all> <xs:element name="a" t

在以下模式中,我尝试生成扩展SimpleConfiguration对象的无序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 “all不是组中唯一的粒子,或用作扩展”(这是正确的)

当然,如果将基本元素放在xs:all中,而根本不使用xs:extension,我将得到无序模式限制。(但这不是我想要的)

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


谢谢

您不能这样做,模式规范禁止这样做。请参见亨利·汤普森(规范的作者)的解释


简而言之:当解析器到达派生类型时,必须完全解析基类型的内容模型;这对于您试图实现的目标是不可能的。

您不能,这是模式规范所禁止的。请参见亨利·汤普森(规范的作者)的解释

简而言之:当解析器到达派生类型时,必须完全解析基类型的内容模型;这是不可能的,因为你正在努力实现