Xml XSD选项是否可以为空?
我已经阅读了XSD规范,但仍然感到困惑。空选项在XSD中有效吗?我的意思是,对于一个没有声明属性的简单选择,元素“a”或元素“b”是必须的,还是可以为空Xml XSD选项是否可以为空?,xml,xsd,Xml,Xsd,我已经阅读了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: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>
无论如何,请参见是,如果使用
minOccurs=“0”
,则受xsd:choice
控制的元素可以为空:
可以位于minOccurs=“0”
本身xsd:choice
可以在所有子项上minOccurs=“0”
xsd:choice
本身可以是空的,并且表示要定义的元素必须是空的
最后,请注意,在您的示例中,不,必须存在
a
或b
中的一个,因为minOccurs
的默认值是1
,实际上,这样说是合法的
<xs:choice minOccurs="17"/>
但没有针对此内容模型有效的实例文档。该实例必须符合其中一个备选方案,如果没有备选方案,那么这是不可能的
定义任何实例都不能满足的类型实际上是很有用的,例如,如果您想将类型限制为零。我知道minOccurs的默认值是1。您有三个答案,同时回答两个或三个不同的问题。你在问什么?您的意思是“xsd:choice元素可以是空的吗?”,还是“内容模型中的选项可以匹配文档实例中的空序列?”还是其他什么?