如何使用带有'options'参数的 MarkLogic xdmp:document-insert() 函数



当我运行此示例(来自文档(时,我会得到错误:

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

最新更新