这个问题在这里已有答案:
- XML中的“xmlns”是什么意思? 6个答案
4090
2018-05-24 00:06
起源
对不起,水晶球需要清洁。也许您可以发布一些示例XML来向我们展示您在谈论什么? - bmargulies
非常类似于[stackoverflow.com/questions/5838343/... - colinross
答案:
来自 W3Schools的:
xmlns属性指定文档的xml命名空间。
这基本上有助于避免不同xml文档之间的命名空间冲突,例如,如果开发人员混合来自不同xml应用程序的xml文档。
这方面的一个例子(也来自W3网站):
用于定义html表的XML数据:
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
用于定义咖啡桌信息的XML数据
<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
这里有两个表元素,会产生冲突。要解决此问题,您可以添加命名空间以表示哪条信息定义了html表,哪些信息包含有关咖啡桌的信息:
<root>
<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table xmlns:f="http://www.w3schools.com/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
9
2018-05-24 00:11
请不要链接到带有文字“W3标准”的w3schools页面。看到 w3fools.com 。正如标准一样,w3schools在这里并不完全正确 - 它没有指定文档的命名空间 - 它为其出现的元素及其后代元素指定了无前缀元素的命名空间,除非那些后代元素重新定义它。它只有在用XML解析器解析时才有效。 - Alohci
W3Schools不是W3C所以不要写标准。我已编辑此问题以删除该声明。 - Quentin
想象一下,我们都定义了包含标签foobar的xlm模式。你会如何分辨? 如果两者都用在同一份文件中?答案是 - 我们将它们放在不同的命名空间中。这就是xmlns的用途 它类似于java包。
1
2018-05-24 00:12
当XHTML文档作为text / html提供时,通常是, xmlns
属性什么都不做。
当XHTML文档以XML内容类型提供时,该属性指定元素的默认命名空间。在这种情况下,实际影响是,如果省略属性,没有元素具有其HTML含义 - 所有元素都被视为纯XML,这意味着它们没有特殊行为,也没有默认格式,并且文档相当无用,它根本不作为HTML。
0
2017-10-15 07:25