微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于XML中的名称空间的示例代码分享

XML中的名称空间又被叫做命名空间

名称间的作用?

为了解决不同领域的XML词汇的同名冲突和区分识别。(参考底下的示例

注意名称空间只存在逻辑意义,无法真正实现对URI的引用。

名称间的声明:

放在元素(一般是根元素)的起始标签内,以类似属性的形式声明。

名称间的声明将名称前缀和URI关联起来。

名称间的作用范围:

只在声明名称间的元素以及该元素所包含的元素属性内有效。

(注意:名称空间不直接作用于属性

声明名称间的元素,称为包容体Container)。名称空间和前缀的关联关系在包容体的范围内有效。

名称间的两种声明方式:

1显式名称空间声明:xmlns : 前缀名 = “URI”

例如:

<根元素 xmlns: xg = “http://xugang.cnblogs.com” >
           <xg:子元素  attName = “myname” />

2名称空间声明:xmlns = “URI”

它没有前缀名,所以在包容体内没有前缀名的XML元素和属性都属于名称空间。

例如:

<根元素 xmlns = “http://xugang.cnblogs.com” >
           <子元素 attName =“myname” />

注意:尽量只在根元素声明名称空间。若名称空间声明在非根元素,则容易被用户误解或忽略成没有名称间的元素。所以,非根元素尽量不使用名称空间声明(推荐使用显式名称空间声明)。

名称间的声明注意:

* 双引号内必须是一个URI;
* XML区分大小写,前缀名也不例外;
* 前缀名建议采用英文缩写,也可以用中文(但不推荐用中文);
* 尽量避免同名前缀却对应不同URI名称间的情况,它将容易误导用户
* 尽量在根元素中声明所有的名称空间;
* 如果一个属性所在的元素属于某显式声明的名称空间,一般就不需要为该属性添加前缀。

URI (Uniform Resource Identifier):统一格式资源标识符。

URI URL URN 的超集。

URLUniform Resource Locater,统一格式资源定位器):用于标记网络上某资源的位置,就是通常所说的网址。

URNUniform Resource Name,统一格式资源名称):表示Internet上某个持久(persistent)的资源,格式相对自由。如:“myURN: IT”表示本示例内部使用的名称

示例:

IT部门使用.xml

<?xml version=1.0 encoding=GB2312 standalone=yes?>
<资料>   
<设备 编号=联想6515b>      
<生产商>联想集团</生产商>      
<地址>北京市中关村127号</地址>   
</设备></资料>

建筑部门使用.xml

<?xml version=1.0 encoding=GB2312 standalone=yes ?>
<资料>
   <设备 编号=中联F001>
      <生产商>中联重科</生产商>
      <地址>湖南省长沙市新开铺113号</地址>
   </设备>
</资料>

错误部门融合.xml

<?xml version=1.0 encoding=GB2312 standalone=yes?>
<资料>
   <设备 编号=联想6515b 编号=中联F001>
      <设备名>笔记本</设备名>
      <生产商>联想集团</生产商>
      <地址>北京市中关村127号</地址>
      <设备名>起重机</设备名>
      <生产商>中联重科</生产商>
      <地址>湖南省长沙市新开铺113号</地址>
   </设备>
</资料>

正确的部门融合.xml

<?xml version=1.0 encoding=GB2312 standalone=yes?>
<资料 xmlns:IT=http://www.lenovo.com xmlns:建筑=myURN:中联>
   <设备 IT:编号=联想6515b 建筑:编号=中联F001>
      <IT:设备名>笔记本</IT:设备名>
      <IT:生产商>联想集团</IT:生产商>
      <IT:地址>北京市中关村127号</IT:地址>
      <建筑:设备名>起重机</建筑:设备名>
      <建筑:生产商>中联重科</建筑:生产商>
      <建筑:地址>湖南省长沙市新开铺113号</建筑:地址>
   </设备>
</资料>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。