Post RestXQ[XPTY0004]无法将空-sequence()转换为document-node()
我有一个RestXQ方法:Post RestXQ[XPTY0004]无法将空-sequence()转换为document-node(),post,type-conversion,xquery,restxq,Post,Type Conversion,Xquery,Restxq,我有一个RestXQ方法: declare %rest:path("/doSomething") %rest:POST %rest:form-param("name","{$name}") function page:doSomething($name as document-node()) { (: Code... :) }; 我试图通过XForms向这个方法发送POST请求。作为客户端上的响应,我得到[XPTY0004]无法将
declare
%rest:path("/doSomething")
%rest:POST
%rest:form-param("name","{$name}")
function page:doSomething($name as document-node())
{
(: Code... :)
};
我试图通过XForms向这个方法发送POST请求。作为客户端上的响应,我得到[XPTY0004]无法将空的-sequence()转换为document-node():()。
我试图删除document-node()
,但参数$name只是空的
请求参数如下所示:
<data xmlns=""><name>Test</name></data>
测试
有什么解决方案吗?问题在于
%rest:form param(“name”,“{$name}”)
用于键值对,但您的方法表明您希望$name作为document-node()
。这两件事放在一起没有意义
您可能需要POST请求的正文,而不是form param
,为此,您可以使用以下内容:
declare
%rest:path("/doSomething")
%rest:POST("{$body}")
function page:doSomething($body as document-node())
{
(: Code... :)
};
请参见您的问题是为什么会出现错误?这是因为函数体不能返回文档节点。或者您的问题是,为什么您的函数没有收到“name”参数的预期数据?