当我运行此示例(来自文档(时,我会得到错误:
sec-Invalidperm:
xdmp:document-insert("/example.xml", <a>aaa</a>, <options xmlns="xdmp:document-insert"><permissions><sec:permission xmlns:sec="http://marklogic.com/xdm...</options>)
-无效许可
xquery version "1.0-ml";
xdmp:document-insert(
"/example.xml",
<a>aaa</a>,
<options xmlns="xdmp:document-insert">
<permissions>{xdmp:default-permissions()}</permissions>
<collections>{
<collection>/my/additional/collection</collection>,
for $coll in xdmp:default-collections()
return <collection>{$coll}</collection>
}</collections>
<quality>10</quality>
</options>)
如果没有选项参数,该函数有效。
仅运行xdmp:default-permissions()
返回
<sec:permission xmlns:sec="http://marklogic.com/xdmp/security">
<sec:capability>update</sec:capability>
<sec:role-id>15080714410678341621</sec:role-id>
</sec:permission>
<sec:permission xmlns:sec="http://marklogic.com/xdmp/security">
<sec:capability>read</sec:capability>
<sec:role-id>15080714410678341621</sec:role-id>
</sec:permission>
我如何将此函数与选项参数一起使用,而不会发生这种情况?
您可能会在Marklogic 8或更高版本中运行此操作。这将在Marklogic 9中起作用(截至撰写本文时,这是最新的(。xdmp:document-insert
的各种选项是Marklogic 8及以下的单独参数,这些参数汇总为MarkLogic 9中的单个options
节点。
您可能想检查两个变体之间的签名差异:
- xdmp:document -insert -marklogic 8
- xdmp:document -insert -marklogic 9