xml – xsd – 序列与选择
发布时间:2020-12-16 05:35:54 所属栏目:百科 来源:网络整理
导读:我对 XML Schema序列感到困惑 根据w3schools.com, sequence元素指定子元素必须出现在序列中.每个子元素可以从0到任意次出现. 如果必须出现每个元素,它怎么会出现0次?这不会打破必须出现的规则吗? 另一件事,有什么区别 xs:choice minOccurs="0" maxOccurs="
我对
XML Schema序列感到困惑
根据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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ReactNative.createElement is deprecated. Use React.crea
- PVRFrameEnableControlWindow函数--cocos
- Flex中使用HTTPService与服务器端交换数据
- ruby-on-rails – 用于大型XML下载的快速ruby http库
- 为 Swift 的协议实现 Equatable
- c# – 如何在运行时更改WinForms应用程序的文化
- c# – 将HTML窗体的宽度设置为100%,就像在HTML中一样
- Flex判断对象的类型(转)
- c# – Throttle Rx.Observable不跳过值
- 详解NoSQL数据库Apache Cassandra的配置