Patterns in XSLT 3.0

XSLT 3.0 extensions to patterns that are implemented in Saxon 9.4 include the following:

Pattern syntax in the form ~ItemType is supported, for example match="~xs:integer" matches an integer. Predicates are allowed on such patterns, for example ~xs:integer[. gt 0].

The intersect and except operators are allowed at the top level: for example match="* except br".

Parentheses may be used in conjunction with a predicate, for example match="(//para)[1]"

Any downwards axis may be used in a pattern, for example descendant or descendant-or-self.

Other XSLT 3.0 extensions to patterns have yet to be implemented in Saxon, for example patterns that start with (or consist exclusively of) a variable reference.