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
圣思园张龙老师视频教程。