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

# XPath changes (also affecting XQuery)

Operator precedences have changed. They are now aligned with the internal 12 January 2004 draft, except that unary "+" and "-" bind more tightly than anything except "/".

The implementation of the `eq` family of operators has been brought into line with the latest specifications. In particular, an untypedAtomic value is now converted to a string, no longer to the type of the other operand. At compile time, a warning rather than an error is now produced if the static types of the two operands are incomparable but both optional: technically, comparison of `xs:integer?` to `xs:string?` is not a static error, because in the case where both operands evaluate to an empty sequence, the comparison is legitimate (and returns `()`).

The SequenceType syntax `empty()` is now implemented.

The syntax for SequenceTypes incorporates some changes agreed by the W3C Working Groups but not yet published. Specifically, `element(N)` matches any element named N whether or not N is declared in a schema; `element(*)` matches any element; `element(N, T)` matches any element named N whose type annotation is T, where T is a simple or global type defined in a schema, or a built-in type; `schema-element(N)` matches an element whose name is N, or a name in the substitution group of N, where N is a global element declaration in the schema, and whose type matches the type of this global element. And similarly for attributes.

Next