XML 05.xml的命名空间

xml的命名空间就好像是Java中的包的概念,用来确保元素和属性唯一性。这个的唯一性,不是只使用一次,而是意义的唯一性。例如:Java中的Date,有两种:
01.java.util.Date
02.java.sql.Date
如果没有包名的限制的话,就会出现混淆。xml中也是一样的,当出现两个名称相同的元素,但是代表的意义不是一样的,xml解析就会出现问题。
在描述命名空间的时候,先描述URL,URI,URN。


URL:认为由4部分组成:协议、主机、端口、路径。
在这里插入图片描述
protocol(协议):有https,ftp,gopher

hostname(主机名):是指存放资源的服务器的域名系统(DNS) 主机名或 IP 地址,有本机的localhost,DNS解析的www.baidu.com

port(端口号):整数,可选,省略时使用方案的默认端口

path(路径):由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。像是tomcat中的那样,项目/jsp文件

query(查询):可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP。NET等技术制作的网页)传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。类似就像是jsp的form表单get提交方法。


URI:
URL的优化,URL它标识一个互联网资源,并指定对其进行操作或获取该资源的方法。可能通过对主要访问手段的描述,也可能通过网络“位置”进行标识。最大的缺点是当信息资源的存放地点发生变化时,必须对URL作相应的改变。URI 通用资源标识 就诞生了。

URN:

URI可被视为定位符(URL),名称(URN)或两者兼备。统一资源名(URN)如同一个人的名称,而统一资源定位符(URL)代表一个人的住址。换言之,URN定义某事物的身份,而URL提供查找该事物的方法。URN仅用于命名,而不指定地址

在这里插入图片描述
[namespace identifier]:表示后面的字符串按照什么方式进行解读。


xml命名空间(根元素的属性):
01.默认命名空间
使用的是URI,URI的定义是唯一的。例子:可以定义命名空间是域名+元素组。

xmlns=“http://wrox.com/namespace/application/hr/config”
在这里插入图片描述
这样在根元素第一行使用xmlns,声明命名空间,这样的话applicationUsers和他的所有子元素都会放入这个声明的命名空间中去。但是属性不属于这个命名空间。

类似于Java中类全限定名。元素也会有全限定名,例如user元素的全称是:
{http://wrox.com/namespace/application/hr/config}user


02.显式声明命名空间 :
在之前没有W3C出台xml规范的时候,元素需要使用上面的全限定名来使用,避免出现错误,但是实在是过于麻烦。需要在命名空间前面加一个前缀名。如果是在原有的基础上的话,例如:在这里插入图片描述
这还没有完成,因为使用前缀后,hr代表的命名空间的元素需要你自行标记。
像这样的,hr代表的命名空间是没有元素记录的。
在这里插入图片描述
但是,在元素标签开头处写出hr,就会标记。此时的applicationUsers元素,user元素在hr代表的命名空间中。
在这里插入图片描述
显式命名空间,xmlns属性出现在哪个元素,哪个元素就是代表在这个命名空间中,下面中的子元素也需要用前缀来修饰。

03.多个命名空间使用,用谁的前缀修饰就是在谁的命名空间中。
04.命名空间冲突,怎么修改命名空间
在这里插入图片描述
例子:在这里插入图片描述
两个命名空间同时指向hr前缀,这样会冲突。推荐使用方法是使用默认命名空间或者清除调命名空间。使其中一个指向null。
在这里插入图片描述
同时清除hr,此时很明确,config元素和子元素都在第一个默认命名空间中,但是子元素中applicationUsers使用了属性xmlns,这代表这个元素存在于自己的默认空间中,实现两个命名空间的隔离。

在这里插入图片描述
这里的applicationUsers元素,命名空间指向的是null,同样实现了命名空间的划分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值