# Introduction to Gobo Eiffel XSLT

Gobo Eiffel XSLT is a command-line processor for the XSLT 2.0 language. It is very much still under development at the moment, and does not even implement the whole of XSLT 1.0 as yet, but it is capable of useful work. In fact, it is used to produce the XHTML pages for all of the Gobo documentation that is written in accordance with `$GOBO/doc/misc/gobo.rng`.

## Using gexslt

Command line options

Extensions

The Eiffel programmers guide to the Gobo XSLT library

## Status and conformance

Gexslt is intended to conform to a Basic-level XSLT 2.0 Processor. However, no formal conformance statement is provided yet. It implements whatever happens to work when you try it. The static typing feature, the XML and Names 1.1 Feature, the backwards-compatible and serialization features are all implemented. Note however that UTF-16 output is not yet supported, nor is Unicode normalization.

The implementation status of the core XPath functions can be found at Implemented XPath functions

Of the XSLT additions to the core functions, the following are implemented:

- current
- current-group
- document
- function-available
- generate-id
- key
- system-property

Other functions may be recognized, but not fully implemented.

In general, if a message beginning with TODO appears on the standard error stream, then you should not expect your stylesheet to execute correctly. If however, no errors or TODO messages are reported, then output should be correct.

The following XSLT elements are not yet implemented:

- analyze-string
- matching-substring
- non-matching-substring
- perform-sort

Others may only be partly implemented.

## Credits

The architecture and algorithms of the Gobo Eiffel XSLT library, upon which Gobo Eiffel XSLT is built, are largely derived from Saxon, an open source XSLT Processor written in Java, by Michael Kay. I am very grateful to Michael for making the source code available for study, and for answering all my questions.