簡體   English   中英

具有強制性元素和任意順序的xml xsd復雜類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM