xmlns属性有什么作用?

时间:2011-05-24 00:06:10

标签: html validation xhtml

验证需要我设置但为什么?我喜欢认为我的xhtml文档中的代码正在做些什么。

3 个答案:

答案 0 :(得分:9)

来自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>

答案 1 :(得分:1)

想象一下,我们都定义了包含标签foobar的xlm架构。你会如何区分? 如果两者都用在同一份文件中?答案是 - 我们将它们放在不同的命名空间中。这就是xmlns的用途 它类似于java包。

答案 2 :(得分:0)

当XHTML文档按照通常的方式提供给text / html时,xmlns属性不执行任何操作。

当XHTML文档以XML内容类型提供时,该属性指定元素的默认命名空间。在这种情况下,实际影响是如果省略属性,没有元素具有其HTML含义 - 所有元素都被视为纯XML,这意味着它们没有特殊行为,也没有默认格式,并且文档相当无用,它根本不作为HTML。