我正在阅读关于XML、XML、DTD和xsd:any和xsd:anyType之间的区别。
有人能给我解释一下吗?或者说一些好文章?(请不要链接到XML规范--我读过了,我更困惑了)
提亚
发布于 2011-03-22 09:45:10
这个职位很好地解释了这一点。我引述如下:
xsd:anyType是一种类型,类似于xsd:integer (虽然xsd:anyType是特殊的,因为它可以充当一个简单的或复杂的类型,它基本上不对它验证的树设置任何限制--把它松散地看作是模式语言对java.lang.Object的模拟)。 抽样用途如下:
<xsd:element name="e" type="xsd:anyType"/>这意味着名为
<e>的元素可以具有任何内容、任何属性等。 xs:any是通配符,可用作内容模型中的术语。例如:
<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模式。
发布于 2013-04-08 22:54:34
在我创建以下示例之前,在dogbane的回答中链接的邮件列表帖子对我来说并不清楚:
使用anyType模式:
<xsd:complexType name="Outer">
<xsd:element name="e" type="xsd:anyType" />
</xsd:complexType>允许这种格式:
<Outer>
<e> // must be called "e"
// but anything can go inside
</e>
</Outer>对于任何模式:
<xsd:complexType name="Outer">
<xsd:any />
</xsd:complexType>允许这种格式:
<Outer>
//anything can go inside
</Outer>所以anyType是一种类型,任意都是一个元素
https://stackoverflow.com/questions/5389076
复制相似问题