Marklogic xdmp:node-insert-child添加空xmlns

Ens*_*Ens 2 xquery marklogic

当我运行以下代码时,我最终在添加的节点中添加了一个空的xmlns:

declare namespace myns = "http://hello.com/myns";

xdmp:node-insert-child(
    fn:doc($file)/myns:results,
    <event ts="{fn:current-dateTime()}">Removed</event>)
Run Code Online (Sandbox Code Playgroud)

结果:

<?xml version="1.0" encoding="UTF-8"?>
<results xmlns="http://hello.com/myns">
    <event ts="2018-09-21T15:23:23">Created</event>
    <event ts="2018-09-21T15:23:28" xmlns="">Removed</event>
</results>
Run Code Online (Sandbox Code Playgroud)

这导致问题日志,任何想法为什么会发生这种情况?

wst*_*wst 5

这是因为Created事件已经在http://hello.com/myns命名空间中.但是Removed事件不在任何命名空间中,所以这就是你xmlns=""在XML中看到的原因,它将其指定为无命名空间元素.

如果您希望它们都在同一名称空间中,您可以为要插入的事件添加前缀或添加默认名称空间声明:

<myns:event ts="...">
<event xmlns="http://hello.com/myns" ts="...">
Run Code Online (Sandbox Code Playgroud)