如何将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吗?或者从中创建一个新的复杂对象?
答案 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>