Xalan-Java 2 represents a fundamental redesign of Xalan-Java. The primary objective of this redesign is
an easier-to-use, more understandable, and more modular API that encourages wider participation in
its ongoing development by the open-source XML developer community, and that lends itself to
"streaming," the production of transformation output while the input is still being parsed.
Xalan-Java 2 builds on SAX 2, DOM level 2, and the
Java API for XML Processing 1.2. For example, Xalan-Java 2 incorporates the SAX parsing event model in
its support for the incremental production of transformation output. Xalan-Java 2 also implements the
standard TrAX API (see below) that enables you to code your XML applications without reference to
the internal details of a particular Transformer or XML parser.
Given the scope of the redesign, the changes with respect to Xalan-Java 1 (no longer available) are
global in nature. For an introduction to the Xalan-Java 2 usage patterns, see
Basic Usage Patterns.
Xalan-Java 2 implements the TRaX (Transformation API for XML) interfaces. The
product of extensive open-source collaboration by members of the XML developer community, TrAX provides
a conceptual framework and a standard API for performing XML transformations. In November 2000, TrAX
was incorporated into Java Specification Request 63, the Java API for
XML Processing 1.2 (see Java API for XML Processing 1.2).
We strongly encourage you to utilize the TrAX framework when you use Xalan-Java 2 to perform XML
transformations.
The basic organization of TrAX is quite simple: use a TransformerFactory to process transformation
instructions and generate a Transformer, with which you can apply the processed transformation
instructions to your XML Source, producing a transformation Result. For more detail, see
Basic steps.
As part of the Java API for XML Processing, TraX provides a stable framework for plugging
Transformers (like Xalan-Java) and XML parsers (like Xerces-Java) into your applications without tying
yourself to the internal details of those implementations. See
Plugging in a Transformer and XML parser.