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

XML命名空间(XML Namespace)是一种用来避免元素和属性名称冲突的机制。当你在XML文档中使用多个不同的标记词汇时,不同来源的标签可能有相同的名字,但代表不同的含义。命名空间通过为标签分配一个唯一的标识符来解决这个问题。
命名空间如何工作
命名空间使用一个URI(通常是URL形式)作为唯一标识。这个URI不一定要指向一个真实存在的网页,它只是作为一个名字的唯一参考。你通过xmlns属性来声明命名空间,并可以指定一个前缀或设为默认命名空间。
例如:
<book xmlns:author=”http://example.com/author”>
<author:name>张三</author:name>
<title>XML入门</title>
</book>
在这个例子中,author 是一个前缀,绑定到 http://example.com/author 这个命名空间。只有带 author: 前缀的元素才属于这个空间。
默认命名空间
如果你不想每个元素都加前缀,可以设置一个默认命名空间:
<book xmlns=”http://example.com/book”>
<title>XML教程</title>
<price>50.00</price>
</book>
这里没有前缀的元素(如<title>)自动属于 http://example.com/book 命名空间。
为什么需要命名空间
实际应用中,比如你在一个文档里同时使用了svg图形和mathml数学公式,它们都有<title>这样的标签,但用途完全不同。命名空间能明确区分这些同名但不同源的标签,确保解析器正确理解内容。
基本上就这些——命名空间就是给标签“上户口”,让它们即使重名也能分清身份。


