具有可选子元素的默认XML序列(或全部)必须至少有一个子元素吗?
不
Child1
Child2
Element1
必须在
至少有一个子级符合上述模式
的默认值
minOccurs
是
1
,因此您正确地假设
xsd:sequence
xsd:sequence minOccurs="1"
只要其子项的发生约束满足一次,则满足。当所有子引用约束均为
minOccurs="0"
,允许一个空序列。
<Element1/>
有效,即使没有任何
儿童1
或
儿童2
子元素。
另请参见
其他示例:
XSD带
xs:sequence minOccurs="0"
<xs:element name="r">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name="a"/>
<xs:element name="b"/>
</xs:sequence>
</xs:complexType>
</xs:element>
有效XML:
<r/>
和
<r><a/><b/></r>
XSD带
xs:sequence minOccurs="1"
(默认)
<xs:element name="r">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="a"/>
<xs:element name="b"/>
</xs:sequence>
</xs:complexType>
</xs:element>
有效XML:
<r>&书信电报;a/>&书信电报;b/></r>
XSD带
xs:sequence minOccurs="2"
<xs:element name="r">
<xs:complexType>
<xs:sequence minOccurs="2" maxOccurs="2">
<xs:element name="a"/>
<xs:element name="b"/>
</xs:sequence>
</xs:complexType>
</xs:element>
有效XML:
<r><a/><b/><a/><b/></r>