首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML包含多个可接受类型的maxOccurs=“无界”元素

XML包含多个可接受类型的maxOccurs=“无界”元素
EN

Stack Overflow用户
提问于 2014-05-17 14:39:17
回答 2查看 1.9K关注 0票数 2

是否有可能为具有maxOccurs=“无界”的元素制定XSD模式,该元素接受不同的值类型作为其项?例如:

代码语言:javascript
复制
<myArray>
    <A>first</A>
    <A>second</A>
    <A>third</A>
    <B>fourth</B>
    <B>fifth</B>
</myArray>

如果不是,这是一种非标准类型的XML结构设计吗?

类似地,在XHTML中:

代码语言:javascript
复制
<body>
    <p></p>
    <br />
    <img />
</body>

这是否意味着xhtml是不标准的?

更新:以前称为“数组元素”的maxOccurs=“无界”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-18 05:44:39

嗯,我通过使用xsd refs找到了这个方法。结论:这是可能的,是标准的。

“myArray”的架构:

代码语言:javascript
复制
<?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>
票数 3
EN

Stack Overflow用户

发布于 2014-05-18 02:21:58

XSD没有将任何类型的元素识别为“数组元素”,所以您的问题的含义并不完全清楚。XSD中没有要求元素的所有子元素都具有相同的名称或类型。

XSD确实要求,通过“元素声明一致”约束,任何同名的兄弟姐妹都具有相同的类型(或兼容的类型,具有由一些相当密集和复杂的散文定义的“兼容性”)。

由于异构数组在某些编程语言中造成困难,我可以想象一些程序员希望设计他们的XML以避免构造映射到异构数组中。但是XHTML的设计在任何意义上都是不标准的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23712564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档