您的位置:首页 > 其它

[XML]学习笔记(四)——命名空间

2016-04-13 21:37 435 查看
一、 什么是XML命名空间(namespace):

命名空间是一组具有结构的名称的集合,是XML正式标准的补充部分,通过使用URI(统一资源标识)限定元素和属性。URI通常是以一个URL的形式出现,因为URL具有唯一标识的功能,但URI所指向的并非一定是可访问的网页。

二、 命名空间的声明和使用:

a) 声明:

<elementName xmlns:prefix=”URI”/>


e.g.

<book:items xmlns:book="7-2.dtd">


b) 使用:

i. 子元素及其属性中使用:

<book:item>
<book:name>asp</book:name>
<book:price>124.6</book:price>
</book:item>


ii. 自身属性中使用:

<book:items xmlns:book="7-2.dtd" book:hardback="true">


三、 命名空间的范围:

a) 该元素的属性;

b) 该元素的子元素及其属性;

c) 如果该元素的子元素中声明了相同命名空间,则使用最新的。

e.g.

<?xml version="1.0" encoding="UTF-8"?>
<store:items xmlns:store="dtd1.dtd">
<store:item>		#dtd1作用范围
<store:name>asp</store:name>
<store:price>123</store:price>
</store:item>
<store:item xmlns:store="dtd2.dtd">	#dtd2作用范围
<store:name>java</store:name>
<store:price>456</store:price>
</store:item>
<store:item>		#dtd1作用范围
<store:name>python</store:name>
<store:price>789</store:price>
</store:item>
</store:items>


四、 默认命名空间及多个命名空间共存:

XML文档中的标记在默认情况下都没有使用命名空间前缀来限制,没有使用的一概属于默认命名空间的控制范围。

e.g.

<?xml version="1.0" encoding="UTF-8"?>
<items xmlns="dtd1.dtd" xmlns:another="dtd3.dtd">		#将dtd1.dtd声明为默认命名空间
<item>
<name>asp</name>
<price>123</price>
</item>
<item xmlns:store="dtd2.dtd">		#dtd2.dtd引入了新的命名空间
<store:name>java</store:name>
<store:price>456</store:price>
</item>							#dtd2.dtd作用域结束
<item>
<name>python</name>
<another:price>789</another:price>	#使用dtd3.dtd中的price
</item>
</items>


五、 命名空间与元素:

XML文档的语法要求标记的属性也必须唯一,对标记的各个属性的顺序则没有任何限制,当属性名称完全相同时如下:

e.g.

<?xml version="1.0" encoding="UTF-8"?>
<items xmlns:a="dtd1.dtd" xmlsn:b="dtd2.dtd">
<item>
<name first="jason" first="cheng">zhen</name> #重复!
<sex a:s1="man" b:s1="male">male</sex>		#重复!
</item>
</items>
以下为合法使用:
<?xml version="1.0" encoding="UTF-8"?>
<items xmlns="dtd1.dtd" xmlsn:b="dtd2.dtd">
<item>
<name first="jason" second="cheng">zhen</name>
<sex s1="man" b:s1="male">male</sex>
</item>
</items>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: