命名空间的做用是为了不元素命名冲突html
命名冲突spa
在XML中,元素名称是自定义的,当两个不一样的XML树在同一个文档中使用相同的元素名时,就会发生命名冲突,以下:
它们都使用到了<table>,XML解析器没法肯定如何处理这类冲突指针
<!--如下表示HTML表格的信息--> <table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table> <!--如下表示有关桌子的信息(一件家具)--> <table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
前缀code
在XML中的命名冲突能够经过使用名称前缀从而容易地避免。以下:xml
<!--下面实例中,不会有冲突,由于两个 <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>
命名空间htm
当在XML中使用前缀时,一个所谓的用于前缀的命名空间必须被定义
命名空间是在元素的开始标签的 xmlns 属性中定义的blog
命名空间声明的语法:xmlns:前缀="URI"。文档
在下面实例中,<table>标签的xmlns属性定义了 h: 和 f: 前缀的合格命名空间it
<!--当命名空间被定义在元素的开始标签中时,全部带有相同前缀的子元素都会与同一个命名空间相关联--> <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.w3cschool.cc/furniture"> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root> <!--命名空间,能够在他们被使用的元素中或者在 XML 根元素中声明--> <root xmlns:h="http://www.w3.org/TR/html4/" xmlns:f="http://www.w3cschool.cc/furniture"> <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> </root>
注意:
命名空间URI不会被解析器用于查找信息。
其目的是赋予命名空间一个唯一的名称
但不少公司经常会做为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息table