如何設計我的xsd忽略元素順序?忽略使用xs的元素順序:擴展名
<root> <a/> <b/> </root>
<root> <b/> <a/> </root>
我需要使用extension
代碼生成的原因,所以我嘗試以下使用all
:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.example.com/test"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:t="http://www.example.com/test" >
<xs:complexType name="BaseType">
<xs:all>
<xs:element name="a" type="xs:string" />
</xs:all>
</xs:complexType>
<xs:complexType name="ExtendedType">
<xs:complexContent>
<xs:extension base="t:BaseType">
<xs:all> <!-- ERROR -->
<xs:element name="b" type="xs:string" />
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="root" type="t:ExtendedType"></xs:element>
</xs:schema>
此XSD無效儘管如此,報道Ë以下錯誤在<!-- ERROR -->
:
COS-全limited.1.2:含{分鐘發生} = {發生最大} = 1的所有模型組必須出現在粒子,而且粒子必須是部分構成複合類型定義的{內容類型}的一對中的一個。
的cos-all-limited.1.2文檔說:
1.2的顆粒的含{發生最大} = 1,這是一對部分中的{術語}屬性構成的複合型的{內容類型}定義。
我不是很懂這個(既不是xsd也不是英文母語:))。
我做錯了什麼,我做錯了什麼,或者沒有辦法做到這一點?
@Peter對,我錯過了一部分。這是一個更新。 – Bolo 2010-04-22 10:45:09
感謝您的更新。不幸的是,我需要在基類型中定義一些元素,並且在擴展中定義一些元素,所以除非有另一種方式,否則擴展類型的元素將始終必須放在基類型的元素之後... – 2010-04-22 10:55:45
@Peter在這種情況下,由於「兩個內容模型被視爲一個連續組的兩個孩子」,所以沒有辦法(據我所知)忽略這個序列。 – Bolo 2010-04-22 12:09:04