RestXQ [XPTY0004] Невозможно преобразовать empty-sequence () в document-node () - PullRequest
0 голосов
/ 25 августа 2018

У меня есть метод RestXQ:

declare
    %rest:path("/doSomething")
    %rest:POST
    %rest:form-param("name","{$name}")
    function page:doSomething($name as document-node())
    {
        (: Code... :)
    };

Я попытался отправить запрос POST этому методу через XForms.В ответ на клиента я получаю [XPTY0004] Cannot convert empty-sequence() to document-node(): (). Я пытался удалить document-node(), но тогда параметр $ name просто пуст.

Параметр запроса выглядит следующим образом:

<data xmlns=""><name>Test</name></data>

Какие-либо решения?

1 Ответ

0 голосов
/ 26 августа 2018

Проблема в том, что %rest:form-param("name","{$name}") для пар ключ-значение, но ваш метод указывает, что вы хотите $name as document-node().Эти две вещи вместе не имеют смысла.

Вместо form-param вы, вероятно, захотите тело запроса POST, для этого вы бы использовали следующее:

declare
  %rest:path("/doSomething")
  %rest:POST("{$body}")
function page:doSomething($body as document-node())
{
    (: Code... :)
};

См.http://www.adamretter.org.uk/papers/restful-xquery_january-2012.xhtml#media-example

...