XML 命名空间

  XML 命名空间提供避免元素命名冲突的方法。

  命名冲突

  在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。

  这个 XML 携带 HTML 表格的信息:

  

  

  

  

  

  

Apples Bananas

  这个 XML 文档携带有关桌子的信息(一件家具):

  

  African Coffee Table

  80

  120

  

  假如这两个 XML 文档被一起使用,由于两个文档都包含带有不同内容和定义的 元素,就会发生命名冲突。

  XML 解析器无法确定如何处理这类冲突。

  使用前缀来避免命名冲突

  在 XML 中的命名冲突可以通过使用名称前缀从而容易地避免。

  该 XML 携带某个 HTML 表格和某件家具的信息:

  

  

  Apples

  Bananas

  

  

  

  African Coffee Table

  80

  120

  

  在上面的实例中,不会有冲突,因为两个

元素有不同的名称。

  XML 命名空间 - xmlns 属性

  当在 XML 中使用前缀时,一个所谓的用于前缀的命名空间必须被定义。

  命名空间是在元素的开始标签的 xmlns 属性中定义的。

  命名空间声明的语法如下。xmlns:前缀="URI"。

  

  

  

  Apples

  Bananas

  

  

  

  African Coffee Table

  80

  120

  

  

  在上面的实例中,

标签的 xmlns 属性定义了 h: 和 f: 前缀的合格命名空间。

  当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。

  命名空间,可以在他们被使用的元素中或者在 XML 根元素中声明:

  

  xmlns:f="http://www.w3cschool.cc/furniture">

  

  

  Apples

  Bananas

  

  

  

  African Coffee Table

  80

  120

  

  

  注释:命名空间 URI 不会被解析器用于查找信息。

  其目的是赋予命名空间一个惟一的名称。不过,很多公司常常会作为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息。

  请访问 http://www.w3.org/TR/html4/。

  统一资源标识符(URI,全称 Uniform Resource Identifier)

  统一资源标识符(URI)是一串可以标识因特网资源的字符。

  最常用的 URI 是用来标识因特网域名地址的统一资源定位器(URL)。另一个不那么常用的 URI 是统一资源命名(URN)。

  在我们的实例中,我们仅使用 URL。

  默认的命名空间

  为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。它的语法如下:

  xmlns="namespaceURI"

  这个 XML 携带 HTML 表格的信息:

  

  

  

  

  

  

Apples Bananas

  这个XML携带有关一件家具的信息:

  

  African Coffee Table

  80

  120

  

  实际使用中的命名空间

  XSLT 是一种用于把 XML 文档转换为其他格式的 XML 语言,比如 HTML。

  在下面的 XSLT 文档中,您可以看到,大多数的标签是 HTML 标签。

  非 HTML 的标签都有前缀 xsl,并由此命名空间标识:xmlns:xsl="http://www.w3.org/1999/XSL/Transform":

  

  

  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  

  

  

  

My CD Collection

  

  

  

  

  

  

  

  

  

  

  

  

Title Artist
   

  

  

  

  

  如果您想要学习有关 XSLT 的知识,请在我们的首页查找 XSLT 教程。

  本文转载自:w3cschool(编辑:雷林鹏 来源:网络)

最新文章

  1. 安卓开发中Theme.AppCompat.Light的解决方法
  2. Objective c 自动释放池
  3. secedit
  4. 产品CEO?别傻了,你不是拿破仑
  5. H264所采用的指数格伦布熵编码算法原理及应用
  6. oracle中的net manager 无法配置
  7. (转)simhash算法原理及实现
  8. BZOJ_3210_花神的浇花集会_切比雪夫距离
  9. TensorFlow 算术运算符
  10. springboot2.0动态多数据源切换
  11. Daily Sentence(英语每日一句)
  12. java调用删除文件的方法删除文件,却删除不干净
  13. js_为元素动态注册事件
  14. js正则表达式的基本语法
  15. Asp.Net MVC Identity 2.2.1 使用技巧(八)
  16. 寻找最大连续子序列/Find the max contiguous subsequence
  17. 杂项:WiKi
  18. datagrip 导出数据库备份到本地
  19. 深入理解JavaScript系列(26):设计模式之构造函数模式
  20. 工作技能===开发不改bug?给你支个招

热门文章

  1. 2018-2019-2 《网络对抗技术》Exp2 后门原理与应用 20165211
  2. 牛客练习赛24题解(搜索,DP)
  3. 浅谈Windows用户帐户控制(User Account Control,UAC)
  4. 【BZOJ4872】分手是祝愿
  5. vim改善生活的几个插件
  6. poj2774
  7. Docker 配置阿里云镜像加速器
  8. 【控制分片分配】控制Elasticsearch分片和副本的分配
  9. [蓝桥] 基础练习 数列排序(java)
  10. Unity3D学习笔记(三十五):Shader着色器(2)- 顶点片元着色器