Overview of the XSLT library PreviousNext

This chapter gives Eiffel programmers an introduction to the Gobo Eiffel XSLT library, which implements the World Wide Web Consortium's XSLT 2.0 tranformation language.

The library supports a Basic XSLT processor, and is in line with the Recommendation.

The support is not yet quite complete. The following features have yet to be implemented:

See Examples for examples of how to use the library.

Invoking XSLT

Customizable interfaces

The following is a list of XSLT interfaces that the Eiffel programmer may need to implement. In all cases, the library provides at least one concrete implementation.


XSLT and XPath provide for standard mechanisms to access extensions to the language. This library provides some built-in extensions in the namespace http://www.gobosoft.com/eiffel/gobo/gexslt/extension. In order to make use of them, you must provide a namespace declaration in your stylesheets, something like: gexslt:xmlns="http://www.gobosoft.com/eiffel/gobo/gexslt/extension". Don't forget to exclude this namespace from your result documents with: exclude-result-prefixes="gexslt" when appropriate.

You can also provide your own extensions. In this case, you should allocate a namespace URI that you control to your extensions.

In some cases (notably output extensions), the mechanism for accessing built-in extensions differs slightly from that for user-written extensions. In these cases, I have incorporated example classes into the library so you can see how to code your own extensions. These examples are all in the namespace http://www.gobosoft.com/eiffel/gobo/gexslt/extension/example.

Output extensions

Other extensions

Compiling programs which use the XSLT library

To see which libraries need to be added to your ECF file, take a look at the example program in ${GOBO}/library/xslt/example/schematron.


See Conformance to standards


For documentation on the serializer (which is a separate component for general XML serialization - that is, you do not have to use the XSLT engine to use it), see XSLT 2.0 serialization.

Copyright 2004-2019, Colin Adams and others
Last Updated: 15 March 2019