XML 命名空间(Namespace)

 

XML 命名空间(Namespace)

 

 

为什么要使用命名空间

  为了避免元素名冲突。

  XML的元素名是不固定的,当两个不同的文档使用同样的名称描述两个不同类型的元素的时候,就会发生命名冲突。

  比如一个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>

  显然,如果这两个文档都要用,这就发生了命名的冲突。

 

用前缀来解决命名冲突

  使用前缀可以解决命名冲突问题:

<h:table>
   <h:tr>
   <h:td>Apples</h:td>
   <h:td>Bananas</h:td>
   </h:tr>
</h:table>
<f:table>
   <f:name>African Coffee Table</f:name>
   <f:width>80</f:width>
   <f:length>120</f:length>
</f:table>

   现在,两个文档都加上了前缀,所以标签变成了不同的名字,就解决了命名冲突。

 

使用命名空间(Namespaces)来解决命名冲突

  为标签加上xmlns 属性,这样就为前缀赋予了一个与某个命名空间相关联的限定名称。

<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.w3school.com.cn/furniture">
   <f:name>African Coffee Table</f:name>
   <f:width>80</f:width>
   <f:length>120</f:length>
</f:table>

   XML 命名空间属性被放置于元素的开始标签之中,并使用以下的语法:

  xmlns:namespace-prefix="namespaceURI"

  当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。

  元素和属性都可以应用命名空间。

 

参考资料

  w3school:

  http://www.w3school.com.cn/xml/xml_namespaces.asp

  圣思园张龙老师视频教程。

原文地址:https://www.cnblogs.com/mengdd/p/3111476.html