Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

XML 教程

XML 主页 XML 简介 XML 如何使用 XML 树 XML 语法 XML 元素 XML 属性 XML 命名空间 XML 显示 XML HttpRequest XML 解析器 XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 验证器 XML DTD XML 架构 XML 服务器 XML 示例 XML 测验 XML 证书

XML AJAX

AJAX 简介 AJAX XMLHttp AJAX 请求 AJAX 响应 AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用 AJAX 示例

XML DOM

DOM 简介 DOM 节点 DOM 访问 DOM 节点信息 DOM 节点列表 DOM 遍历 DOM 导航 DOM 获取值 DOM 修改节点 DOM 删除节点 DOM 替换节点 DOM 创建节点 DOM 添加节点 DOM 克隆节点 DOM 示例

XPath 教程

XPath 简介 XPath 节点 XPath 语法 XPath 轴 XPath 运算符 XPath 示例

XSLT 教程

XSLT 简介 XSL 语言 XSLT 转换 XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT 应用 客户端 XSLT 服务器端 XSLT XSLT 编辑 XML XSLT 示例

XQuery 教程

XQuery 简介 XQuery 示例 XQuery FLWOR XQuery HTML XQuery 术语 XQuery 语法 XQuery 添加 XQuery 选择 XQuery 函数

XML DTD

DTD 简介 DTD 构建块 DTD 元素 DTD 属性 DTD 元素与属性 DTD 实体 DTD 示例

XSD 架构

XSD 简介 XSD 如何使用 XSD <schema> XSD 元素 XSD 属性 XSD 限制 XSD 复杂元素 XSD 空 XSD 仅元素 XSD 仅文本 XSD 混合 XSD 指示符 XSD <any> XSD <anyAttribute> XSD 替换 XSD 示例

XSD 数据类型

XSD 字符串 XSD 日期/时间 XSD 数值 XSD 其他 XSD 引用

Web 服务

XML 服务 XML WSDL XML SOAP XML RDF XML RSS

参考资料

DOM 节点类型 DOM 节点 DOM 节点列表 DOM NamedNodeMap DOM 文档 DOM 元素 DOM 属性 DOM 文本 DOM CDATA DOM 注释 DOM XMLHttpRequest DOM 解析器 XSLT 元素 XSLT/XPath 函数

XML 命名空间


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


名称冲突

在 XML 中,元素名称由开发人员定义。这在尝试混合来自不同 XML 应用程序的 XML 文档时,经常会导致冲突。

此 XML 包含 HTML 表格信息

<table>
  <tr>
    <td>苹果</td>
    <td>香蕉</td>
  </tr>
</table>

此 XML 包含关于表格(家具)的信息

<table>
  <name>非洲咖啡桌</name>
  <width>80</width>
  <length>120</length>
</table>

如果将这些 XML 片段加在一起,就会发生名称冲突。两者都包含 <table> 元素,但元素的内容和含义不同。

用户或 XML 应用程序将不知道如何处理这些差异。


使用前缀解决名称冲突

可以使用名称前缀轻松避免 XML 中的名称冲突。

此 XML 包含关于 HTML 表格和家具的信息

<h:table>
  <h:tr>
    <h:td>苹果</h:td>
    <h:td>香蕉</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>非洲咖啡桌</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

在上面的示例中,由于两个 <table> 元素的名称不同,因此不会发生冲突。



XML 命名空间 - xmlns 属性

在 XML 中使用前缀时,必须为该前缀定义一个命名空间

可以通过元素开始标记中的xmlns属性来定义命名空间。

命名空间声明的语法如下: xmlns:prefix="URI"。

<root>

<h:table xmlns:h="http://www.w3.org/TR/html4/">
  <h:tr>
    <h:td>苹果</h:td>
    <h:td>香蕉</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="https://w3schools.org.cn/furniture">
  <f:name>非洲咖啡桌</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://w3schools.org.cn/furniture">

<h:table>
  <h:tr>
    <h:td>苹果</h:td>
    <h:td>香蕉</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>非洲咖啡桌</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

注意: 解析器不会使用命名空间 URI 来查找信息。

使用 URI 的目的是为命名空间提供一个唯一的名称。

但是,公司通常将命名空间用作指向包含命名空间信息的网页的指针。


统一资源标识符 (URI)

统一资源标识符 (URI) 是一个字符串,它标识 Internet 资源。

最常见的 URI 是统一资源定位符 (URL),它标识一个 Internet 域名地址。另一种不常见的 URI 类型是统一资源名称 (URN)。


默认命名空间

为元素定义默认命名空间可以避免在所有子元素中使用前缀。其语法如下

xmlns="namespaceURI"

此 XML 包含 HTML 表格信息

<table xmlns="http://www.w3.org/TR/html4/">
  <tr>
    <td>苹果</td>
    <td>香蕉</td>
  </tr>
</table>

此 XML 包含关于家具的信息

<table xmlns="https://w3schools.org.cn/furniture">
  <name>非洲咖啡桌</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>我的 CD 收藏</h2>
  <table border="1">
    <tr>
      <th style="text-align:left">标题</th>
      <th style="text-align:left">艺术家</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 教程.


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.