打印出xquery序列并退出

时间:2013-05-08 20:32:12

标签: xquery sequence pretty-print marklogic

有没有办法在xquery文件中执行流程中“死”并输出一个格式良好的序列变量打印输出?

我正在尝试这样的事情:

return { fn:error(xs:QName("ERROR"), $xml) }

但这似乎不起作用。

谢谢!

2 个答案:

答案 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:errorhttps://github.com/robwhitby/xray/pull/11