我对
XML Schema序列感到困惑
根据w3schools.com,
sequence元素指定子元素必须出现在序列中.每个子元素可以从0到任意次出现.
如果必须出现每个元素,它怎么会出现0次?这不会打破必须出现的规则吗?
根据w3schools.com,
sequence元素指定子元素必须出现在序列中.每个子元素可以从0到任意次出现.
如果必须出现每个元素,它怎么会出现0次?这不会打破必须出现的规则吗?
另一件事,有什么区别
<xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="choiceA" type="xs:string" > <xs:element name="choiceB" type="xs:string" /> </xs:choice>
还有这个:
<xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="choiceA" type="xs:string" > <xs:element name="choiceB" type="xs:string" /> </xs:sequence>
序列中的元素必须以架构中指定的顺序出现.但是如果使用minOccurs =“0”定义元素,则不必显示该元素.
这是一个与w3schools.com教程相似的例子.我刚刚将minOccurs =“0”添加到firstname元素中.
<xs:element name="employee"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string" minOccurs="0"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
在这种情况下,基于此定义的有效xml元素将是
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
或删除firstname元素,因为它有一个minOccurs =“0”
<employee> <lastname>Smith</lastname> </employee>
但是你不能混合元素的顺序.所以这将是无效的.
<employee> <lastname>Smith</lastname> <firstname>John</firstname> </employee>
至于选择和顺序之间的区别. choice元素只允许其中一个元素出现.因此,选择可以选择A或选择B,但不能同时选择.尽管定义序列的方式,每个序列元素将同时具有choiceA和choiceB.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。