本文概述
- XML命名空间声明
- 如何摆脱名称冲突?
- 统一资源标识符(URI)
- 默认命名空间
XML命名空间声明使用保留的XML属性声明XML名称空间。该属性名称必须以” xmlns” 开头。
让我们看一下XML名称空间语法:
<
element xmlns:name = "URL">
在这里, 名称空间以关键字” xmlns” 开头。单词名称是名称空间前缀。 URL是名称空间标识符。
让我们看一下XML文件的示例。
<
?xml version="1.0" encoding="UTF-8"?>
<
cont:contact xmlns:cont="http://sssit.org/contact-us">
<
cont:name>
Vimal Jaiswal<
/cont:name>
<
cont:company>
SSSIT.org<
/cont:company>
<
cont:phone>
(0120) 425-6464<
/cont:phone>
<
/cont:contact>
立即测试
命名空间前缀:cont
命名空间标识符:http://sssit.org/contact-us
它指定带有cont前缀的元素名称和属性名称属于http://sssit.org/contact-us命名空间。
在XML中, 元素名称由开发人员定义, 因此有可能在元素名称上发生冲突。为了避免这些类型的冲突, 我们使用XML命名空间。我们可以说XML命名空间提供了一种避免元素名称冲突的方法。
通常, 当我们尝试混合来自不同XML应用程序的XML文档时, 会发生这些冲突。
让我们以两个表为例:
表格1:
<
table>
<
tr>
<
td>
Aries<
/td>
<
td>
Bingo<
/td>
<
/tr>
<
/table>
表2:此表包含有关计算机表的信息。
<
table>
<
name>
Computer table<
/name>
<
width>
80<
/width>
<
length>
120<
/length>
<
/table>
如果将这两个XML片段加在一起, 则会发生名称冲突, 因为它们都具有< table < 元素。尽管它们具有不同的名称和含义。
如何摆脱名称冲突?1)使用前缀
你可以使用名称前缀轻松地避免使用XML名称空间。
<
h:table>
<
h:tr>
<
h:td>
Aries<
/h:td>
<
h:td>
Bingo<
/h:td>
<
/h:tr>
<
/h:table>
<
f:table>
<
f:name>
Computer table<
/f:name>
<
f:width>
80<
/f:width>
<
f:length>
120<
/f:length>
<
/f:table>
注意:在此示例中, 你不会遇到冲突, 因为两个表都有特定的名称。2)通过使用xmlns属性
你可以使用xmlns属性通过以下语法定义名称空间:
<
element xmlns:name = "URL">
让我们来看一个例子:
<
root>
<
h:table xmlns:h="http://www.abc.com/TR/html4/">
<
h:tr>
<
h:td>
Aries<
/h:td>
<
h:td>
Bingo<
/h:td>
<
/h:tr>
<
/h:table>
<
f:table xmlns:f="http://www.xyz.com/furniture">
<
f:name>
Computer table<
/f:name>
<
f:width>
80<
/f:width>
<
f:length>
120<
/f:length>
<
/f:table>
<
/root>
在上面的示例中, < table> 元素定义了一个名称空间, 并且当为一个元素定义一个名称空间时, 具有相同前缀的子元素将与相同的名称空间相关联。
<
root xmlns:h="http://www.abc.com/TR/html4/"
xmlns:f="http://www.xyz.com/furniture">
<
h:table>
<
h:tr>
<
h:td>
Aries<
/h:td>
<
h:td>
Bingo<
/h:td>
<
/h:tr>
<
/h:table>
<
f:table>
<
f:name>
Computer table<
/f:name>
<
f:width>
80<
/f:width>
<
f:length>
120<
/f:length>
<
/f:table>
<
/root>
注意:上例中使用的命名空间URI完全没有必要。解析器不使用它来查找信息。它仅用于为名称空间标识符提供唯一的名称。统一资源标识符(URI)统一资源标识符用于标识Internet资源。它是一个字符串。
最常见的URI是URL(统一资源定位符), 用于标识Internet域名地址。
还有一个URI名称URN(通用资源名称), 但并不常见。在所有示例中, 我们仅使用了URL。
默认命名空间XML文档中使用了默认名称空间, 以免你在所有子元素中使用前缀。
默认名称空间和简单名称空间之间的唯一区别是:无需在默认名称空间中使用前缀。
你也可以在同一文档中使用多个名称空间, 只需针对子节点定义一个名称空间。
默认命名空间示例:
<
tutorials xmlns="http://www.srcmini.com/java-tutorial">
<
tutorial>
<
title>
Java-tutorial<
/title>
<
author>
Sonoo Jaiswal<
/author>
<
/tutorial>
...
<
/tutorials>
【XML命名空间介绍和用法示例】你可以看到在此示例中未使用前缀, 因此它是默认名称空间。
注意:如果定义不带前缀的名称空间, 则所有后代元素均被视为属于该名称空间。
推荐阅读
- XML DOM介绍和操作实例
- XML解析器介绍和使用实例
- XML数据库介绍和示例
- CDATA与PCDATA介绍和用法示例
- XML模式介绍和实例
- XML验证介绍和用法示例
- DTD与XSD有什么区别()
- XML和CSS用法详细示例
- 如何修改eclipse里面Android虚拟机的存放路径