XML命名空间通过URI前缀机制解决多源标签名称冲突,声明方式为xmlns:前缀="URI"或默认xmlns="URI",作用域限于声明元素及其后代,混合格式、自定义扩展及多源处理时必须使用,解析时需显式映射URI与前缀。
XML命名空间(XML Namespace)是用来解决元素和属性名称冲突问题的机制。当多个XML文档或不同来源的标签混用时(比如SOAP中嵌入XHTML,或RSS里加入Atom扩展),相同名字可能代表不同含义——命名空间通过添加唯一标识前缀,让解析器能准确区分“谁家的标签”。它不改变XML结构,只提供语义隔离。
在元素上使用 xmlns:前缀="URI" 声明命名空间。URI只是唯一标识符(不要求可访问),通常用网址形式避免重复。
978-0-306-40615-7 —— 这里 isbn: 是前缀,http://example.org/isbn 是命名空间URI不是所有XML都要用,但以下情况强烈建议引入:
xlink:href)media:content)
)命名空间容易出错,主要在解析和生成环节:
//isbn:number 这类XPath查不到xmlns 声明(尤其在深层嵌套时),可通过配置关闭或手动控制http://ex.com 和 http://EX.com 被视为两个不同空间isbn: 和 ns1: 指向同一URI时完全等价;别依赖前缀名做逻辑判断基本上就这些。命名空间本身不复杂,但容易忽略作用域和解析器配置,导致“标签明明写了却读不到”。用好它,XML才能真正支撑模块化和互操作。