XML命名空间声明

命名空间通过xmlns声明避免XML元素冲突,支持前缀(如xmlns:isbn="URI")和默认命名空间(xmlns="URI"),作用范围从声明元素起至其子元素,可被重新定义覆盖,确保文档结构清晰与互操作性。

在XML中,命名空间用来避免元素和属性名称的冲突,特别是在合并多个XML文档或使用不同来源的标签时。命名空间通过xmlns属性声明,可以绑定一个前缀或作为默认命名空间。

带前缀的命名空间声明

使用前缀可以为特定元素及其子元素指定命名空间。格式如下:

xmlns:前缀="URI"

示例:


  978-3-16-148410-0

这里isbn是前缀,http://example.com/isbn是命名空间URI,表示该命名空间下的number元素属于ISBN相关数据。

默认命名空间声明

如果不希望每个元素都加前缀,可以使用默认命名空间:

xmlns="URI"

示例:


  XML Guide
  John Doe

在这个例子中,booktitleauthor都属于http://example.com/book命名空间,因为没有前缀且定义了默认命名空间。

命名空间的作用范围

命名空间声明从其所在的元素开始,作用于该元素及其所有子元素,除非被子元素重新声明覆盖。

例如:


  In namespace A
  Now in default namespace

第一个item属于http://a.com,第二个则属于新的默认命名空间http://default.com

注意事项

  • 命名空间使用URI(通常是URL)标识,但不一定要指向可访问的资源,仅作唯一标识用。
  • 前缀名称本身无意义,重要的是它绑定的URI。
  • 尽量使用公司域名反写等方式确保命名空间唯一性。
  • XML解析器会根据完整的命名空间URI来区分元素,而不是前缀名。
基本上就这些。正确使用命名空间能有效组织复杂文档结构,提升XML的互操作性和可维护性。