[英]xml xsd complextype with mandatory elements and arbitrary order
我正在嘗試編寫一個包含強制性元素但以任意順序排列的復雜類型架構。 我的復雜類型如下所示:
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="link" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
<xs:element name="Plan" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
</xs:choice>
如果我僅輸入兩個元素之一,則xml文件將是有效的(雖然它不應是有效的):
<link>123<link/>
要么
<Plan>222<Plan/>
是有效的,而我只希望以下內容有效:
<link>123<link/>
<Plan>222<Plan/>
要么
<Plan>222<Plan/>
<link>123<link/>
你能幫我嗎? 謝謝
<xs:choice minOccurs="0" maxOccurs="1">
<xs:sequence>
<xs:element name="link" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
<xs:element name="Plan" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:sequence>
<xs:element name="Plan" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
<xs:element name="link" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:choice>
可以解決問題,但是如果這只是偽示例代碼,請嘗試使用<xs:group>
和<xs:choice>
如果每個元素最多只能出現一次,請使用xs:all:
<xs:all>
<xs:element name="link" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
<xs:element name="Plan" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
</xs:all>
在XSD 1.1中,當元素可以重復時,它也適用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.