XML 命名空间提供避免元素命名冲突的方法。


命名冲突

在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。

这个 XML 携带 HTML 表格的信息:






Apples Bananas

这个 XML 文档携带有关桌子的信息(一件家具):


African Coffee Table
80
120

假如这两个 XML 文档被一起使用,由于两个文档都包含带有不同内容和定义的 元素,就会发生命名冲突。

XML 解析器无法确定如何处理这类冲突。


使用前缀来避免命名冲突

在 XML 中的命名冲突可以通过使用名称前缀从而容易地避免。

该 XML 携带某个 HTML 表格和某件家具的信息:



Apples
Bananas




African Coffee Table
80
120

在上面的实例中,不会有冲突,因为两个

元素有不同的名称。


XML 命名空间 - xmlns 属性

当在 XML 中使用前缀时,一个所谓的用于前缀的命名空间必须被定义。

命名空间是在元素的开始标签的xmlns 属性中定义的。

命名空间声明的语法如下。xmlns:前缀="URI"。



xmlns:h="http://www.w3.org/TR/html4/">

Apples
Bananas



xmlns:f="http://www.w3cschool.cc/furniture">
African Coffee Table
80
120


在上面的实例中,

标签的 xmlns 属性定义了 h: 和 f: 前缀的合格命名空间。

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

命名空间,可以在他们被使用的元素中或者在 XML 根元素中声明:

xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3cschool.cc/furniture">



Apples
Bananas




African Coffee Table
80
120


注释:命名空间 URI 不会被解析器用于查找信息。

其目的是赋予命名空间一个惟一的名称。不过,很多公司常常会作为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息。

请访问 http://www.w3.org/TR/html4/。


统一资源标识符(URI,全称 Uniform Resource Identifier)

统一资源标识符(URI)是一串可以标识因特网资源的字符。

最常用的 URI 是用来标识因特网域名地址的统一资源定位器(URL)。另一个不那么常用的 URI 是统一资源命名(URN)。

在我们的实例中,我们仅使用 URL。


默认的命名空间

为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。它的语法如下:

xmlns=" namespaceURI"

这个 XML 携带 HTML 表格的信息:






Apples Bananas