XML
名字空间提供了一种避免元素名冲突的方法。
b>
名字冲突
由于
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>
如果这两个
XML
文档被加在一起,就会发生一个元素名冲突,因为这两个文档都包含了一个
< table>
元素,而这两个元素的内容和定义都不同。
b>
用一个前缀解决名冲突
下面这个
XML
文档在一个表格中携带了信息:
< h:table>
< h:tr>
< h:td>Apples< /h:td>
< h:td>Bananas< /h:td>
< /h:tr>
< /h:table>
而这个
XML
文档则携带了一件家具的信息:
< f:table>
< f:name>African Coffee Table< /f:name>
< f:width>80< /f:width>
< f:length>120< /f:length>
< /f:table>
现在就没有元素名冲突的问题了,因为两个文档分别给他们的
< table>
元素使用了不同的名字:
(< h:table>
和
< f:table>)
。
通过使用一个前缀,我们创建了两个不同类型的
< table>
元素。
b>
使用名字空间
下面这个
XML
文档在一个表格中携带了信息
:
< h:tablexmlns:h="http://www.w3.org/TR/html4/">
< h:tr>
< h:td>Apples< /h:td>
< h:td>Bananas< /h:td>
< /h:tr>
< /h:table>
这个
XML
文档携带了一件家具的信息
:
< f:tablexmlns:f="http://www.w3schools.com/furniture">
< f:name>African Coffee Table< /f:name>
< f:width>80< /f:width>
< f:length>120< /f:length>
< /f:table>
在这里不是只使用前缀,在
< table>
标记上还增加了一个
xmlns
属性,这样就给元素前缀一个与名字空间相联系的有资格的名字。
b>
名字空间属性
名字空间属性放在一个元素的起始标记中,它的语法如下
:
xmlns:namespace-prefix="namespace"
在上面的例子中,名字空间本身是用一个
Internet
地址定义的:
xmlns:f="http://www.w3schools.com/furniture">
W3C
名字空间规范规定名字空间本身应该是一个统一资源识别号
(URI)
。当一个名字空间在一个元素的起始标记中被定义时,所有有相同前缀的子元素都与同样的名字空间相关。
注意:分解器并不使用用来识别名字空间的地址去查找信息。这个地址唯一的目的就是给名字空间一个唯一的名字。但是,公司经常将名空间作为包含名空间信息的实际
Web
页面的一个指针。访问
http://www.w3.org/TR/html4/
试一试。
b>
统一资源识别号
一个统一资源识别号
(URI)
是识别一个
Internet
资源的字符串。通常
URI
就是识别一个
Internet
域地址的
URL
。另外,有少数一些类型的
URI
是通用资源名
(URN)
。在我们的例子中只使用
URL
。由于我们这个家具的例子中使用一个
Internet
地址去识别其名字空间,我们可以肯定我们的名字空间是唯一的。
posted on 2007-01-19 00:11
苦笑枯 阅读(201)
评论(0) 编辑 收藏 所属分类:
Xml