====================================================================== The Apache XSLT Compiler (XSLTC) is a Java-based tool for compiling XSL stylesheets into extremely lightweight and portable Java byte code. The XSLTC Java Runtime environment can then process XML files against these compiled stylesheets (Translets) to generate any manner of output per the stylesheet instructions. This Applet Demo shows you how translets can be run in a client browser as Java applets to perform XSLT transformations on XML source documents residing on a Web server. Because of XSLTC's small footprint, it is possible to download the compiled stylesheets (translets) and the runtime classes in the applet. Whereas, this would not be easy with a fullsize Java-based XSLT processor. There are two important advantages of this approach: 1) It offloads XSLT processing from the server 2) It enables browsers, such as Netscape 4.x, that do not have native XSLT support to perform XSLT transformations today! ----------------------------------------------------------------------- DEMO CONTENTS ----------------------------------------------------------------------- The applet demo is very generic. It will let you run any pre-compiled translet through an applet, and it lets you use that on any XML file you can refer to using an URL. The contents of this demo are: TransformApplet.java - The applet that wraps the XSLTC runtime classes and your translet(s). index.html - Your main HTML document (displays two frames) menu.html - The HTML document for your dialog frame. This is the document that invokes the TransformApplet singleTransform.html - Another main HTML document that invokes the applet using two tags to specify the input document and stylesheet URI ----------------------------------------------------------------------- HOW TO SET UP THE DEMO ON YOUR SITE ----------------------------------------------------------------------- 1. Install and configure Xalan with XSLTC 2. Compile the stylesheets you want to export. This will result in one or more small Java classes (translets). 3. Create a JAR file containing your translet classes. Include a file named META-INF/services/javax.xml.transform.TransformerFactory in your JAR file that contains the following line: org.apache.xalan.xsltc.trax.TransformerFactoryImpl Be sure to make the JAR file world readable! 4. Copy the JAR file containing your translet classes and the following JAR files to the same directory containing index.html: xalan.jar, xml-apis.jar, xercesImpl.jar and xsltcapplet.jar. 5. Make your XML source documents readable through a URL (either place them behind a web server or make them readable for your browser as a file). 6. Open the supplied index.html and try out the demo! Alternatively, open the singleTransform.html, with the value attribute of the "input-document" tag set to the URI of your input document, and the value attribute of the "stylesheet-name" tag set to the URI of the stylesheet. 7. This sample has been tested successfully with JDK 1.4.0 using IE5.5 and NetScape7.0. With an earlier version of the JDK, you may have problems with the JavaScript code. ---------------------------------------------------------------------- KNOWN PROBLEMS ---------------------------------------------------------------------- . The following problems are specific to the Netscape 4.x browser. Class Already Loaded - If you start up the Netscape client browser on a Unix system where you have been running XSLTC, and consequently have a CLASSPATH that includes xml.jar, and xlstcrt.jar, the applet demo fails. You'll see a message saying a class has already been loaded in the Javascript console. To bring up the Javascript console, you type javascript: in the location/URL field of the browser. To work around this problem, unset your CLASSPATH before starting Netscape from a terminal window. This still may not resolve the problem if Netscape is started from a wrapper that sets your environment from your startup file (e.g., your .cshrc file for the C-shell). Parser Exception - This problem only applies to Netscape on the Windows platform with XML documents that have an external DTD. If you see the following message: org.xml.sax.SAXParseException: External parameter entity "%(DOCTYPE);" has characters after markup. try removing the reference to an external DTD in your XML source. . The following problems are specific to the Sun JRE 1.4.* plugin for browsers. java.lang.IllegalAccessError - Sun JRE 1.4.* has bundled with it an old version of Xalan-J Interpretive (2.2.D11). Copy a new verison of xalan.jar to the %Java_JRE%/lib/endorsed/ directory. ---------------------------------------------------------------------- END OF README