重置单个元素的默认XML命名空间

时间:2013-11-20 07:28:02

标签: xml namespaces xml-namespaces prefix

是否可以仅从XML文档中的几个元素重置/删除默认命名空间?

<root xmlns="default.namespace" xmlns:no="">
<!-- defining a prefix no: with empty value does not work either -->
  <:config> <!-- the <config> element should be namespaceless -->
    <option /> <!-- option should have "default.namespace" -->
  </:config>

  <no:config>
    <option />
  </no:config>
</root>

并且,我怀疑这是可能的,但是你能定义一个默认命名空间用于所有子元素,但不能用于定义它的元素本身吗?

<"":root xmlns="default.namespace"> <!-- root should not have a namespace -->
<child /> <!-- child nodes should have "default namespace" -->
<child />
</"":root>

我问这个的原因是,默认命名空间中的元素比没有命名空间的元素更常见,我想避免在子节点上重复设置默认命名空间或者为命名空间中的每个元素添加前缀带有名称空间前缀。

1 个答案:

答案 0 :(得分:3)

不,遗憾的是,这是不可能的。

(填充因为SO不喜欢简短的答案)