【问题标题】:How to use MarkLogic xdmp:document-insert() function with 'options' argument如何使用带有“选项”参数的 MarkLogic xdmp:document-insert() 函数
【发布时间】:2018-02-21 11:37:08
【问题描述】:

当我运行这个例子(来自文档)时,我得到了错误:

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>

如何在不发生这种情况的情况下将此函数与 options 参数一起使用?

【问题讨论】:

  • 你 xdmp:document-insert 在我这边运行得很好,使用 ML 9.0-3.1。你用的是什么版本?
  • 您以什么用户身份运行它?你确定21结尾的角色还在定义吗?

标签: xquery marklogic


【解决方案1】:

您可能在 MarkLogic 8 或更低版本中运行它。这将适用于 MarkLogic 9(这是撰写本文时的最新版本)。 xdmp:document-insert 的各种选项在 MarkLogic 8 及更低版本中是单独的参数,它们在 MarkLogic 9 中聚合到单个 options 节点中。

您可能想查看 2 个变体之间的签名差异:

【讨论】:

    猜你喜欢
    • 2016-06-17
    • 2019-11-28
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 2013-04-16
    相关资源
    最近更新 更多