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