xmlns属性在哪里定义?

时间:2016-07-28 11:20:30

标签: xml xml-namespaces

我知道这是正确的XML

<Data xmlns="http://w3.schools.com">
  <One>Data1</One>
</Data>

xmlns是一个属性,使用上面的语法意味着所有节点都用双引号属于命名空间。我无法理解的是xmlns属性定义在哪里?

1 个答案:

答案 0 :(得分:1)

有关xmlns属性和xmlns:前缀的定义,请参阅Namespaces in XML 1.0 W3C Recommendation

使用xmlns的理由摘要:

  • 使用xmlns 作为属性来定义XML命名空间,这是一个 命名标准旨在允许各方独立定义 元素和属性名称的词汇表,同时避免命名 碰撞。
  • 使用xmlns: 作为前缀来定义XML的自定义前缀 名称空间值可以通过简写引用。

属性xmlns

属性xmlns reserved attribute并且是defined as follows

  

DefaultAttName ::= 'xmlns'

前缀xmlns:

前缀xmlns: reserved prefixdefined as follows

  

[2] PrefixedAttName ::= 'xmlns:' NCName

另见Namespace constraint: Reserved Prefixes and Namespace Names

  

前缀 xmlns 仅用于声明命名空间绑定,并且是   绑定到命名空间名称http://www.w3.org/2000/xmlns/的定义。   它不能被宣布。其他前缀不得与此绑定   名称空间名称,并且不能将其声明为默认名称空间。   元素名称不能有前缀xmlns。

来自XML Recommendation

的参考资料

<强> 2.3 Common Syntactic Constructs

  

注意:

     

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