XML(四)-命名空间

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"

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

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

posted @ 2016-05-16 13:13  Mirindasky  阅读(186)  评论(0编辑  收藏  举报