Trademark Logo XSLTC Design
XSLTC Documentation
Apache Foundation Xalan Project Xerces Project Web Consortium Oasis Open

XSLTC Documentation


User Documentation

The following user documentation is currently available:


Design Documents

The following design documents are currently available:


XSLTC overall design

The figure below describes the overall design of XSLTC's compiler:


Figure 1: Architectural overview of XSLTC

A client application can use XSLTC either through its native API or through or implementation of the TrAX API. The compiler generates one or more Java classes (we have chosen to call them 'translets'). The runtime library contains classes that can load these translets and use them to transform XML documents to some markup language or plain text. There is also a detailed document describing namespace handling in all parts of XSLTC (compiler, internal DOM, and output handler).


XSLTC compiler design

The figure below describes the overall design of XSLTC's compiler:


Figure 2: Compiler architecture overview

There is also a high-level design document for XSLTC's compiler. Apart from that you can also find separate design documents for some XSL elements and XPath expressions, patterns and functions:

XSL elements
XPath functions
XPath expressons
XPath patterns


XSLTC runtime library design

The runtime portion of XSLTC has four main components; the internal DOM implementation (not W3C), the translet class(es), the runtime library and the output processor:


Figure 3: Runtime library architecture overview

The runtime library design document describes the structure of the compiled translet as well as the translet runtime library.

The Internal DOM design document describes the components and structure of the internal DOM, support for DOM2 navigation, the DOM adapter, DOM multiplexer, and DOM builder.

The iterator design document describes the general design of the internal DOM iterators and describes some of the more complicated iterators in detail.


XSLTC TrAX Implementation

An implementation of the JAXP/ TrAX interface was added on to XSLTC at a late stage. Special care was taken to preserve the small footprint and high performance of XSLTC. The following design was used to wrap XSLTC behind a lightweight (but complete) TrAX implementation:


Figure 4: XSLTC TrAX interface implementation

The TrAX design document contains details of XSLTC's TrAX implementation.

XSLTC also has a 'smart' TrAX TransformerFactory class that will alternate between using XSLTC and Xalan for transformations. This factory class will make its choices based on usage patterns. This will be described in a separate design document.

Design documents by Morten Jørgensen - updated 13.12.2001