Functions, operators, and data types for XPath 2.0

Namespaces defined in the XSLT, XPath, and XQuery specifications now begin

The new rules for effective boolean value, and for the boolean() function, have been implemented. These rules make it a type error to ask for the effective boolean value of anything other than a sequence starting with a node, or a singleton boolean, number, or string. For example, testing the effective boolean value of an xs:anyURI value or of a sequence of integers is now an error.

Saxon's two native tree models now implement the W3C xml:id proposal. An attribute named xml:id is considered to be an ID attribute for the purposes of the id() function. Note that when using schema or DTD validation, the attribute is not permitted unless the element declaration explicitly allows it, and it must then be declared as of type ID.

The new function prefix-from-QName is implemented.

In the TinyTree model, the base URI of a processing instruction is now maintained, and is accessible to the base-uri() function. Previously, the base URI was always taken to be the same as that of the parent element or document node.

Casting or constructing a QName or NOTATION is now permitted only if the argument is supplied as a string literal. (Saxon is actually a bit more flexible than this, and allows a compile-time expression.)