xmlns属性有什么作用?

12 html validation xhtml

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

Kyl*_*yle 10

来自W3Schools:

xmlns属性指定文档的xml命名空间.

这基本上有助于避免不同xml文档之间的命名空间冲突,例如,如果开发人员混合来自不同xml应用程序的xml文档.

这方面的一个例子(也来自W3网站):

用于定义html表的XML数据:

<table>
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

用于定义咖啡桌信息的XML数据

<table>
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>
Run Code Online (Sandbox Code Playgroud)

这里有两个表元素,会产生冲突.要解决此问题,您可以添加命名空间以表示哪条信息定义了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>
Run Code Online (Sandbox Code Playgroud)

  • 请不要链接到带有文字"W3标准"的w3schools页面.见http://w3fools.com.正如标准一样,w3schools在这里并不完全正确 - 它没有指定文档的命名空间 - 它为其出现的元素及其后代元素指定了无前缀元素的命名空间,除非那些后代元素重新定义它.它只有在用XML解析器解析时才有效. (20认同)