XML 命名空间

2025年3月17日 | 阅读 3 分钟

XML 命名空间 用于避免 XML 文档中的元素名称冲突

XML 命名空间声明

XML 命名空间使用保留的 XML 属性进行声明。此属性名称必须以 "xmlns" 开头。

让我们看看 XML 命名空间的语法

这里,命名空间以关键词 "xmlns" 开头。 词 name 是一个命名空间前缀。 URL 是一个命名空间标识符。

让我们看看 XML 文件的示例。

立即测试

命名空间前缀: cont

命名空间标识符: http://sssit.org/contact-us

它指定带有 cont 前缀的元素名称和属性名称属于 http://sssit.org/contact-us 命名空间。

在 XML 中,元素名称由开发人员定义,因此元素名称可能会发生冲突。 为了避免这些类型的冲突,我们使用 XML 命名空间。 我们可以说 XML 命名空间提供了一种避免元素名称冲突的方法。

通常,当我们尝试混合来自不同 XML 应用程序的 XML 文档时,会发生这些冲突。

让我们用两个表举例

表 1

表 2: 此表包含有关计算机表的信息。

如果将这两个 XML 片段加在一起,则会发生名称冲突,因为两者都有 <table< 元素。 尽管它们具有不同的名称和含义。


如何摆脱名称冲突?

1) 使用前缀

您可以通过使用名称前缀轻松避免 XML 命名空间。

注意:在此示例中,您不会遇到任何冲突,因为这两个表都有特定的名称。

2) 使用 xmlns 属性

您可以使用 xmlns 属性使用以下语法定义命名空间

让我们看一个例子

在上面的示例中,<table> 元素定义了一个命名空间,当为元素定义命名空间时,具有相同前缀的子元素将与同一命名空间相关联。

注意:在上面的示例中使用的命名空间 URI 根本没有必要。 解析器不使用它来查找信息。 它仅用于为命名空间标识符提供唯一的名称。

统一资源标识符 (URI)

统一资源标识符用于标识 Internet 资源。它是一个字符串。

最常见的 URI 是 URL(统一资源定位符),它标识一个 Internet 域地址。

还有一个 URI 名称 URN(通用资源名称),但它不太常见。 在我们的所有示例中,我们只使用了 URL。


默认命名空间

默认命名空间用于 XML 文档中,以避免在所有子元素中使用前缀。

默认命名空间和简单命名空间之间的唯一区别是:在默认命名空间中不需要使用前缀。

您还可以在同一文档中使用多个命名空间,只需针对子节点定义一个命名空间即可。

默认命名空间示例

您可以看到在此示例中未使用前缀,因此它是一个默认命名空间。

注意:如果定义一个没有前缀的命名空间,则所有后代元素都被视为属于该命名空间。

下一主题DTD 与 XSD