xsd架构中的一个或多个元素

时间:2013-09-12 08:06:50

标签: xml xsd

如何将xsd定义为具有单个元素或一组不同元素。

<xs:complexType name="oneOrMany">
    <xs:sequence>
        <xs:element name="one" minOccurs="1" maxOccurs="1"/>
        <xs:element name="two" minOccurs="1" maxOccurs="1"/>
        <xs:element name="three" minOccurs="1" maxOccurs="1"/>
        <xs:element name="four" minOccurs="1" maxOccurs="1"/>
    <xs:sequence>
</xs:complexType>

考虑上面的代码段。我想要一个新元素(称之为五个),或者所有元素一,二,三和四存在。没有其他组合应该有效。它还需要向后兼容现有结构。

我需要分组1 2 3和4吗?或者从中创建一个新的复杂对象?

1 个答案:

答案 0 :(得分:1)

对complexType进行一些修改应该这样做:

<xs:complexType name="oneOrMany">
    <xs:choice>
        <xs:sequence>
            <xs:element name="one" minOccurs="1" maxOccurs="1"/>
            <xs:element name="two" minOccurs="1" maxOccurs="1"/>
            <xs:element name="three" minOccurs="1" maxOccurs="1"/>
            <xs:element name="four" minOccurs="1" maxOccurs="1"/>
        <xs:sequence>
        <xs:element name="five" minOccurs="1" maxOccurs="1"/>
    </xs:choice>
</xs:complexType>