Functions, operators, and data types for XPath 3.0

The current state of implementation of all standard functions is now documented here.

The new function fn:analyze-string() is implemented.

The higher-order functions map(), filter(), fold-left(), fold-right(), and map-pairs() are implemented.

The functions head() and tail() are implemented.

The functions pi(), sqrt(), sin(), cos(), tan(), asin(), acos(), and atan() are implemented - note that these are in the namespace http://www.w3.org/2005/xpath-functions/math. Unlike the other new functions, these are available whenever Saxon-PE or Saxon-EE are in use, regardless of whether XQuery 3.0 or XPath 3.0 are enabled - this is conformant because they are in a namespace to which the 1.0/2.0 specifications attach no restrictions.

The single-argument version of string-join() is implemented.

The two-argument version of round() is implemented.

The zero-argument forms of data(), node-name(), and document-uri() are implemented.

The new format-integer() function is implemented.

The new regular expression flag "q" is recognized. This causes all characters in the regex to be treated as ordinary characters, for example "." will match a single period, rather than matching any character. This is only recognized when XPath 3.0 or XQuery 3.0 is enabled.

Non-capturing groups are recognized, with the syntax (?:aaaa) where aaaa is any regular expression.