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.