gpt4 book ai didi

xml - XQuery:返回无命名空间

转载 作者:行者123 更新时间:2023-12-04 16:58:45 26 4
gpt4 key购买 nike

是否可以通过前缀返回无命名空间?换句话说,当 Xquery 中设置了默认 namespace 时,如何将元素放入 命名空间或我如何创建一个没有 的元素命名空间?

我的问题是我从 a->b 定义了一个 Xquery 映射,我现在意识到,b 希望它的 child 是不合格的。在映射中,我将默认命名空间设置为 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>

最佳答案

我真的建议不要使用 declare default element namespace "http://a"; .这是非常邪恶的,特别是如果其他开发人员没有注意到它在使用中,并且花了很长时间试图弄清楚为什么他们会得到意想不到的结果。

话虽如此,某些实现可能支持使用 xmlns=""将元素放回默认的默认命名空间。例如

declare default element namespace "http://a";

<a>
<other xmlns=""/>
</a>

据我所知,这不能通过前缀来完成。

关于xml - XQuery:返回无命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21910637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com