我知道这是正确的XML
<Data xmlns="http://w3.schools.com">
<One>Data1</One>
</Data>
xmlns
是一个属性,使用上面的语法意味着所有节点都用双引号属于命名空间。我无法理解的是xmlns
属性定义在哪里?
答案 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 prefix和defined as follows:
[2] PrefixedAttName ::= 'xmlns:' NCName
另见Namespace constraint: Reserved Prefixes and Namespace Names
前缀 xmlns 仅用于声明命名空间绑定,并且是 绑定到命名空间名称http://www.w3.org/2000/xmlns/的定义。 它不能被宣布。其他前缀不得与此绑定 名称空间名称,并且不能将其声明为默认名称空间。 元素名称不能有前缀xmlns。
<强> 2.3 Common Syntactic Constructs 强>
注意:强>
XML建议书[XML Names]中的命名空间赋予了意义 包含冒号字符的名称。因此,作者不应该使用 XML名称中的冒号,但名称空间除外,但是XML 处理器必须接受冒号作为名称字符。