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 and encapsulate XSLTC's internal
  DOM and DTD handler:
  |   |   | 
  | 
    public void run(String xmlfile, String xslfile) {
        // Set up your factory classes
        SAXParserFactory factory = SAXParserFactory.newInstance();
        TransformerFactory factory = TransformerFactory.newInstance();
        try {
            // Create a namespace-aware parser
            try {
                factory.setFeature(Constants.NAMESPACE_FEATURE,true);
            }
            catch (Exception e) {
                factory.setNamespaceAware(true);
            }
            final SAXParser parser = factory.newSAXParser();
            final XMLReader reader = parser.getXMLReader();
            // Build an XSLTCSource for the input XML document
            XSLTCSource source = new XSLTCSource();
            source.build(reader, 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.