One of the major new features of XSLT 3.0 is packaging, which allows you to create libraries of functions, templates, modes and other features. Users of your package can override (parts of) the used functionality. With the attribute visibility you can define what parts of your package are available to your users.

Higher order functions

Functions are now a first-class citizen in XPath 3.0 and XSLT 3.0 leverages this optional feature. Exselt fully supports higher-order functions in static and dynamic context expressions and with xsl:function.

Declared modes

Modes have always "just existed", but now, in XSLT 3.0, you can pre-declare your modes using xsl:mode. A mode can have additional properties, like what should happen when a node is not matched. In addition, templates can now match atomic items like string or integers.