XSD:当子序列的minOccurs = 0时,父元素是否可选?

时间:2014-11-26 17:33:26

标签: xml xsd

给出XSD文件

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="myElement" type="myType"/>
 <xs:complexType name="myType">
  <xs:sequence>
   <xs:element name="myContent">
    <xs:complexType>
     <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="myContentElement" nillable="true" type="myContentType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:sequence>
 </xs:complexType>
 </xs:element>

最里面的序列中的minOccurs是否以某种方式向上传播?

换句话说:以下是此XSD的有效xml:
<?xml version="1.0" encoding="UTF-8"?><myElement/>

我本来期望得到至少这个:
<?xml version="1.0" encoding="UTF-8"?><myElement><myContent/></myElement>

1 个答案:

答案 0 :(得分:2)

不,元素的要求不受其内容模型中子元素的必要性的影响。你的第一个例子是无效的;你的第二个例子是有效的。

当然,如果父元素是可选的并且省略,则其子元素不能出现。只有当父元素存在时,它的子女的必要性才会重要。