2016-10-11 51 views
1

安裝轉換我試圖加載轉換到marklogic數據庫,但它失敗導致「無論是不是有效的模塊,或者不提供在http://marklogic.com/rest-api/transform/validate命名空間擴展功能(變換)」。在MarkLogic服務器

我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 [email protected]"./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 的Content-Length: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"}}[[email protected] transformations] 

我很欣賞解決這個問題的任何幫助。

回答

4

剛落分號你的回報$內容後:

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 
}; 
+1

我有一個類似的職位,但刪除了它,因爲這對傳來的只是在我面前。要明確,ML不會加載帶有語法錯誤的文件。來自其他API以及ML錯誤日誌的響應是你的朋友。雖然有點含糊,但它仍然告訴你,你的代碼本身已經破裂 - 給你看看的地方。 –

+1

通過轉到管理應用程序中的組 - 默認值並啓動「文件日誌級別」爲「調試」,您可以從REST API中獲得完整的堆棧跟蹤。 – rjrudin

相關問題