小编Fra*_*z B的帖子

Marklogic 在托管文档上使用 xPath 会生成此文档的所有版本


在托管 (dls:document-insert-and-manage(...)) 文档上使用 xpath 时,我想在此文档上使用 xpath 表达式来仅检索实际文档,尤其是对于其他用户。

使用 xpath 我要么得到文档的所有版本,要么没有文档。

我尝试在文档上设置权限。
限制 URI 只是为了创建。
保护路径无济于事,因为所有版本的 xpath 都是相同的。

是否有可能限制某些用户仅获取最新版本?

我们正在使用 Marklogic 9.0.8

例子:

设置文档

xquery version "1.0-ml";
import module namespace dls = "http://marklogic.com/xdmp/dls" at "/MarkLogic/dls.xqy";

declare variable $uri :="/smtextdocuments/9114.xml";
declare variable $document := document {
<envelope>
  <instance>
    <smtextdocuments>
      <uri>/smtextdocuments/9114.xml</uri><id>9114</id>
      <documentcontent>MyText</documentcontent>
    </smtextdocuments>
  </instance>
</envelope>
};

let $d := dls:document-insert-and-manage($uri,fn:true(), $document,
        "Manage textdocuments",
        (
         xdmp:permission("dls-user", "read"),
         xdmp:permission("dls-internal", "read"),
         xdmp:permission("dls-internal", "update")),
        ()
        )
return $d
Run Code Online (Sandbox Code Playgroud)

检索文档时会导致 2 或 none 元素,具体取决于实际用户的权限

xquery version "1.0-ml";
<queryresult> …
Run Code Online (Sandbox Code Playgroud)

marklogic marklogic-9

2
推荐指数
1
解决办法
39
查看次数

标签 统计

marklogic ×1

marklogic-9 ×1