XML入门指南(13)XML命名空间

车包包car

车包包car

2016-02-19 17:18

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享XML入门指南(13)XML命名空间的教程,热爱PS的朋友们快点看过来吧!

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


命名冲突

  因为XML文档中使用的元素不是固定的,那么两个不同的XML文档使用同一个名字来描述不同类型的元素的情况就可能发生。而这种情况又往往会导致命名冲突。请看下面两个例子

  这个 XML 文档在table元素中携带了水果的信息:

table tr tdApples/td tdBananas/td /tr /table

  这个 XML 文档在table元素中携带了桌子的信息(家具,不能吃的哦):

table nameAfrican Coffee Table/name width80/width length120/length /table

  如果上面两个XML文档片断碰巧在一起使用的话,那么将会出现命名冲突的情况。因为这两个片断都包含了table元素,而这两个table元素的定义与所包含的内容又各不相同。


使用前缀解决命名冲突问题

  下面的XML文档在table元素中携带了信息:

h:table h:tr h:tdApples/h:td h:tdBananas/h:td /h:tr /h:table

  下面的XML文档携带了家具table的信息:

f:table f:nameAfrican Coffee Table/f:name f:width80/f:width f:length120/f:length /f:table

  现在已经没有元素命名冲突的问题了,因为这两个文档对各自的table元素使用了不同的前缀,table元素在两个文档中分别是(h:table 和f:table)。

  通过使用前缀,我们创建了两个不同的table元素。


使用命名空间

  下面的XML文档在table元素中携带了信息:

h:table xmlns:h="http://www.w3.org/TR/html4/" h:tr h:tdApples/h:td h:tdBananas/h:td /h:tr /h:table

  下面的XML文档携带了家具table的信息:

f:table xmlns:f="http://www.w3schools.com/furniture" f:nameAfrican Coffee Table/f:name f:width80/f:width f:length120/f:length /f:table

  在上面两个例子中除了使用前缀外,两个table元素都使用了xmlns属性,使元素和不同的命名空间关联到一起。


命名空间属性

  命名空间属性一般放置在元素的开始标记处,其使用语法如下所示:

xmlns:namespace-prefix="namespace"

  在上面的例子中,命名空间定义了一个Internet 地址:

xmlns:f="http://www.w3schools.com/furniture"

  W3C 命名规范声明命名空间本身就是一个统一资源标示符,Uniform Resource Identifier (URI)。

  当我们在元素的开始标记处使用命名空间时,该元素所有的子元素都将通过一个前缀与同一个命名空间相互关联。

  注意:用来标识命名空间的网络地址并不被XML解析器调用,XML解析器不需要从这个网络地址中查找信息,该网络地址的作用仅仅是给命名空间一个唯一的名字,因此这个网络地址也可以是虚拟的,然而又很多公司经常把这个网络地址值象一个真实的Web页面,这个地址包含了关于当前命名空间更详细的信息。可以访问http://www.w3.org/TR/html4/.

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)
统一资源标识符

  通用资源标识符(A Uniform Resource Identifier (URI))是一个标识网络资源的字符串。最普通的URI应该是统一资源定位符Uniform Resource Locator (URL)。URL用于标识网络主机的地址。另一方面,另一个不常用的URI是通用资源名字Universal Resource Name (URN)。在我们的例子中,一般使用的是URLs。

  既然前面的例子使用的URL地址来标识命名空间,我们可以确信这个命名空间是唯一的。


默认的命名空间

  定义一个默认的XML命名空间使得我们在子元素的开始标记中不需要使用前缀。他的语法如下所示:

element xmlns="namespace"

  下面的XML文档在table元素中包含了水果的信息:

table xmlns="http://www.w3.org/TR/html4/" tr tdApples/td tdBananas/td /tr /table

  下面的XML文档包含了家具table的信息:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)
table xmlns="http://www.w3schools.com/furniture" nameAfrican Coffee Table/name width80/width length120/length /table

使用命名空间

  档开始使用XSL的时候,就会发现命名空间使用的是如此频繁。XSL样式单主要用于将XML文档转换成类似于HTML文件的格式。

  如果看一下下面的XSL文档,就会发现有很多标记都是HTML标记。那些标记并不是HTML标记,是加了前缀的XSL,这个XSL前缀由命名空间"http://www.w3.org/TR/xsl"所标识:

?xml version="1.0" encoding="ISO-8859-1"? xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/xsl" xsl:template match="/" html body table border="2" bgcolor="yellow" tr thTitle/th thArtist/th /tr xsl:for-each select="CATALOG/CD" tr tdxsl:value-of select="TITLE"//td tdxsl:value-of select="ARTIST"//td /tr /xsl:for-each /table /body /html /xsl:template /xsl:stylesheet
展开更多 50%)
分享

猜你喜欢

XML入门指南(13)XML命名空间

Web开发
XML入门指南(13)XML命名空间

XML入门指南(3)XML语法

Web开发
XML入门指南(3)XML语法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

XML入门指南(14)XML CDATA

Web开发
XML入门指南(14)XML CDATA

XML入门指南(15)XML编码

Web开发
XML入门指南(15)XML编码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

XML入门指南(6)XML确认

Web开发
XML入门指南(6)XML确认

XML入门指南(1)XML简介

Web开发
XML入门指南(1)XML简介

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

XML入门指南(1)XML简介

XML入门指南(1)XML简介

如何简化临时内存的分配与释放

如何简化临时内存的分配与释放
下拉加载更多内容 ↓