2016-10-11 2 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 Bad Request Контент- тип: application/json; кодировка = UTF-8 Сервер: MarkLogic Content-Length: 557 Connection: Keep-Alive Keep-Alive: тайм-аут = 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, перейдя в «Группы - по умолчанию» в приложении «Администратор» и сверните «уровень журнала файлов» на «debug». – rjrudin

 Смежные вопросы

  • Нет связанных вопросов^_^