【问题标题】:Reset default XML namespace for single element重置单个元素的默认 XML 命名空间
【发布时间】:2013-12-04 02:05:24
【问题描述】:

是否可以仅从 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>

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

【问题讨论】:

    标签: xml namespaces xml-namespaces prefix


    【解决方案1】:

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

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

    【讨论】:

    • 恐怕这是正确的答案 :( 不过最好能解释一下为什么 XML 不支持它。
    • 您的意思是历史上正确的答案(是否提出了提案,如果是,为什么被拒绝?)还是对理性工作组可能做出这样决定的假设解释?我强烈怀疑答案是没有人提出过。
    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多