XQuery-Update: целевой узел выражения вставки не подлежит обновлению

Запуск этого кода

copy $foo := <foo />
modify (
  insert node <bar /> into $foo
)
return $foo

в Saxon-EE 9.6.0.7 (форма Oxygen 18) я получаю сообщение об ошибке

Целевой узел выражения вставки не подлежит обновлению

BaseX возвращает <foo><bar/></foo>

Кто прав? Есть ли другой способ изменить любое xml-выражение, а не только те, которые загружаются с помощью doc() (который работает с Saxon)?


person Dill    schedule 21.08.2016    source источник


Ответы (1)


Вам необходимо установить параметр -tree:linked, чтобы Saxon работал с обновляемой моделью дерева. Модель дерева по умолчанию является неизменной.

person Michael Kay    schedule 21.08.2016
comment
спасибо теперь работает. Кстати, кислород предоставляет флажок для использования модели связанного дерева здесь: Preferences / XML / XSLT-FO-XQuery / XQuery / Saxon-HE/PE/EE. - person Dill; 21.08.2016