美文网首页
xml的命名空间

xml的命名空间

作者: 零下的雨 | 来源:发表于2018-12-25 17:13 被阅读0次

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 文档携带着某个表格中的信息:

<pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"><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></pre>

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

<pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"><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></pre>

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

XML Namespace (xmlns) 属性

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

<pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;">xmlns:namespace-prefix="namespaceURI"</pre>

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

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

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

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

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

默认的命名空间(Default Namespaces)

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

请使用下面的语法:

<pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;">xmlns="namespaceURI"</pre>

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

<pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"><table xmlns="http://www.w3.org/TR/html4/">
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table></pre>

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

<pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"><table xmlns="http://www.w3school.com.cn/furniture">
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table></pre>

命名空间的实际应用

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

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

<pre style="margin: 15px 0px 0px; padding: 20px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas; width: 765px; background: rgb(245, 245, 245); line-height: 1.4;"><?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></pre>

相关文章

  • xpath

    查询带有命名空间的XML 查询带有命名空间的XML...

  • XML命名空间

    Spring被称为配置地狱,大量的XML需要配置,各类工程的转移等常常因为命名空间出问题。今天对XML知识进行整理...

  • XML的命名空间

    命名冲突 因为 XML 文档中使用的元素不是固定的,那么两个不同的 XML 文档使用同一个名字来描述不同类型元素的...

  • xml的命名空间

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

  • 八、基于XML Schema的简化配置方式

    使用p:命名空间简化配置: Chinese.java beans.xml 使用c:命名空间简化配置: p:命名空间...

  • XML 命名空间(XML Namespaces)

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

  • Android中XML的命名空间、自定义属性xmlns:app=

    基本概念介绍 命名空间(namespace) XML 命名空间提供避免元素命名冲突的方法。 打个比方,A学校有名学...

  • Android中XML的命名空间、自定义属性xmlns:app=

    基本概念介绍 命名空间(namespace) XML 命名空间提供避免元素命名冲突的方法。 打个比方,A学校有名学...

  • xml命名空间解惑

    预备知识,右转w3school看命名空间:http://www.w3school.com.cn/xml/xml_n...

  • xml文档的命名空间

    我们在做springmvc项目时经查会看到xml文件中的这种配置,那么他是什么呢 xmlns是用来定义xml的命名...

网友评论

      本文标题:xml的命名空间

      本文链接:https://www.haomeiwen.com/subject/dtaflqtx.html