SAXONICA

Saxon Documentation
Full Contents
About Saxon
Changes in this Release
| 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
The XPath API
Saxon on .NET
Extensibility
Saxon Extensions
Sample Saxon Applications
The Saxon SQL Extension
XSLT Elements
XPath 2.0 Expression Syntax
Function Library
Standards Conformance

# Functions, Operators and Data Types

The `doc-available(uri)` function is available. This returns true if a document with the given URI can be successfully loaded, otherwise false.

The `codepoint-equal()` function is implemented. This tests whether two strings are equal using the Unicode codepoint collation (unlike the "eq" and "=" operators, which use the default collation, which might be different).

The old names for component access functions, such as `get-hours-from-dateTime()` have been removed. These functions have been available under their new names (for example `hours-from-dateTime`) for some releases, but the old names had been retained until now as synonyms, for compatibility.

The rules for the `tokenize()` function have changed. If the argument is an empty sequence or a zero-length string, the result is now an empty sequence.

The time value `24:00:00` is now permitted in an `xs:time` or `xs:dateTime`. The W3C specification is clear that this is allowed, but is not very clear on how it should be handled. Saxon translates it immediately to `00:00:00` on the following day: so for example the expression `year-from-dateTime(xs:dateTime('2004-12-31T24:00:00'))` returns `2005`.

The function `resolve-uri` no longer raises an error if the supplied base URI is not an absolute URI. For example, the result of `resolve-uri('index.html', '/html/base/')` is now `/html/base/index.html`.

The implicit timezone is now maintained as a property of the Configuration. This means that it must be known at compile-time, and it must be the same for all transformations and queries executed under the control of a single Configuration. Although the W3C specifications describe the implicit timezone as part of the dynamic context, they leave it implementation-defined how and when the value is initialized. Making it part of the Configuration means that there is no longer any need for the optimizer to take special steps to avoid performing operations that depend on the implicit timezone (such as subtraction of two times) at compile time. It also makes it safe, for example, to build an index on date/time values and reuse this across multiple transformations. This change brings timezone handling in Saxon closer to the W3C specifications. Note that one implication is that there is no longer any guarantee that the implicit timezone is the same as the timezone used in the result of current-dateTime(), which is taken from the system clock. By default, however, the implicit timezone is the timezone of the machine where Saxon is running, at the time the Configuration is instantiated.

Next