如何在MarkLogic XQuery中获取HTTP POST主体?

时间:2015-10-29 19:00:17

标签: xquery marklogic

我尝试使用exists-db request:get-data()方法来获取请求的发布数据。但是,我收到了错误:

  

XDMP-UNDFUN :(错误:XPST0017)未定义的函数请求:get-data()

我确实在我的标题中声明了命名空间。我不明白为什么我仍然无法使用request:get-data()或任何其他请求:函数

declare namespace request="http://exist-db.org/xquery/request";
declare option exist:serialize "method=xml media-type=text/xml indent=yes";

let $post-data := request:get-data()
return $post-data

2 个答案:

答案 0 :(得分:2)

我认为你正在寻找xdmp:get-request-body

答案 1 :(得分:1)

Sam指出了你需要的功能,但我想回答你问题的另一部分:

  

我确实在我的标题中声明了命名空间。我不明白为什么我仍然无法使用request:get-data()或任何其他请求:函数

每个XQuery处理引擎implements standard functions,但还需要标准未定义的其他功能。对于MarkLogic,您将使用带有fn:前缀的标准函数。

然后,每个XQuery引擎都定义了所需的其他功能。对于Exist DB,其中一些位于" http://exist-db.org/xquery/request"命名空间,而MarkLogic使用" http://marklogic.com/xdmp"对于它的许多扩展功能。

如果您正在寻找与Exist数据库特定功能相当的MarkLogic,请搜索http://docs.marklogic.com - 从功能名称开始,如果这不起作用,请搜索描述您正在尝试做的事情的术语。