给出有效的XSD:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="personinfo">
<xs:complexType>
<xs:sequence maxOccurs="2">
<xs:element name="firstname" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
对于针对此XSD的有效XML,<personinfo>
应包含最多2个<firstname>
序列,后跟<lastname>
。我将minOccurs
和maxOccurs
添加到firstname
。对于下面的XML文件:
<personinfo>
<firstname>lalal</firstname>
<lastname>fwfw</lastname>
<firstname>lalal</firstname>
<lastname>fwfw</lastname>
</personinfo>
validator为什么它仍然有效?不要minOccurs
和maxOccurs
只是maxOccurs
覆盖xs:sequence
?
答案 0 :(得分:0)
不要
minOccurs
和maxOccurs
只是maxOccurs
覆盖xs:sequence
吗?
不,封闭xs:sequence
的出现限制意味着该组本身可以一起出现或按指定重复出现。包含单个元素的出现约束单独影响这些元素,而与它们的集合可能如何发生无关。
对于您的XSD,可以有一个或两个序列,每个序列都有firstname
(可选)和lastname
(必填)。