ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

XML 命名空间(XML Namespaces)

2021-10-11 10:02:46  阅读:208  来源: 互联网

标签:XML 前缀 标签 空间 Namespaces 命名 table


命名空间是什么?看一下下面这个例子,

<table>
    <leg>4<leg>
<table>

<table>
    <tr>
         <td>15<td>
         <td>16<td>
    <tr>
<table> 


可以看到第一个table标签表示的是一个桌子,第二个table标签表示的是一个表格,如果把这个两个标签一起返回给你你就不知道两个标签各自代表的什么意思了,所以我们可以给标签加一个命名空间(也可以叫标签前缀)来区分它们:

<a:table>
    <leg>4<leg>
</a:table>

<b:table>
    <tr>
         <td>15<td>
         <td>16<td>
    <tr>
</b:table>

  

 

这样当读取到标签名字是table的时候,可以通过读取前缀来进行区分。

下面来说Name这个结构体:

type Name struct {
	Space, Local string
}  

StartElement和EndElement类型都有这个Name字段,它有两个字段,Space字段代表的是命名空间,Local字段是这个标签的名称。

比如<a:table> </a:table> 那么Space就是a,Local就是table。

如果命名空间是这样声明的<a:table xmls:a="www.baidu.com"> </a:table>,那么Space就是 www.baidu.com,Local还是table。

这里再普及一下CDATA:xml解析器是不会解析CDATA标签中的内容。比如当解析器解析到<![CDATA[<hello>CNY</hello>]]>的时候解析出来的是一个文本类型,文本内容是<hello>CNY</hello>。也就是说把<hello>CNY</hello>看成一个单个的文本,不会去再解析hello标签。

使用命名空间(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" 

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

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

默认的命名空间(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>

  

标签:XML,前缀,标签,空间,Namespaces,命名,table
来源: https://www.cnblogs.com/saryli/p/15391985.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有