cod*_*rex 9 html xml namespaces
有没有人知道xmlnsHTML,XML文件的确切用法是什么?
编辑:为什么我们需要这个命名空间?它的用途是什么?
Ant*_*nes 13
该xmlns属性具有特殊处理,允许声明命名空间.
文档中的所有名称(如标记名称)都属于名称空间.如果没有该xmlns属性,则所有名称都属于"无名称"命名空间.因此: -
<root><item /></root>
Run Code Online (Sandbox Code Playgroud)
在上面的例子都root和item都在"没有名字"的命名空间名称.鉴于: -
<root xmlns="urn:mydomain.com:mystuff"><item /></root>
Run Code Online (Sandbox Code Playgroud)
现在,root与item存在于"瓮:mydomain.com:的MyStuff"命名空间.
所述xmlns还能够限定其中可以从他人通过使用别名前缀来区分附加命名空间的元素: -
<root xmlns="urn:mydomain.com:mystuff" xmlns:a="urn:otherdomain.com:other">
<item>
<a:supplement />
</item>
</root>
Run Code Online (Sandbox Code Playgroud)
在这种情况下root,item继续在"urn:mydomain.com:mystuff"命名空间中,但a:supplement表示该名称supplement位于"urn:otherdomain.com:other"命名空间中.
这有什么作用?
XML中的X代表eXtensible.一个目标是允许附加信息分层到现有文档上,即扩展文档的能力.考虑:-
甲方创建文件: -
<root>
<item />
<root>
Run Code Online (Sandbox Code Playgroud)
乙方通过提供其他信息扩展了该文件:
<root>
<item />
<supplement />
</root>
Run Code Online (Sandbox Code Playgroud)
后来的甲方将新信息添加到原始形式的文档中,恰好也使用了supplement原始名称.我们最终会得到类似的东西: -
<root>
<item />
<supplement />
<supplement />
</root>
Run Code Online (Sandbox Code Playgroud)
哪个补充元素属于哪一方?通过使用名称空间,文档看起来像这样:
<root xmlns="urn:mydomain.com:mystuff" xmlns:a="urn:otherdomain.com:other">
<item />
<supplement />
<a:supplement />
</root>
Run Code Online (Sandbox Code Playgroud)
现在,在解析和查询XML时,它清楚哪个元素属于谁.命名空间消除了本来是一组全局简单名称之间的冲突.