| The JAXP/TrAX API |

| XSLTC is 100% compliant with the TrAX poriton of the JAXP API. This API is a standard extension to Java and there is not much point in describing it in detail in this document.

| XSLTC's extensions to JAXP/TrAX |

The `Source` and `Result` classes within TrAX are used to handle input and output documents. These classes can be extended to encapsulate additional input types. XSLTC's TrAX implementation contains an extension to the `Source` class:

        org.apache.xalan.xsltc.trax.XSLTCSource

This extension class can be used to build XSLTC's internal DOM and cache it for later usage. The following sample shows how to use it with a `Transformer:`

        public void run(String xmlfile, String xslfile) {

              // Create an XSLTCSource for the input XML document
              XSLTCSource source = new XSLTCSource(xmlfile);

              // Build a StreamSource for the stylesheet
              StreamSource stylesheet = new StreamSource(xslfile);

              // Create a Transformer instance and process the input
              Transformer transformer = factory.newTransformer(stylesheet);
              transformer.transform(source, new StreamResult(System.out));
    	:
    	:
        }

If you do chose to implement a DOM cache, you should have your cache implement the `javax.xml.transform.URIResolver` interface so that documents loaded by the `document()` function are also read from your cache.

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