我有一個XSD模式用於驗證XML文件。繼承的複雜類型中元素的順序
在XSD架構中,我創建了一個複合類型,其中包含一個屬性組和一個選項,本身包含「_output」,一個反覆出現的元素。
我的複雜類型:
<xs:complexType name="base_action">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="_output" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:attributeGroup ref="action"/>
</xs:complexType>
我也有其他元素(用自己的子元素)從複雜類型繼承。
這種繼承元素的爲例:現在
<xs:element name="ex_elem" minOccurs="0">
<xs:complexType>
<xs:complexContent>
<xs:extension base="cockpit_base_action">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="to" minOccurs="0"/>
<xs:element name="from" minOccurs="0"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
,在XML中,這將工作:
<ex_elem>
<_output/>
<from>0</from>
<to>1</to>
</ex_elem>
但不是這樣的:
<ex_elem>
<from>0</from>
<_output/>
<to>1</to>
</ex_elem>
還是這個:
<ex_elem>
<from>0</from>
<to>1</to>
<_output/>
</ex_elem>
從我的理解,複雜類型的選擇不能與繼承元素的選擇混合。這對我來說是一個問題,因爲有些情況下,我想將輸出放在其他地方,而不是頂部。
我希望能夠使用該元素而不必打擾序列。有沒有辦法做到這一點?