мульти-операторы внутри xdmp: invoke-function выдает ошибку для используемой точки с запятой - PullRequest
0 голосов
/ 28 сентября 2018

Я пытался использовать несколько операторов внутри xdmp:invoke-function, но потерпел неудачу с приведенной ниже ошибкой:

XDMP-BADSEMISEP: (err: XPST0003) Точки с запятой не нужны в качестве разделителя операторов в XQuery.Вы хотели использовать ','?

Код, сгенерированный выше:*

1 Ответ

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

Если вы действительно хотите вызывать свой код как мульти-оператор, вы можете использовать xdmp:invoke и вызывать модуль с несколькими операторами в вашей базе данных модулей.

В качестве альтернативы, если вы не преобразуете свой документ во времявставив, вы можете вернуть ваш $content вместо того, чтобы получать его снова.

let $content := <poem>Johny Johny Yes Papa ! Eating sugar No Papa !</poem>
return xdmp:invoke-function(function() {
  let $x := xdmp:document-insert("/poem2.xml",$content)
  return $content
}) 
...