# XQuery 1.0 Conformance

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.

- 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.

- Whitespace characters such as tab and newline appearing in attribute content are not normalized.

- The default serialization options are currently as defined in XSLT. For example, HTML serialization is used if the first element output is an <html> element.

Expand | Next