是否有可能为具有maxOccurs=“无界”的元素制定XSD模式,该元素接受不同的值类型作为其项?例如:
<myArray>
<A>first</A>
<A>second</A>
<A>third</A>
<B>fourth</B>
<B>fifth</B>
</myArray>如果不是,这是一种非标准类型的XML结构设计吗?
类似地,在XHTML中:
<body>
<p></p>
<br />
<img />
</body>这是否意味着xhtml是不标准的?
更新:以前称为“数组元素”的maxOccurs=“无界”
发布于 2014-05-18 05:44:39
嗯,我通过使用xsd refs找到了这个方法。结论:这是可能的,是标准的。
“myArray”的架构:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A" type="xs:string" />
<xs:element name="B" type="xs:string" />
<xs:element name="myArray">
<xs:complexType>
<xs:sequence>
<xs:element ref="A" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="B" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>发布于 2014-05-18 02:21:58
XSD没有将任何类型的元素识别为“数组元素”,所以您的问题的含义并不完全清楚。XSD中没有要求元素的所有子元素都具有相同的名称或类型。
XSD确实要求,通过“元素声明一致”约束,任何同名的兄弟姐妹都具有相同的类型(或兼容的类型,具有由一些相当密集和复杂的散文定义的“兼容性”)。
由于异构数组在某些编程语言中造成困难,我可以想象一些程序员希望设计他们的XML以避免构造映射到异构数组中。但是XHTML的设计在任何意义上都是不标准的。
https://stackoverflow.com/questions/23712564
复制相似问题