XML命名空间详解

为什么XML没有直接使用前缀

我们上边这个方法可以解决我们所面临的问题,但是XML为什么没有直接采用这种方式呢?因为这种方式存在一个漏洞,我们通过前缀来约束标签名,那么前缀是否有可能重复呢?加入一份有atguigu定义的xml文档,前缀我们设置为a。这里又一份alibaba定义的文档前缀同样为a,那这两份文档是不是就会出现重复的标签呢?所以我们的问题并没有根本解决。

解决这个问题现在变成了我们需要使用一个唯一的前缀来确保文档中标签的唯一性,那么现实中有哪些东西是唯一的呢?想一下,java中包名采用的是哪种方式?没错!就是uri地址,java中通过将uri地址倒着写来到达区分包的目的,之所以可行就是因为每个公司的uri地址都是唯一的,所以不会出现重复。

这里我们就可以为我们的标签名使用uri地址作为前缀比如 (http://www.atguigu.com/a)title,采用这种方式很显然出现重复的几率就小多了,但是注意这里的http://www.atguigu.com/a并不是一个真实的地址,它的目的就是一个确保唯一。

这种方式虽然看着可行但是实际上是不现实的,不讨论xml中可不可以直接在标签中编写uri地址,仅从编写的角度上看我们也不会这个干,这玩意太麻烦了!!!