XML Schema,每个子元素之一?

时间:2010-10-22 20:07:08

标签: xml xsd

我想定义一个允许子元素以任何顺序出现的模式,类似于<choice minOccurs="0" maxOccurs="unbounded">,但只允许每个元素中的一个,类似于<sequence minOccurs="1" maxOccurs="1">

可以这样做吗?

例如

<Root>
 <ele1>
 <ele3>
 <ele2>
</Root>    <!--Valid-->

如下所示:

<Root>
 <ele1>
 <ele1>
 <ele3> 
</Root> <!--Invalid-->

2 个答案:

答案 0 :(得分:0)

您可以将maxOccurs="1"添加到元素中。

答案 1 :(得分:0)

使用xs:all而不是xs:sequence,所以你要写:

<xs:element name="Root">
    <xs:complexType>
            <xs:all>
                <xs:element name="element1"/>
                <xs:element name="element2"/>
                <xs:element name="element3"/>
            </xs:all>
    </xs:complexType>
</xs:element>