通过Java代码在MarkLogic上执行sec:get-role-names()时的异常以及如何使用MarkLogic XQJ API获取文档URI

时间:2014-05-21 13:58:05

标签: marklogic

我的机器上安装了MarkLogic 5.x,因此我只能使用XQuery API。

我正在尝试使用sec:get-role-names()来获取某些ID的角色名称,因此我得到一个例外:线程中的异常" main" com.marklogic.xcc.exceptions.XQueryException:XDMP-UNDFUN :(错误:XPST0017)未定义的函数sec:get-role-names()

我理解需要定义sec名称空间,但我不知道如何才能这样做。所以有人可以指导我。

代码:

请求request1 = session.newAdhocQuery(" sec:get-role-names(\" 3855349555012759983 \")");

使用适用于MarkLogic的XQJ API获取文档URI的功能

我在XQPreparedExpression中使用cts:search函数。 我可以使用cts:search获取已修改文档的内容,但是没有获得任何可以为修改后的文档提供文档URI的函数。如果有人知道这一点,请告诉我。

由于

1 个答案:

答案 0 :(得分:1)

sec:get-role-names不是内置函数:它位于security.xqy模块中。

因此,您需要将模块导入添加到查询中:

import module namespace sec="http://marklogic.com/xdmp/security" at "/MarkLogic/security.xqy";