【问题标题】:Installing Transformations in MarkLogic Server在 MarkLogic Server 中安装转换
【发布时间】:2016-10-11 21:44:32
【问题描述】:

我正在尝试将转换加载到 marklogic 数据库,但它失败导致“不是有效的模块或在 http://marklogic.com/rest-api/transform/validate 命名空间中不提供扩展函数(转换)”。

我的 xqy 文件如下:

xquery version "1.0-ml";
module namespace trans = "http://marklogic.com/rest-api/transform/validate";
declare function trans:transform(
    $context as map:map,
    $params as map:map,
    $content as document-node()
) as document-node()
{
    let $validate := validate strict { $content }
    return $content;
};

我正在运行以下命令:

curl --anyauth --user admin:admin -X PUT -d@"./filetype_xform.xqy" -i -H "Content-type: application/xquery" 'http://localhost:8061/v1/config/transforms/validate'

我看到的错误是: HTTP/1.1 400 错误请求 内容类型:application/json;字符集=UTF-8 服务器:MarkLogic 内容长度:557 连接:保持活动 保活:超时=5

{"errorResponse":{"statusCode":400, "status":"Bad Request", "messageCode":"RESTAPI-INVALIDCONTENT", "message":"RESTAPI-INVALIDCONTENT: (err:FOER0000) Invalid content: invalid validate extension: could not parse XQuery extension validate; please see the server error log for detail XDMP-UNEXPECTED: (err:XPST0003) Unexpected token syntax error, unexpected Rbrace_, expecting Function30_ or Percent_; validate either is not a valid module or does not provide extension functions (transform) in the http://marklogic.com/rest-api/transform/validate namespace"}}[admin@localhost transformations]

感谢您为解决此问题提供的任何帮助。

【问题讨论】:

    标签: marklogic


    【解决方案1】:

    在返回 $content 后去掉分号:

    xquery version "1.0-ml";
    module namespace trans = "http://marklogic.com/rest-api/transform/validate";
    declare function trans:transform(
        $context as map:map,
        $params as map:map,
        $content as document-node()
    ) as document-node()
    {
        let $validate := validate strict { $content }
        return $content
    };
    

    【讨论】:

    • 我有一个类似的帖子,但删除了它,因为它就在我之前。需要明确的是,ML 不会加载有语法错误的文件。来自其余 api 的响应以及 ML 错误日志是您的朋友。虽然有点含糊,但它仍然告诉您您的代码本身已损坏 - 给您一个可以查看的地方。
    • 您可以从 REST API 获得完整的堆栈跟踪,方法是转到管理应用程序中的组 - 默认值并将“文件日志级别”提升到“调试”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    相关资源
    最近更新 更多