【问题标题】:marklogic invoke function with parameters带参数的marklogic调用函数
【发布时间】:2016-06-17 11:11:50
【问题描述】:

xdmp:invoke 的文档中,可以将参数作为第二个参数传递。

对于xdmp:invoke-function,此选项不可用。有什么解决方法可以实现这一目标吗?

将列表映射到函数很容易。我想要实现的是一种面向方面的功能,它检查成功和失败的内容以及以这种方式调用的任何功能的标准日志消息。比如:

declare function my-mapper ($array, $fn) {
    (: standard logging and checks :)

    for $a in $array
    return try {
        (: now call the function with parameter :)
        xdmp:invoke-function($fn($a),<options>...</options>)

    } catch ($e) {
        (: standard housekeeping if something goes wrong :)      
        ...
    }
})


my-mapper($array, function ($item) {
     (: do stuff with item :)
})

有没有什么方法可以在 XQuery 中使用 MarkLogic 实现这一点?

【问题讨论】:

    标签: xquery marklogic


    【解决方案1】:

    一个执行一个主模块而不能访问调用它的上下文,另一个执行一个具有所有上下文的函数。我认为这个想法是您不需要通过调用管道传递参数,因为您可以将它们作为调用xdmp:invoke-function 的一部分传递给函数。你只需要将它包装在一个 0 元的函数中:

    xdmp:invoke-function(
      function () { $fn($a) },
      <options>...</options>)
    

    【讨论】:

      猜你喜欢
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 2016-11-13
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      相关资源
      最近更新 更多