哪个与此XML文档一起使用(顺序,全部或选择)

时间:2016-03-01 01:29:21

标签: xml xsd

请我有一个名为PLAT的标签,它可以再次包含VIANDE标签一次,LEGUMES标签所有这些标签可以按任何顺序出现 我尝试使用序列,但它们将按顺序显示,所有都以任何顺序出现,但a标签不能出现多次,关于选择问题是只是一个可以出现的元素

             的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>

我想做的是VIANDE可以出现一次或多次,LEGUMES只出现一次,但任何订单

这是我的XML Schema

<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 个答案:

答案 0 :(得分:0)

  

我想做的是VIANDE可以出现一次或多次和LEGUMES   只需一次,但任何订单

您可以将minOccurs="1" maxOccurs="1"添加到LEGUMES,将minOccurs="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>
相关问题