0

如何将 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 分组吗?或者从它们创建一个新的复杂对象?

4

1 回答 1

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>
于 2013-09-12T08:58:16.577 回答