关于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 的超集。
URL(Uniform Resource Locater,统一格式资源定位器):用于标记网络上某资源的位置,就是通常所说的网址。
URN(Uniform Resource Name,统一格式资源名称):表示Internet上某个持久(persistent)的资源,格式相对自由。如:“myURN: IT”表示本示例内部使用的名称。
示例:
IT部门使用.xml
<资料>
<设备 编号="联想6515b">
<生产商>联想集团</生产商>
<地址>北京市中关村127号</地址>
</设备>
</资料>
建筑部门使用.xml
<资料>
<设备 编号="中联F001">
<生产商>中联重科</生产商>
<地址>湖南省长沙市新开铺113号</地址>
</设备>
</资料>
错误的部门融合.xml

<资料>
<设备 编号="联想6515b" 编号="中联F001">
<设备名>笔记本</设备名>
<生产商>联想集团</生产商>
<地址>北京市中关村127号</地址>
<设备名>起重机</设备名>
<生产商>中联重科</生产商>
<地址>湖南省长沙市新开铺113号</地址>
</设备>
</资料>
正确的部门融合.xml

<资料 xmlns:IT="http://www.lenovo.com" xmlns:建筑="myURN:中联">
<设备 IT:编号="联想6515b" 建筑:编号="中联F001">
<IT:设备名>笔记本</IT:设备名>
<IT:生产商>联想集团</IT:生产商>
<IT:地址>北京市中关村127号</IT:地址>
<建筑:设备名>起重机</建筑:设备名>
<建筑:生产商>中联重科</建筑:生产商>
<建筑:地址>湖南省长沙市新开铺113号</建筑:地址>
</设备>
</资料>
相关文章:
作者: XuGang 网名:钢钢 |
出处: http://xugang.cnblogs.com |
声明: 本文版权归作者和博客园共有。转载时必须保留此段声明,且在文章页面明显位置给出原文连接地址! |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2008-02-26 如何使用NUnit进行单元测试