RestXQ [XPTY0004] 无法将空序列 () 转换为文档节点 ()
RestXQ [XPTY0004] Cannot convert empty-sequence() to document-node()
我有一个 RestXQ 方法:
declare
%rest:path("/doSomething")
%rest:POST
%rest:form-param("name","{$name}")
function page:doSomething($name as document-node())
{
(: Code... :)
};
我试图通过 XForms 向该方法发送 POST 请求。作为对客户端的响应,我得到 [XPTY0004] Cannot convert empty-sequence() to document-node(): ().
我试图删除 document-node()
但参数 $name 只是空的。
请求参数如下所示:
<data xmlns=""><name>Test</name></data>
有什么解决办法吗?
问题是 %rest:form-param("name","{$name}")
用于键值对,但您的方法表明您想要 $name as document-node()
。这两件事放在一起没有意义。
您可能需要 POST 请求的主体而不是 form-param
,为此您可以使用以下内容:
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
我有一个 RestXQ 方法:
declare
%rest:path("/doSomething")
%rest:POST
%rest:form-param("name","{$name}")
function page:doSomething($name as document-node())
{
(: Code... :)
};
我试图通过 XForms 向该方法发送 POST 请求。作为对客户端的响应,我得到 [XPTY0004] Cannot convert empty-sequence() to document-node(): ().
我试图删除 document-node()
但参数 $name 只是空的。
请求参数如下所示:
<data xmlns=""><name>Test</name></data>
有什么解决办法吗?
问题是 %rest:form-param("name","{$name}")
用于键值对,但您的方法表明您想要 $name as document-node()
。这两件事放在一起没有意义。
您可能需要 POST 请求的主体而不是 form-param
,为此您可以使用以下内容:
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