This release of Saxon implements the full XQuery 1.0 grammar as defined in the working draft of 12 November 2003 The restrictions noted with respect to XPath 2.0 apply equally to Saxon's support for XQuery 1.0.
The current XQuery specification does not define multiple conformance levels. However, it is widely expected that as with XSLT 2.0, there will be a conformance level that requires XML Schema support and another that does not. Saxon-SA aims to support the schema-aware conformance level when it is defined, Saxon-B the basic conformance level.
Restrictions in Saxon compared with the November 2003 draft of XQuery 1.0 include the following:
User-defined functions must have namespace-prefixed names.
The as
clause in variable declarations (both global variables, and for
and let
variables) follow the function calling
rules, rather than the stricter rules that apply to variables. That is, the supplied value is converted to the declared
type in three ways: atomization of nodes, casting of untyped atomic, and numeric promotion.
The as
clause in some
and every
expressions is not
implemented.
Computed namespace constructors are not implemented.
The rules that determine which namespace nodes should be added to a constructed element are not fully implemented. (The main difference is that in some cases, constructed nodes inherit the namespace of their new parent, which is wrong according to the spec.)
If a document node appears in the sequence constructor for an element node, no error is produced. Instead the children of the document node are copied to the new element, as in XSLT.