EXSLT is a community initiative to provide extensions to XSLT. The extensions are broken down into a number of modules, listed below. We are trying to encourage the implementers of XSLT processors to use these extensions, so that your stylesheets can be more portable. If your XSLT processor doesn't support a particular extension, you can download packages that you can use to provide functions or templates for your stylesheets. Have a look at the How To... page for more details about how to use the packages.

Anyone can contribute to EXSLT... even you. You can contribute by commenting on the things on this site on the mailing list and you can submit your suggestions for extensions, your own implementations and test cases. If you have any comments about the site, please get in contact with us.

There are two sides to this site: a set of pages for users who want to find out what extension functions and elements they can use, how to use them, who supports them, and want to download implementations of them; and a set of pages for implementers who want rigourous definitions of the extensions so that they know how to implement them. You are currently on the user side of the site, but you can switch to the implementer side here or from the links at the top of the module and extension pages throughout the site.

This site is 'under construction' (isn't everywhere?). If you have any problems using this site, please let us know and we'll do our best to remedy them.


14/10/2003 Added a new module random with the function random:random-sequence.

30/01/2003 Added Xalan-J vendor support for dyn:evaluate() function.

02/12/2002 Added new versions for both str:encode-uri and str:decode-uri.

12/11/2002 Updated 4XSLT version support to 0.12.0a3 and fixed a few errors in the exsl:node-set page (thanks to Mike Brown for spotting them!).

17/10/2001 Daniel Veillard's libXSLT XSLT processor now implements many EXSLT extension functions thanks to Thomas Broyer implementation.

21/08/2002 Added Xalan-J, libxslt and 4XSLT vendor support of various functions. Thanks to everyone involved, esp. Daniel Veillard and Mike Brown.



EXSLT - Common covers common, basic extension elements and functions.


EXSLT - Math covers extension elements and functions that provide facilities to do with maths.


EXSLT - Sets covers those extension elements and functions that provide facilities to do with set manipulation.


EXSLT - Functions are those extension elements and functions that allow users to define their own functions for use in expressions and patterns in XSLT.

Dates and Times

EXSLT - Dates and Times covers date and time-related extension elements and functions.


EXSLT - Strings covers extension elements and functions that provide facilities to do with string manipulation.

Regular Expressions

EXSLT - Regular Expressions covers extension elements and functions that provide facilities to do with regular expressions.


EXSLT - Dynamic covers extension elements and functions that deal with the dynamic evaluation of strings containing XPath expressions.


EXSLT - Random covers extension elements and functions that provide facilities to do with randomness.


The following companies provide financial support for EXSLT. If you would like to support this initiative, please contact us.

Fourthought, Inc.

Fourthought, Inc. offers professional services to help clients use XML technologies in software development. Fourthought develops 4Suite, an open source platform and toolkit for XML and Web development.

Jeni Tennison Consulting Ltd

Jeni Tennison Consulting offers independent XML consultancy, including XSLT and XML Schema design and implementation, training and mentoring.