XSD 选项可以为空吗?
Can XSD choice be empty?
我已经阅读了 XSD 规范,但我仍然感到困惑。 XSD 中的空选择是否有效?我的意思是,对于没有声明属性的简单选择,必须具有元素 "a" 或元素 "b",或者它可以为空吗?
<xs:complexType name="ChoiceType">
<xs:choice>
<xs:element name="a" type="type_a"/>
<xs:element name="b" type="type_b"/>
</xs:choice>
</xs:complexType>
在这种情况下可以为空
<xs:complexType name="ChoiceType">
<xs:choice minOccurs="0">
<xs:element name="a" type="type_a"/>
<xs:element name="b" type="type_b"/>
</xs:choice>
</xs:complexType>
随便看看this question
是的,由 xsd:choice
控制的元素可以为空,如果使用 minOccurs="0"
:
minOccurs="0"
可以在 xsd:choice
本身上。
minOccurs="0"
可以在所有 children.
相关答案:xsd:choice
本身可以为空,表示被定义的元素必须为空。
最后,请注意,在您的示例中,不,必须存在 a
或 b
之一,因为 minOccurs
的默认值为 1
.
其实说起来也挺合法的
<xs:choice minOccurs="17"/>
但是没有对这个内容模型有效的实例文档。实例必须符合备选方案之一,如果没有备选方案,那么这将是不可能的。
定义任何实例都无法满足的类型实际上很有用,例如如果您想将类型限制为无。
我已经阅读了 XSD 规范,但我仍然感到困惑。 XSD 中的空选择是否有效?我的意思是,对于没有声明属性的简单选择,必须具有元素 "a" 或元素 "b",或者它可以为空吗?
<xs:complexType name="ChoiceType">
<xs:choice>
<xs:element name="a" type="type_a"/>
<xs:element name="b" type="type_b"/>
</xs:choice>
</xs:complexType>
在这种情况下可以为空
<xs:complexType name="ChoiceType">
<xs:choice minOccurs="0">
<xs:element name="a" type="type_a"/>
<xs:element name="b" type="type_b"/>
</xs:choice>
</xs:complexType>
随便看看this question
是的,由 xsd:choice
控制的元素可以为空,如果使用 minOccurs="0"
:
minOccurs="0"
可以在xsd:choice
本身上。minOccurs="0"
可以在所有 children.
相关答案:xsd:choice
本身可以为空,表示被定义的元素必须为空。
最后,请注意,在您的示例中,不,必须存在 a
或 b
之一,因为 minOccurs
的默认值为 1
.
其实说起来也挺合法的
<xs:choice minOccurs="17"/>
但是没有对这个内容模型有效的实例文档。实例必须符合备选方案之一,如果没有备选方案,那么这将是不可能的。
定义任何实例都无法满足的类型实际上很有用,例如如果您想将类型限制为无。