什么是XML命名空间

命名空间通过URI唯一标识解决XML元素冲突,使用xmlns声明前缀或默认命名空间,如author:name属http://example.com/author,无前缀元素属默认命名空间,避免同名标签混淆。

XML命名空间(XML Namespace)是一种用来避免元素和属性名称冲突的机制。当你在XML文档中使用多个不同的标记词汇时,不同来源的标签可能有相同的名字,但代表不同的含义。命名空间通过为标签分配一个唯一的标识符来解决这个问题。

命名空间如何工作

命名空间使用一个URI(通常是URL形式)作为唯一标识。这个URI不一定要指向一个真实存在的网页,它只是作为一个名字的唯一参考。你通过xmlns属性来声明命名空间,并可以指定一个前缀或设为默认命名空间。

例如:


  张三
  XML入门

在这个例子中,author 是一个前缀,绑定到 http://example.com/author 这个命名空间。只有带 author: 前缀的元素才属于这个空间。

默认命名空间

如果你不想每个元素都加前缀,可以设置一个默认命名空间:


  XML教程
  50.00

这里没有前缀的元素(如)自动属于 http://example.com/book 命名空间。

为什么需要命名空间

实际应用中,比如你在一个文档里同时使用了SVG图形和MathML数学公式,它们都有这样的标签,但用途完全不同。命名空间能明确区分这些同名但不同源的标签,确保解析器正确理解内容。

基本上就这些——命名空间就是给标签“上户口”,让它们即使重名也能分清身份。