【简介】XML中的命名空间是为了实现,在一个XML树种出现两个或多个相同名称但不同含义的标签的正常解释,使用的是xmlns属性。
1. 通过xmlns属性定义前缀的命名空间
<table>
<tr>
<td>苹果</td>
<td>柚子</td>
</tr>
</table>
<table>
<name>桌子</name>
<width>80</width>
<length>120</length>
</table>
这两段代码都描述了一个<table>
标签对,但两个的含义是不一样的,第一个描述的是HTML中的table列表,而第二个描述的是table桌子的数据,如果这两段代码出现在了同一个文件中,解析器在解析的时候,就不能准确的解析两个的含义,而发生错误。
所以,我们需要对这两个table进行声明,通过命名空间来声明,使用xmlns的属性。
<root>
<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>苹果</h:td>
<h:td>柚子</h:td>
</h:tr>
</h:table>
<f:table xmlns:f="http://www.w3cschool.cc/furniture">
<f:name>桌子</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
两个<table>
标签分别定义了xmlns属性 h: 和 f: 前缀的命名空间。当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。
在使用的时候,在标签名前面加上”前缀 : “
同时,为了代码更加清晰,我们可以同时将两个命名空间都定义在根元素中,而在下面的<table>
中调用。
<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3cschool.cc/furniture">
<h:table>
<h:tr>
<h:td>苹果</h:td>
<h:td>柚子</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>桌子</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
附: 欢迎大家关注我的优酷空间一点编程 ,里边有同步视频教程- 【XML】命名空间-05 。同时也可以关注我的新浪微博-一点编程。