有没有办法在 xquery 文件的执行流程中“死掉”并输出格式良好的序列变量打印输出?
我正在尝试类似的东西:
return { fn:error(xs:QName("ERROR"), $xml) }
但这似乎并不奏效。
谢谢!
有没有办法在 xquery 文件的执行流程中“死掉”并输出格式良好的序列变量打印输出?
我正在尝试类似的东西:
return { fn:error(xs:QName("ERROR"), $xml) }
但这似乎并不奏效。
谢谢!
根据您的评论(您需要它进行调试)我猜您正在寻找该fn:trace
功能,此处描述为http://www.xqueryfunctions.com/xq/fn_trace.html
如果您想中止执行流程并在应用程序中输出错误,您实际上应该使用 XQuery 异常处理。
尝试这样的事情,省略return
if this is not part of a 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