Marklogic xdmp: node-insert-child добавляет пустые xmlns - PullRequest
0 голосов
/ 21 сентября 2018

Когда я запускаю следующий код, я получаю пустой xmlns в добавленном узле:

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

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

Результат:

<?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>

Это вызывает журнал проблемЛюбая идея, почему это происходит?

1 Ответ

0 голосов
/ 21 сентября 2018

Это потому, что событие Created уже находится в пространстве имен http://hello.com/myns.Но событие Removed не находится ни в одном пространстве имен, поэтому вы видите xmlns="" в XML, который обозначает его как элемент без пространства имен.

Если вы хотите, чтобы все они были в одном пространстве имен, вы можете добавить префикс к событию, которое вы вставляете, или добавить объявление пространства имен по умолчанию:

<myns:event ts="...">
<event xmlns="http://hello.com/myns" ts="...">
...