2016-03-01 60 views
-2

請給我一個名爲PLAT的標籤,它可以再次包含VIANDE標籤,並且所有這些標籤的LEGUMES標籤都可以以任何順序出現 我試過使用序列,但他們會以出現在,所有出現在任何順序,但標籤不能出現不止一次,關於選擇的問題是,僅僅一個元素可以出現哪一個使用這個XML文檔(序列,全部或選擇)

的salade

<PLAT> Plat du jour: Poulet 
     <VIANDE>Omelette</VIANDE> 
     <LEGUMES>Frites</LEGUMES> 
     <VIANDE>Poulet</VIANDE> 
    </PLAT> 
    <DESSERT>Tartelette</DESSERT> 
</MENU> 
<MENU jour="mardi"> 
    <ENTREE>Pâté</ENTREE> 
    <PLAT> Plat du jour: Lapin 
     <LEGUMES>Frites</LEGUMES> 
     <VIANDE>Poulet</VIANDE> 
    </PLAT> 
    <DESSERT>Banane</DESSERT> 
</MENU> 

什麼我想要做的是,

,這裏是我的XML Schema VIANDE可以出現一次或多次和豆類只有一次,但該等命令

<xs:element name="MENUS"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="MENU"> 
       <xs:complexType> 
        <xs:sequence> 
         <xs:element name="ENTREE" type="xs:string"/> 
         <xs:element name="PLAT"> 
          <xs:complexType mixed="true"> 
           <xs:all > 
            <xs:element name="VIANDE" type="xs:string" /> 
            <xs:element name="LEGUMES" type="xs:string"/> 
           </xs:all> 
          </xs:complexType> 
         </xs:element> 
         <xs:element name="DESSERT" type="xs:string"/> 
        </xs:sequence> 
        <xs:attribute name="jour" type="jourSemaine" use="required"/> 
       </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
+1

請[編輯]你的問題,[格式化你的代碼(http://meta.stackoverflow.com/questions/251361/how-do -i-format-my-code-blocks),連貫地寫,發現週期密鑰,並至少假裝尊重那些你希望能幫助你的人。 – kjhughes

+0

@kjhunghes,感謝您的建議。我想這很清楚,我不知道問題出在哪裏。 – Rodrigo

+0

一個問題是,問題中的單詞不會形成英語句子。大多數Stack Overview的讀者對於非母語人士都是耐心的,並且會試圖解釋它的含義,但這在這裏證明是不可能的,因爲(第二個問題)這個問題並沒有使用句號來區分意圖成爲單獨句子的東西。結果是至少有些讀者(例如我)不知道你想說什麼。第三個問題是你的代碼難以辨認,因爲它的縮進嚴重。第四個問題:問題1-3表明你是一個時間匯。 –

回答

0

什麼我想要做的是,VIANDE可以出現一次或多次和豆類 只有一次,但該等命令

您可以添加到minOccurs="1" maxOccurs="1"豆類和到VIANDE

你的XML

<MENUS> 
<MENU jour="mardi"> 
<ENTREE>Pâté</ENTREE> 
<PLAT> Plat du jour: Lapin 
    <LEGUMES>Frites</LEGUMES> 
    <VIANDE>Poulet</VIANDE> 
</PLAT> 
<DESSERT>Banane</DESSERT> 
</MENU> 
</MENUS> 

期望中的XSD

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="MENUS" type="MENUSType"/> 
    <xs:complexType name="MENUType"> 
    <xs:sequence> 
     <xs:element type="xs:string" name="ENTREE"/> 
     <xs:element type="PLATType" name="PLAT"/> 
     <xs:element type="xs:string" name="DESSERT"/> 
    </xs:sequence> 
    <xs:attribute type="xs:string" name="jour"/> 
    </xs:complexType> 
    <xs:complexType name="PLATType" mixed="true"> 
    <xs:sequence> 
     <xs:element type="xs:string" name="LEGUMES" minOccurs="1" maxOccurs="1"/> 
     <xs:element type="xs:string" name="VIANDE" minOccurs="1"/> 
    </xs:sequence> 
    </xs:complexType> 
    <xs:complexType name="MENUSType"> 
    <xs:sequence> 
     <xs:element type="MENUType" name="MENU"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:schema>