【发布时间】:2018-04-07 03:43:57
【问题描述】:
如果有人能确认以下模式的解释是否正确,我将不胜感激:
<xs:element name="Element1">
<xs:complexType>
<xs:sequence>
<xs:element name="Child1" minOccurs="0" />
<xs:element name="Child2" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
虽然Child1 和Child2 都是可选的,但Element1 必须至少有一个孩子才能符合上述模式;即文件:
<Element1></Element1>
不遵守。要使其有效,它需要序列minOccurs = 0(?)
更新
当子元素是可选的时,问题与序列(和所有)出现的含义有关。比如文档;
<Element1>
<Child2/>
<Child1/>
</Element1>
将符合上述架构。该序列将发生两次;在第一遍中,Child1 缺席。第二次,Child2 缺席。但关键是,序列minOccurs(默认为1)是满足的,因为它出现了两次。
对于我上面给出的第一个示例(只是Element1;没有子元素),序列根本不会出现,并且(IMO)不满足minOccurs = 1。
【问题讨论】:
标签: xml xsd xsd-validation xml-validation