【发布时间】:2014-03-21 13:30:57
【问题描述】:
是否可以通过前缀返回无命名空间?换句话说,当在 Xquery 中设置了默认命名空间时,如何将元素放入 no 命名空间或如何创建没有 命名空间的元素?
我的问题是我从 a->b 定义了一个 Xquery 映射,我现在意识到,b 期望它的子级是不合格的。在映射中,我将默认命名空间设置为 a 并且始终限定为 b。如果我从 bs 子项中删除 nsprefix,则应用 NS。例如
这是所需的结果 XML:
<myB:StatusEvent xmlns:myB="http://b">
<Action/> <!-- note Action has no, not even an inherited, namespace -->
</myB:StatusEvent>
虽然这是在我的 xquery 映射中使用的典型前缀:
declare default element namespace "http://a";
let $elem := doc("someinput.xml")/somePathWithoutMyAPrefix
(: note the xpath expressions use the default a namespace :)
return
<myB:StatusEvent>{$elem/someVal}
<myNN:Action> (: <== how do I create Action **without** a namespace? :)
</myB:StatusEvent>
【问题讨论】:
-
很难说你想要实现什么,因为你的 XML sn-p 和你的 XQuery 代码都是无效的。
-
sn-ps 是为了勾勒总体思路,我已将它们更新为有效代码。
标签: xml namespaces xsd xquery xml-namespaces