Xml 扩展类型-继承元素排序

Xml 扩展类型-继承元素排序,xml,xsd,Xml,Xsd,我在XSD中使用扩展类型,用于多种类型中需要的公共元素序列。但是,我希望控制将继承元素放入序列中的顺序。这就是我所拥有的: <xs:complexType name="subType"> <xs:complexContent> <xs:extension base="baseType"> <xs:sequence> <xs:element name="name" type="xs:string"/>

我在XSD中使用扩展类型,用于多种类型中需要的公共元素序列。但是,我希望控制将继承元素放入序列中的顺序。这就是我所拥有的:

<xs:complexType name="subType">
  <xs:complexContent>
    <xs:extension base="baseType">
      <xs:sequence>
        <xs:element name="name" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="baseType">
  <xs:sequence>
    <xs:element name="element1" type="xs:string"/>
    <xs:element name="element2" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

这是结果排序:

<subType>
  <element1>element1</element1>
  <element2>element2</element2>
  <name>name</name>
</subType>

要素1
元素2
名称
我希望子类型中定义的序列首先出现在序列中,以实现:

<subType>
  <name>name</name>
  <element1>element1</element1>
  <element2>element2</element2>
</subType>

名称
要素1
元素2

这可能吗?总的来说,我理解表示的是相同的数据,但我希望控制顺序,以便尽可能直观。

在同一个编译集内,不可能实现这样的目标。如果重用位于列表的顶部(与面向对象相反),那么您可以通过s实现内容的重用,即group1将有,group2将有;在不同类型中,您可以更改组1和组2的相对位置以满足您的需要


在不同的集合中,可以通过使用重定义(两个重定义)实现变化。但是,即使在这种情况下,基类型内容也会显示在子类型之前。如果只是因为大多数使用XSD进行代码绑定的工具无法与s一起工作,我不建议出现这种问题。

谢谢,我担心可能是这样。我想我将不得不处理排序奇怪的问题,或者手动复制元素定义,这是我一直在努力避免的,因为我通常只需要添加一两个元素来处理相似数据的细微变化。