The XSLT and XPath specifications associate error codes with each error condition. There is an implicit assumption here that although the W3C specification defines no API for invoking XPath expressions, there will be such APIs defined elsewhere, and they will need some way of notifying the application what kind of error has occurred. The error codes may also appear in error messages output by an XSLT processor, though there is no guarantee of this.
Technically, error codes are QNames whose namespace is
http://www.w3.org/2005/xqt-errors. The 8-character code that you usually see, such as XPTY0004, is the local part of the QName. This mechanism allows additional error codes defined by a product vendor or application writer to be allocated in a different namespace. If you detect an error at application level, you can call the
error() function (see Chapter 13) to force an error to be raised, specifying the error code to be allocated.
There is no normative error message text associated with each error code, either in the specification or in this appendix: hopefully, real products will give error messages that are much more helpful than those in the specification, including an indication of where the error occurred. For each error, this appendix gives first a short description, then an explanation of possible causes. For the errors defined in the XPath and Functions and Operators specifications the short description is usually taken straight from the spec; for XSLT ...