Transactions xdmp:invoke函数中的多个语句为使用的分号提供了错误

Transactions xdmp:invoke函数中的多个语句为使用的分号提供了错误,transactions,marklogic,invoke,Transactions,Marklogic,Invoke,我试图在xdmp:invoke函数中使用multi语句,但失败,错误如下: XDMP-BADSEMISEP:(错误:XPST0003)分号不是必需的 XQuery中的语句分隔符。你是想用“,”吗 生成上述错误的代码: let $content := <poem>Johny Johny Yes Papa ! Eating sugar No Papa !</poem> return xdmp:invoke-function( function() {x

我试图在
xdmp:invoke函数中使用multi语句,但失败,错误如下:

XDMP-BADSEMISEP:(错误:XPST0003)分号不是必需的 XQuery中的语句分隔符。你是想用“,”吗

生成上述错误的代码:

let $content := <poem>Johny Johny Yes Papa ! Eating sugar No Papa !</poem>
  return
    xdmp:invoke-function(
      function() {xdmp:document-insert("/poem2.xml",$content);
                 fn:doc("/poem2.xml"),
                 xdmp:commit() },
      <options xmlns="xdmp:eval">
        <transaction-mode>update</transaction-mode>
      </options>)
let$content:=Johny Johny是的,爸爸!不吃糖,爸爸!
返回
xdmp:调用函数(
函数(){xdmp:documentinsert(“/poem2.xml”,$content);
fn:doc(“/poem2.xml”),
xdmp:commit()},
更新
)

因此,如何在
xdmp:invoke函数中运行多语句查询?

如果您真的想将代码作为多语句调用,可以使用
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
}) 
let$content:=Johny Johny是的,爸爸!不吃糖,爸爸!
返回xdmp:invoke函数(function(){
让$x:=xdmp:documentinsert(“/poem2.xml”,$content)
返回$content
}) 

如果确实希望以多语句的形式调用代码,可以使用
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
}) 
let$content:=Johny Johny是的,爸爸!不吃糖,爸爸!
返回xdmp:invoke函数(function(){
让$x:=xdmp:documentinsert(“/poem2.xml”,$content)
返回$content
}) 

我认为xquery函数不能是多语句的。你为什么要这样做?我试图在调用函数中运行一个多语句查询,当我用逗号替换分号时,它确实起作用,但我的第二个语句看不到第一个语句所做的更新,问题是当它与分号一起使用时。退一步可能有用,并解释为什么您认为您需要多语句。我不认为xquery函数可以是多语句的。你为什么要这样做?我试图在调用函数中运行一个多语句查询,当我用逗号替换分号时,它确实起作用,但我的第二个语句看不到第一个语句所做的更新,问题是当它与分号一起使用时。退一步可能有用,并解释为什么你认为你需要多个陈述。。