1. 有前缀和无前缀的命名空间
有前缀的命名空间:Xmlns:前缀=命名空间的名字;
无前缀的命名空间:xmlns=命名空间的名字
命名空间的前缀只是方便的引用命名空间而已,下面声明了三个不同的名称空间:
Xmlns:a=”Liaoning”
Xmlns:a=”liaoning”
Xmlns:b=”beijing”
上面的“liaoning”,“Liaoning”属于不同的命名空间。
2. 标记中声明命名空间:
<张山 xmlns:p1=”liaoning”>1990年出生,大学毕业</张山>
3. 名称空间的作用域
a) 有前缀的命名空间
<p1:张山 xmlns:p1=”LiaoNing”>
1976年出生,大学毕业
<p1:张小山>
在小学读书
</p1:张小山>
</p1:张山>
上述的标签,张山和张小山同属于一个命名空间“LiaoNing”
b) 无前缀的命名空间
如果标记中声明的是无前缀的命名空间,那么该标记及其子标记都默认隶属于这个名称空间。线面的xml中,所有的标记都默认隶属于名字为:http://www.heimofang.com的名称空间
<book>
<java>
Java基础教程
</java>
<Jsp>
Jsp基础教程
</Jsp>
</book>
c) 尽管子标记可以通过引用父标记声明的有前缀的名称空间,但子标记也可以重新声明新的名称空间
<?xml version=”1.0” encoding=”UTF-8”?>
<p1:张山 xmlns:p1=”Liaoning”>
1976年出生,大学毕业
<p1:张小山 xmlns:p1=”Americian”>
在小学读书
</p1:张小山>
</p1:张山>
上述xml中的“张山”,“张小山”分别属于“Liaoning”和“Americian”名称空间,“张小山”通过p1引用的名称空间是该标记中自己声明的名称空间。
d) 如果父标记声明的是无前缀的名称空间,子标记也可以重新声明名称空间
<张山 xmlns=”LiaoNing”>
1976年出生,大学毕业
<张小山 xmlns=”Beijing”>
在小学读书
<p1:张小山 xmlns:p1=”Americian”></p1:张小山>
</张小山>
</张山>
上述xml中的“张山”属于名字空间“LiaoNing”,两个名字相同的标记:“张小山”分别隶属于“BeiJing”和“Americian”名称相同。
4. 名称空间的名字
名称空间的名字的目的是区分不同的标记,w3c推荐使用URL