如何捕获XQuery 3.0中的错误?

时间:2014-09-08 09:16:48

标签: xml xquery xquery-3.0

我正在阅读W3C Recommendation for XQuery 3.0。这是我试图做的:

try {
   3 div 0
} catch err:XPTY0004{
   'typing error'
} catch * {
   $err:code || '
' ||
   $err:description || '
' ||
   $err:value || '
' ||
   $err:module || '
' ||
   $err:line-number || '
' ||
   $err:additional
}

尝试保存文件时,Altova XMLSpy给了我一个错误:未定义的命名空间前缀'错误'。

我应该如何定义err以使其正常工作?

1 个答案:

答案 0 :(得分:8)

默认情况下,err前缀未绑定到任何名称空间,因此您需要在查询对话框中显式声明它:

declare namespace err = "http://www.w3.org/2005/xqt-errors";
try { 3 div 0 } catch err:FOAR0001 { 'gotcha' }

在某些查询处理器中,此前缀是预先声明的。