我搜索了一大堆,在发布之前找不到任何类似的问题。我正在创建一个XSD,一个complexType有这些要求:
它基本上适用于“无,一个(但特定的一个),或两者兼而有之”,但我无法弄清楚我做错了什么,任何帮助都会受到赞赏
<xs:complexType name="Foo">
<xs:choice minOccurs="0">
<xs:sequence>
<xs:element name="fieldOne" maxOccurs="1"/>
</xs:sequence>
<xs:sequence>
<xs:element name="fieldOne" maxOccurs="1"/>
<xs:element name="fieldTwo" maxOccurs="1"/>
</xs:sequence>
</xs:choice>
</xs:complexType>
答案 0 :(得分:2)
您可以使用可选序列执行此操作:
<xs:complexType name="Foo">
<xs:sequence minOccurs="0">
<xs:element name="fieldOne"/>
<xs:element name="fieldTwo" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
fieldTwo
出现的唯一方法是让序列出现一次,在这种情况下也需要fieldOne
。