при использовании xpath для управляемого (dls: document-insert-and-manage (...)) документа я хотел бы использовать выражения xpath для этих документов, чтобы получить только фактический документ, особенно для других пользователей. .
С xpath я получаю либо все версии документа, либо нет документа.
Я попытался установить разрешения для документа.
Ограничение URI только для создания.
Защита путь не помогает, поскольку xpath одинаков для всех версий.
Есть ли возможность ограничить это для некоторых пользователей, чтобы они могли получать только последнюю версию?
Мы используем Marklogi c 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
приводит к тому, что при извлечении документов либо 2, либо ни одного элемента, в зависимости от прав реального пользователя
xquery version "1.0-ml";
<queryresult>
<byxPath>{
for $i in //smtextdocuments[id=9114]
return (<uri>{fn:base-uri($i)}</uri>,$i)
}
</byxPath>
</queryresult>