XML 文档对象模型(DOM)完全感知命名空间。 只支持识别命名空间的 XML 文档。 万维网联合会(W3C)指定实现级别 1 的 DOM 应用程序可以是非命名空间感知的,DOM 级别 2 功能是命名空间感知的。 但是,无论该方法是来自第一级别还是第二级别的DOM建议,XML DOM中的所有功能都具有命名空间识别功能。
例如,在非命名空间感知设置中,调用setAttribute("A:b", "123")(如 DOM Level 1 推荐中所指定)不会生成一个前缀为A且本地名称为b的属性。 它将导致具有值 A:b的属性。
在命名空间感知环境中,对 DOM 级别 2 setAttribute("A:b", "123") 的调用会导致具有前缀 A 和本地名称的属性 b。 这就是 Microsoft .NET Framework DOM 的工作原理。
因此,对于采用名称参数的所有方法,这些方法还采用前缀来限定名称。 名称参数(例如在 A:b DOM 1级方法中的 )解析如下:
如果没有冒号(:)字符,则本地名称设置为
name参数,前缀和 NamespaceURI 为空字符串。如果找到冒号,则根据第一个冒号字符的位置将名称拆分为两个部分。 前缀设置为在冒号之前找到的字符串,本地名称设置为在冒号之后找到的字符串。 对于不采用 NamespaceURI 值的方法,未解析 NamespaceURI,并且仍设置为空字符串。 否则,NamespaceURI 设置为传递给方法的字符串。 如果前缀未定义,则 Save 方法和 InnerXml 和 OuterXml 属性将失败。