我正在尝试编写XML模式文件 用户可以在其中添加多个地址 我按此顺序写了字段
Address1
Address2
Address3
AddressType
City
State
Country
ZIP
我只是在这里编写示例代码。
<complexType name="Addresses_Type">
<sequence>
<element name="Address" type="tns:Address_Type" maxOccurs="unbounded" minOccurs="1" ></element>
</sequence>
</complexType>
<complexType name="Address_Type">
<attribute name="Address1" type="string" use="required"></attribute>
<attribute name="Address2" type="string" use="required"></attribute>
<attribute name="Address3" type="string" use="required"></attribute>
<attribute name="AddressType" type="string" use="required"></attribute>
<attribute name="City" type="string" use="required"></attribute>
<attribute name="State" type="string" use="required"></attribute>
<attribute name="Country" type="string" use="required"></attribute>
<attribute name="ZIP" type="string" use="required"></attribute>
</complexType>
但是,当用户想要添加新地址时
字段的顺序不同。 在我的情况下,它按照以下顺序发生
ZIP
State
City
Address3
Country
AddressType
Address2
Address1
为什么它以随机顺序提供属性。 是否有任何方法可以获得我在架构中提到的订单。
答案 0 :(得分:0)
You cannot enforce the ordering of attributes in an XML document
如果排序很重要,您应该将这些内容定义为包含内容的元素,而不是属性。然后,您可以使用<xs:sequence>
强制执行订购。
向您呈现属性的顺序将取决于XML文档中的内容,以及如何实现为您提供属性的解析器。在任何情况下,您都不应该依赖于按某种顺序显示的属性,即使文档总是以某种顺序提供它们。此外,架构无法强制文档必须以某种顺序提供它们。