| User Documentation |

The following user documentation is currently available:

- Command-line compiler and runtime man pages.
- XSLTC Native API reference
- XSLTC TrAX API reference
- XSLTC Performance Hints

| Design Documents |

The following design documents are currently available:

- XSLTC overall design
- XSLTC compiler design
- XSLTC runtime library design
- XSLTC internal DOM design
- XSLTC TrAX implementation design

| 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 |

- <xsl:sort>
- <xsl:key>
- <xsl:preserve-space>
- <xsl:strip-space>
- <xsl:comment>
- <xsl:message>
- <xsl:if>
- <xsl:choose>
- <xsl:variable>
- <xsl:param>
- <xsl:include>
- <xsl:import>

| XPath functions |

- key()
- lang()
- unparsed-entity-uri()

| XPath expressons |

- Predicates

| XPath patterns |

- StepPattern
- IdPattern
- KeyPattern

| 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

Copyright © 2004 The Apache Software Foundation. All Rights Reserved.