What does the xmlns attribute do? [duplicate]

2020-07-03 04:14发布

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

3条回答
Deceive 欺骗
2楼-- · 2020-07-03 04:34

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>

查看更多
男人必须洒脱
3楼-- · 2020-07-03 04:42

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.

查看更多
霸刀☆藐视天下
4楼-- · 2020-07-03 04:45

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.

查看更多
登录 后发表回答