有没有办法在xquery文件中执行流程中“死”并输出一个格式良好的序列变量打印输出?
我正在尝试这样的事情:
return { fn:error(xs:QName("ERROR"), $xml) }
但这似乎不起作用。
谢谢!
答案 0 :(得分:2)
根据你的评论(你需要它进行调试)我想你正在寻找fn:trace
函数,这里描述http://www.xqueryfunctions.com/xq/fn_trace.html
如果要中止执行流程并在应用程序中输出错误,实际上应该使用XQuery异常处理。
答案 1 :(得分:1)
尝试这样的事情,省略return
如果这不是FLWOR表达式的一部分。
...
return fn:error((), "DEBUG", $xml)
除非你包含表达式,例如<x>{ current-time() }</x>
,否则不需要大括号。返回表达式未包含在内。
使用MarkLogic,最好将fn:error
的第一个参数留空。这样你就不必担心QName,而且无论如何有些人认为它是为预定义的错误而保留的。 MarkLogic使用第二个参数填充error:code
,使用第三个参数填充数据。
有关fn:error
的更多信息,请参阅http://docs.marklogic.com/fn:error和https://github.com/robwhitby/xray/pull/11