是否允许使用前缀不匹配的元素?

时间:2016-05-25 02:02:29

标签: xml xml-namespaces

"Common Syntatic Constructs" section of the XML 1.0 Recommendation包含以下注释:

  

XML建议书中的命名空间为名称赋予了意义   包含冒号字符。因此,作者不应该使用   除名称空间之外的XML名称中的冒号,但 XML处理器   必须接受冒号作为名字。

这意味着以下内容是无效的XML:

<xhtml:span
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
    xmlns:html="http://www.w3.org/1999/xhtml">
  <xhtml:a>Anchor text</html:a>
</xhtml:span>

但是,the "Qualified Names" section of the Namespaces in XML Recommendation包含以下声明:

  

请注意,前缀仅用作命名空间的占位符   名称。 应用程序应该使用命名空间名称,而不是前缀,   构造范围超出包含范围的名称   文档。

这会导致含糊不清。当发生类似这样的事情时,XML建议是否优先,上述文档是否无效,或者名称空间感知的XML处理器是否应首先将前缀转换为适当的名称空间并认为上述文档有效?

1 个答案:

答案 0 :(得分:2)

命名空间建议在第7节(一致性)中说明:

  

为符合本规范,文件必须格式正确   根据XML 1.0规范[XML]。

因此,开始和结束标记中使用的前缀必须匹配。