xs:element与xs:sequence设置maxOccurs="unbounded"的差异咨询
两个XML Schema的核心差异
这两个Schema的本质区别在于**maxOccurs="unbounded"约束的作用对象不同**,直接导致它们允许的XML实例结构完全不同:
第一个Schema中,
maxOccurs="unbounded"被定义在<xs:sequence>标签上
这表示:同一组<firstname>、<lastname>、<address>、<city>、<country>元素可以连续重复多次,所有这些重复的元素组都必须包裹在同一个<personinfo>根元素内部。符合该Schema的XML实例示例:
<personinfo> <firstname>John</firstname> <lastname>Doe</lastname> <address>123 Main St</address> <city>New York</city> <country>USA</country> <firstname>Jane</firstname> <lastname>Smith</lastname> <address>456 Oak Ave</address> <city>London</city> <country>UK</country> </personinfo>第二个Schema中,
maxOccurs="unbounded"被定义在根元素<xs:element name="personinfo">上
这表示:整个<personinfo>元素本身可以重复出现多次,每个<personinfo>内部只包含一组固定顺序的<firstname>到<country>元素。符合该Schema的XML实例示例:
<personinfo> <firstname>John</firstname> <lastname>Doe</lastname> <address>123 Main St</address> <city>New York</city> <country>USA</country> </personinfo> <personinfo> <firstname>Jane</firstname> <lastname>Smith</lastname> <address>456 Oak Ave</address> <city>London</city> <country>UK</country> </personinfo>
内容的提问来源于stack exchange,提问作者Kalki70
相关产品推荐
相关产品推荐

