XML 命名空间提供了一种避免元素名称冲突的方法。
在 XML 中,元素名称由开发人员定义。当尝试混合来自不同 XML 应用程序的 XML 文档时,这通常会导致冲突。
此 XML 携带 HTML 表信息:
<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 应用程序将不知道如何处理这些差异。
使用名称前缀可以轻松避免 XML 中的名称冲突。
此 XML 包含有关 HTML 表格和一件家具的信息:
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
在上面的示例中,不会发生冲突,因为两个 <table> 元素具有不同的名称。
在 XML 中使用前缀时,名称空间必须定义前缀。
命名空间可以由xmlns元素的开始标记中的属性。
命名空间声明具有以下语法。 xmlns:字首= =统一资源标识符”。
<root>
<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>
<f:table xmlns:f="https://www.91xjr.com/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
在上面的例子中:
第一个 <table> 元素中的 xmlns 属性为 h: 前缀提供了限定的命名空间。
第二个 <table> 元素中的 xmlns 属性为 f: 前缀提供了限定的命名空间。
当为元素定义命名空间时,具有相同前缀的所有子元素都与相同的命名空间关联。
命名空间也可以在 XML 根元素中声明:
<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="https://www.91xjr.com/furniture">
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
笔记:解析器不使用名称空间 URI 来查找信息。
使用 URI 的目的是为命名空间提供唯一的名称。
然而,公司经常使用命名空间作为指向包含命名空间信息的网页的指针。
统一资源标识符(URI) 是标识 Internet 资源的字符串。
最常见的 URI 是统一资源定位器(URL) 标识互联网域地址。另一种不太常见的 URI 类型是统一资源名称(瓮)。
为元素定义默认命名空间可以使我们免于在所有子元素中使用前缀。它具有以下语法:
xmlns="
namespaceURI"
此 XML 携带 HTML 表信息:
<table xmlns="http://www.w3.org/TR/html4/">
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
此 XML 包含有关一件家具的信息:
<table xmlns="https://www.91xjr.com/furniture">
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
XSLT 是一种可用于将 XML 文档转换为其他格式的语言。
下面的 XML 文档是用于将 XML 转换为 HTML 的文档。
命名空间 "http://www.w3.org/1999/XSL/Transform" 标识 HTML 文档中的 XSLT 元素:
<?xml version="1.0" encoding="UTF-8
"?>
<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 style="text-align:left">Title</th>
<th style="text-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>
如果您想了解有关 XSLT 的更多信息,请阅读我们的XSLT 教程。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!