What does the xmlns attribute do? [duplicate]

北城余情 提交于 2019-12-21 07:28:14

问题


Validation requires that I set it but why? I like to think the code in my xhtml document is doing something.


回答1:


From the W3Schools:

the xmlns attribute specifies the xml namespace for a document.

This basically helps to avoid namespace conflicts between different xml documents, if for instance a developer mixes xml documents from different xml applications.

An example of this (also from the W3 website):

XML data to define an html table:

<table>
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

XML data to define information about a coffee table

<table>
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

There are two table elements here, which would produce a conflict. To fix this, you can add a namespace to signify which piece of information defines an html table and which comprises information about a coffee table:

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




回答2:


Imagine that we both defined xlm schemas that include tag foobar. How would you distinguish if both are used in the same document? The answer is - we put them in diferent namespaces. And that's what xmlns is for It's similar to java packages.




回答3:


When an XHTML document is served as text/html, as it usually is, the xmlns attribute does nothing.

When an XHTML document is served with an XML content type, the attribute specifies the default namespace of elements. In this case, the practical impact is that if the attribute is omitted, no element has its HTML meaning – all elements are taken as pure XML, which means that they have no special behavior and no default formatting, and the document is rather useless, it isn’t taken as HTML at all.



来源:https://stackoverflow.com/questions/6104438/what-does-the-xmlns-attribute-do

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!