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

命名冲突

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

这个 XML 文档携带着某个表格中的信息:

<table><tr><td>Apples</td><td>Bananas</td></tr>
</table>

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

<table><name>African Coffee Table</name><width>80</width><length>120</length>
</table>

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

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


使用前缀来避免命名冲突
此文档带有某个表格中的信息:

<h:table><h:tr><h:td>Apples</h:td><h:td>Bananas</h:td></h:tr>
</h:table>

此 XML 文档携带着有关一件家具的信息:

<f:table><f:name>African Coffee Table</f:name><f:width>80</f:width><f:length>120</f:length>
</f:table>

现在,命名冲突不存在了,这是由于两个文档都使用了不同的名称来命名它们的 < table> 元素 (< h:table> 和 < f:table>)。

通过使用前缀,我们创建了两种不同类型的 < table> 元素。


使用命名空间(Namespaces)
这个 XML 文档携带着某个表格中的信息:

<h:table xmlns:h="http://www.w3.org/TR/html4/"><h:tr><h:td>Apples</h:td><h:td>Bananas</h:td></h:tr>
</h:table>

此 XML 文档携带着有关一件家具的信息:

<f:table xmlns:f="http://www.w3school.com.cn/furniture"><f:name>African Coffee Table</f:name><f:width>80</f:width><f:length>120</f:length>
</f:table>

与仅仅使用前缀不同,我们为 < table> 标签添加了一个 xmlns 属性,这样就为前缀赋予了一个与某个命名空间相关联的限定名称。


XML Namespace (xmlns) 属性
XML 命名空间属性被放置于元素的开始标签之中,并使用以下的语法:

xmlns:namespace-prefix="namespaceURI"

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

注释:用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。不过,很多公司常常会作为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息。

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


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

统一资源标识符是一串可以标识因特网资源的字符。最常用的 URI 是用来标示因特网域名地址的统一资源定位器(URL)。另一个不那么常用的 URI 是统一资源命名(URN)。在我们的例子中,我们仅使用 URL。


默认的命名空间(Default Namespaces)

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

请使用下面的语法:

xmlns="namespaceURI"

这个 XML 文档携带着某个表格中的信息:

<table xmlns="http://www.w3.org/TR/html4/"><tr><td>Apples</td><td>Bananas</td></tr>
</table>

此 XML 文档携带着有关一件家具的信息:

<table xmlns="http://www.w3school.com.cn/furniture"><name>African Coffee Table</name><width>80</width><length>120</length>
</table>

命名空间的实际应用

当开始使用 XSL 时,您不久就会看到实际使用中的命名空间。XSL 样式表用于将 XML 文档转换为其他格式,比如 HTML。

如果您仔细观察下面的这个 XSL 文档,就会看到大多数的标签是HTML标签。非 HTML 的标签都有前缀 xsl,并由此命名空间标示:”http://www.w3.org/1999/XSL/Transform“:

<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/">
<html>
<body><h2>My CD Collection</h2><table border="1"><tr><th align="left">Title</th><th align="left">Artist</th></tr><xsl:for-each select="catalog/cd"><tr><td><xsl:value-of select="title"/></td><td><xsl:value-of select="artist"/></td></tr></xsl:for-each></table>
</body>
</html>
</xsl:template></xsl:stylesheet>

