0

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

我正在尝试类似的东西:

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

但这似乎并不奏效。

谢谢!

4

2 回答 2

2

根据您的评论(您需要它进行调试)我猜您正在寻找该fn:trace功能,此处描述为http://www.xqueryfunctions.com/xq/fn_trace.html

如果您想中止执行流程并在应用程序中输出错误,您实际上应该使用 XQuery 异常处理。

于 2013-05-08T21:17:51.783 回答
1

尝试这样的事情,省略returnif 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:errorhttps://github.com/robwhitby/xray/pull/11

于 2013-05-08T22:55:19.130 回答