This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
I am unsure about the behavior of this query with respect to the spec and versus what one could expect. Perhaps I just overlooked something? declare namespace err= "http://www.w3.org/2005/xqt-errors"; try { fn:error(xs:QName("err:XPST0008")) } catch err:XPST0008 { 0 } Possibility 1. F&O says that "the effect of the error is identical to the effect of dynamic errors raised implicitly". It would mean that the error, since it is dynamic, is caught and 0 is returned. Possibility 2. It is a static error code so one could also expect that it is not caught (although it has been raised dynamically?). Or, alternatively, would it make sense to raise a dynamic error err:XQDY.... if fn:error is invoked with an error code that is defined in a specification and that is a static error code?
I think that whether an error is static or dynamic is a property of the error, not a property of its QName. Calling the error() function always raises a dynamic error. The fact that the QName is more commonly associated with a static error doesn't change this.
The WG decided to accept the resolution in comment #1. A non-normative note will be added to the error() function to explain this situation.