http://xml.apache.org/http://www.apache.org/http://www.w3.org/

Overview

Compiler design

Whitespace
xsl:sort
Keys
Comment design

lang()
Unparsed entities

If design
Choose|When|Otherwise design
Include|Import design
Variable|Param design

Runtime

Internal DOM
Namespaces

Translet & TrAX
XPath Predicates
Xsltc Iterators
Xsltc Native API
Xsltc TrAX API
Performance Hints

Credits

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


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