SAXONICA

Saxon Documentation
Full Contents
About Saxon
Changes in this Release
| Version 8.9 (2007-02-12)
| Version 8.8 (2006-09-05)
| Version 8.7.3 (2006-06-13)
| Version 8.7.2 (2006-04-19)
| Version 8.7.1 (2006-04-13)
| Version 8.7 (2006-02-24)
| Version 8.6.1 (24 November 2005)
| Version 8.6 (3 November 2005)
| Version 8.5.1 (26 August 2005)
| Version 8.5 (2 August 2005)
| Version 8.4 (4 April 2005)
| Version 8.3 (11 February 2005)
» | Version 8.2 (21 December 2004)
| Version 8.1.1 (8 October 2004)
| Version 8.1 (24 September 2004)
| Version 8.0 (1 June 2004)
Conditions of Use
Using XSLT 2.0
Using XQuery
Handling Source Documents
XML Schema Processing
XPath API for Java
Saxon on .NET
Extensibility
Saxon Extensions
Sample Saxon Applications
The Saxon SQL Extension
XSLT Elements
XPath 2.0 Expression Syntax
Function Library
Standards Conformance

# Changes to XQuery 1.0 support

When the type of a variable is declared in an `as` clause in the `for` or `let` clause of a FLWOR expression, the actual type of the value must now match exactly; the implicit conversions allowed when doing function calls (notably atomization and numeric promotion) are no longer permitted. This also applies to global variable declarations in the Query prolog.

The performance of FLWOR expressions has been improved, by moving conditions in the `where` clause up to the innermost `let` or `for` clause on which they depend.

The `as` clause in `some` and `every` expressions has been implemented.

An `encoding` is now accepted as part of the XQuery version declaration; however, the information is ignored. Saxon assumes that the encoding of the query is the default encoding for the platform.

The rules for the use of namespaces in function names have been tightened up to align with the current language specification.

The parser now checks for duplicated declarations in the query prolog. More generally, the parser is more thorough in checking for static errors, and many more of the errors are now reported using the error codes defined in the XQuery specification. The rules for `import module` are now checked much more thoroughly: for example, module imports cannot now be cyclic.

The `inherit-namespaces` option in the query prolog is implemented. (Note, however, that this syntax is expected to change again in the next W3C working draft.)

In `import module`, a list of URIs can now be supplied. Each one is loaded separately. If the list is empty, then the effect of `import module` is to make all the modules for the relevant namespace that have previously been loaded available within the calling module; if there are no such modules, an error is reported.

Next