Marklogic ML8中的多语句变量
我正在尝试使用分号作为语句分隔符执行多语句事务。我的脚本中有外部变量,这些变量只能在多步骤中的第一个语句中访问。。对于第二条语句Marklogic ML8中的多语句变量,marklogic,marklogic-8,Marklogic,Marklogic 8,我正在尝试使用分号作为语句分隔符执行多语句事务。我的脚本中有外部变量,这些变量只能在多步骤中的第一个语句中访问。。对于第二条语句xdmp:documentaddpropertiesI getxdmp-UNEXPECTED。。下面是我的代码 let $sub-query := 'xquery version "1.0-ml"; declare option xdmp:transaction-mode "update";
xdmp:documentaddproperties
I getxdmp-UNEXPECTED
。。下面是我的代码
let $sub-query := 'xquery version "1.0-ml";
declare option xdmp:transaction-mode "update";
declare variable $newDocUri external;
declare variable $transformed_annotations external;
declare variable $uri external;
declare variable $app external;
declare variable $id external;
xdmp:document-insert($newDocUri, $transformed_annotations,(xdmp:default-permissions()), ("annotated", "termite", $app));
xdmp:document-add-properties($newDocUri, (<document-parent-location>{$uri}</document-parent-location>,
<context>{$app}</context>,
<id>{$id}</id>))
xdmp:commit()
'
let $_ := xdmp:eval($sub-query, (
xs:QName("newDocUri"),$newDocUri,
xs:QName("transformed_annotations"), $transformed_annotations,
xs:QName("uri"), $uri,
xs:QName("app"), $app,
xs:QName("id"), $id
), <options xmlns="xdmp:eval">
<isolation>different-transaction</isolation>
</options>)
let$sub-query:='xquery版本“1.0-ml”;
声明选项xdmp:事务模式“更新”;
声明变量$newDocUri external;
声明变量$U外部注释;
对外声明变量$uri;
声明变量$app external;
对外声明变量$id;
xdmp:documentinsert($newDocUri,$transformed_annotations,(xdmp:default-permissions()),(“annotated”,“termite”,“$app));
xdmp:文档添加属性($newDocUri,({$uri}),
{$app},
{$id})
xdmp:commit()
'
让$\ux:=xdmp:eval($子查询(
xs:QName(“newDocUri”),$newDocUri,
xs:QName(“转换的注释”),$transformed的注释,
xs:QName(“uri”),$uri,
xs:QName(“app”),$app,
xs:QName(“id”),$id
),
不同交易
)
< /代码> 在您的第二个(以及以后的任何后续)语句中,您需要重新声明XQuery Prolog,包括在该查询中需要的任何外部变量声明。 < P>您可以考虑将每个语句放在单独的模块中,并调用来自主模块的语句,将外部变量传递到.< /P>
希望有帮助