Xml 扩展类型-继承元素排序
我在XSD中使用扩展类型,用于多种类型中需要的公共元素序列。但是,我希望控制将继承元素放入序列中的顺序。这就是我所拥有的: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"/>
<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一起工作,我不建议出现这种问题。谢谢,我担心可能是这样。我想我将不得不处理排序奇怪的问题,或者手动复制元素定义,这是我一直在努力避免的,因为我通常只需要添加一两个元素来处理相似数据的细微变化。