Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XSD选项是否可以为空?_Xml_Xsd - Fatal编程技术网

Xml XSD选项是否可以为空?

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"/> <

我已经阅读了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>


无论如何,请参见是,如果使用
minOccurs=“0”
,则受
xsd:choice
控制的元素可以为空:

  • minOccurs=“0”
    可以位于
    xsd:choice
    本身
  • minOccurs=“0”
    可以在所有子项上
相关回答:
xsd:choice
本身可以是空的,并且表示要定义的元素必须是空的


最后,请注意,在您的示例中,不,必须存在
a
b
中的一个,因为
minOccurs
的默认值是
1
,实际上,这样说是合法的

<xs:choice minOccurs="17"/>

但没有针对此内容模型有效的实例文档。该实例必须符合其中一个备选方案,如果没有备选方案,那么这是不可能的


定义任何实例都不能满足的类型实际上是很有用的,例如,如果您想将类型限制为零。

我知道minOccurs的默认值是1。您有三个答案,同时回答两个或三个不同的问题。你在问什么?您的意思是“xsd:choice元素可以是空的吗?”,还是“内容模型中的选项可以匹配文档实例中的空序列?”还是其他什么?