17.XML 命名空间(XML Namespaces)相关推荐

  1. xml命名空间只是标记区分不同的空间的作用,一般与上网无关,虽然通常都写的是URL网址

    XML 命名空间 XML 命名空间提供避免元素命名冲突的方法. 命名冲突 在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突. 这个 XML 携带 HTML ...

  2. XML 命名空间(XML Namespaces)介绍以及节点读取方法

    XML 命名空间提供避免元素命名冲突的方法. 命名冲突 在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突. 这个 XML 文档携带着某个表格中的信息: & ...

  3. XML 命名空间(XML Namespaces)

    为什么80%的码农都做不了架构师?>>>    XML 应用程序 XML CDATA XML 命名空间提供避免元素命名冲突的方法. 命名冲突 在 XML 中,元素名称是由开发者定义的 ...

  4. xmlns:XML命名空间

    以下转载自: http://hi.baidu.com/tianhesj/blog/item/0dd9718d32be4011b21bbacc.html Namespaces翻译为命名空间.命名空间有什 ...

  5. XML 命名空间概述

    在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突.XML 命名空间提供避免元素命名冲突的方法. 命名冲突 在 XML 中,元素名称是由开发者定义的,当两个 ...

  6. oracle解析xml字符串命名空间,XML命名空间

    命名空间是一组唯一的名称.命名空间是一种机制通过该元素和属性的名字可以被分配到组.该命名空间是确定的URI(统一资源标识符). 命名空间声明 命名空间声明是使用保留的属性.这样的属性名称必须是XMLN ...

  7. xml命名空间的作用类似于java中包名所起的限定范围的作用

    https://www.jianshu.com/p/9f1d179ac358 二.常见的XML命名空间 常见的XML命名空间有:android.tools.app(自定义命名空间). 1.androi ...

  8. 雷林鹏分享:XML 命名空间

    XML 命名空间 XML 命名空间提供避免元素命名冲突的方法. 命名冲突 在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突. 这个 XML 携带 HTML ...

  9. XML 命名空间以及它们如何影响 XPath 和 XSLT (Extreme XML)

    Dare Obasanjo Microsoft Corporation 2002 年 5 月 20 日 本文是有望长期发表的系列文章的第一篇,这些文章专门阐释由 Microsoft 支持的 W3C X ...

  10. YiShaAdmin_项目的默认 XML 命名空间必须为 MSBuild XML 命名空间。如果项目是用 MSBuild 2003 格式---.Net_C#_若依.Net版Web框架使用及改造001

    下面是错误: C:\Users\Administrator\Desktop\YiShaAdmin\YiSha.Cache\YiSha.Cache.Factory\YiSha.Cache.Factory ...

最新文章

  1. php 加载一个文件路径_PHP文件加载过程
  2. 微软算法100题11 求二叉树中两节点之间的最大距离
  3. Oracle PL/SQL编程之包(packages)
  4. python0o12_2020年日期表-python实现
  5. 做了5年Java,java文件下载代码
  6. Android用户界面开发(16):ImageSwitcher
  7. git gui提交无法获知你的身份 20
  8. mysql open-files-limit_在mysql 5.5中更改open-files-limit
  9. pandas to_csv参数详解_【Python基础】Pandas数据可视化原来也这么厉害
  10. 数据化风控中的核心指标与报表汇总
  11. 手机连接WIFI后无法上网,是怎么回事?
  12. ssh配置公钥_CentOS配置SSH免密登陆
  13. 计算机四级网络工程师题目,计算机四级网络工程师题库
  14. 数据库期末知识点汇总
  15. 中标麒麟操作系统离线安装nginx
  16. php mysql上机题_基于PHP+MySQL的题库管理系统
  17. C++(18)——温度表达转化
  18. ewebeditor
  19. 网页设计css导航链接怎么做,如何用DIV+CSS制作导航条
  20. 基于容器云技术的典型遥感智能解译算法集成

热门文章

  1. 使用bootbox.js(二级务必提交书面和数字到数字中国)
  2. web页面直接跳转至其他页面
  3. CentOS-6.3安装配置Nginx
  4. Div 在页面中居中
  5. IT人看《国富论》系列:第一篇之第二章:论分工的原由。分工其实是人类利己倾向的结果...
  6. 优秀!5部顶级数学纪录片,假期看剧涨知识必备!
  7. 传说中的马尔科夫链到底是个什么鬼?
  8. Linux/Unix 中 wheel 组的来源
  9. iOS----------APP怎样做更安全
  10. js代码错误监控代码