[XML]学习笔记(四)——命名空间
2016-04-13 21:37
435 查看
一、 什么是XML命名空间(namespace):
命名空间是一组具有结构的名称的集合,是XML正式标准的补充部分,通过使用URI(统一资源标识)限定元素和属性。URI通常是以一个URL的形式出现,因为URL具有唯一标识的功能,但URI所指向的并非一定是可访问的网页。
二、 命名空间的声明和使用:
a) 声明:
e.g.
b) 使用:
i. 子元素及其属性中使用:
ii. 自身属性中使用:
三、 命名空间的范围:
a) 该元素的属性;
b) 该元素的子元素及其属性;
c) 如果该元素的子元素中声明了相同命名空间,则使用最新的。
e.g.
四、 默认命名空间及多个命名空间共存:
XML文档中的标记在默认情况下都没有使用命名空间前缀来限制,没有使用的一概属于默认命名空间的控制范围。
e.g.
五、 命名空间与元素:
XML文档的语法要求标记的属性也必须唯一,对标记的各个属性的顺序则没有任何限制,当属性名称完全相同时如下:
e.g.
命名空间是一组具有结构的名称的集合,是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>
相关文章推荐
- 使用 Sublime + PlantUML 高效地画图
- myid文件缺失导致zookeeper无法启动(myid file is missing)
- 数据库事务的隔离级别
- 1004 Toxophily
- 【c语言】用辗转相除法求最大公约数和最小公倍数
- You have not concluded your merge (MERGE_HEAD exists)
- (1)Java设计模式-工厂方法模式(Factory Method)
- 故事讲解:我是一个线程
- C++ pair的比较大小
- POJ3233
- POJ3070
- 模拟器综合症
- ListView的优化
- 【c语言】将字符数组s2中的全部字符复制到字符数组s1中,不要用strcpy函数,'\0'也复制过去,'\0'后面的字符不复制
- 《Linux内核分析》 第八节 进程的切换和一般的执行过程
- AWS十周年,亚马逊cto总结的10个教训
- 约瑟夫问题求解
- 说说 UINavigationBar 中的 translucent 属性
- VideoView 官方
- Learning Scrapy笔记(零) - 前言