首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xsd:any和xsd:anyType的异同

xsd:any和xsd:anyType的异同
EN

Stack Overflow用户
提问于 2011-03-22 09:25:25
回答 2查看 45.1K关注 0票数 24

我正在阅读关于XML、XML、DTD和xsd:anyxsd:anyType之间的区别。

有人能给我解释一下吗?或者说一些好文章?(请不要链接到XML规范--我读过了,我更困惑了)

提亚

EN

回答 2

Stack Overflow用户

发布于 2011-03-22 09:45:10

这个职位很好地解释了这一点。我引述如下:

xsd:anyType是一种类型,类似于xsd:integer (虽然xsd:anyType是特殊的,因为它可以充当一个简单的或复杂的类型,它基本上不对它验证的树设置任何限制--把它松散地看作是模式语言对java.lang.Object的模拟)。 抽样用途如下:

代码语言:javascript
复制
<xsd:element name="e" type="xsd:anyType"/>

这意味着名为<e>的元素可以具有任何内容、任何属性等。 xs:any是通配符,可用作内容模型中的术语。例如:

代码语言:javascript
复制
<xsd:complexType name="T">
  <xsd:sequence>
    <xsd:element ref="A"/>
    <xsd:any />
    <xsd:element ref="C"/>
  </xsd:sequence>
</xsd:complexType>

类型T的元素必须具有内容<A/><???/><C/>,其中<???>可以是任何命名元素。现在,如果您仔细研究一下,就会发现在推荐中给出的xsd:anyType的定义是近似的,它使用xsd:any通配符来表示它允许任何元素。

还请看一下XML模式

票数 33
EN

Stack Overflow用户

发布于 2013-04-08 22:54:34

在我创建以下示例之前,在dogbane的回答中链接的邮件列表帖子对我来说并不清楚:

使用anyType模式:

代码语言:javascript
复制
<xsd:complexType name="Outer">
    <xsd:element name="e" type="xsd:anyType" />
</xsd:complexType>

允许这种格式:

代码语言:javascript
复制
<Outer>
    <e> // must be called "e"
        // but anything can go inside
    </e>
</Outer>

对于任何模式:

代码语言:javascript
复制
<xsd:complexType name="Outer">
    <xsd:any />
</xsd:complexType>

允许这种格式:

代码语言:javascript
复制
<Outer>
    //anything can go inside
</Outer>

所以anyType是一种类型,任意都是一个元素

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

https://stackoverflow.com/questions/5389076

复制
相关文章

相似问题

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