<?xml encoding="US-ASCII"?>

<!ENTITY xslt "Xalan">
<!ENTITY xslt4j "Xalan-Java">
<!ENTITY xslt4j2 "Xalan-Java 2">
<!ENTITY xslt4j-dist "xalan-j_2_3_1">
<!ENTITY xslt4j-dist-bin "&xslt4j-dist;-bin">
<!ENTITY xslt4j-dist-src "&xslt4j-dist;-src">
<!ENTITY xslt4j-current "&xslt4j; version 2.3.2">
<!ENTITY xslt4j-distdir "http://xml.apache.org/dist/xalan-j/">
<!ENTITY xml4j "Xerces-Java">
<!ENTITY xml4j1 "Xerces-Java 1">
<!ENTITY xml4j2 "Xerces-Java 2">
<!ENTITY xml4j-used "&xml4j; 2.0.1">
<!ENTITY xml4j-jar "xercesImpl.jar">
<!ENTITY xslt4c "Xalan-C++">
<!ENTITY xml4c "Xerces-C++">
<!ENTITY download "The &xslt4j-current; download from xml.apache.org includes &xml4j-jar; from &xml4j-used; and xml-apis.jar. For version
information about the contents of xml-apis.jar, see the JAR manifest.">

<!ENTITY xsltcwhatsnewhead '<li><link anchor="xsltc">XSLTC</link></li>'>
                         
<!ENTITY xsltcwhatsnew '<anchor name="xsltc"/><s2 title="XSLTC">
                <p>In April 2001, Sun donated XSLTC to the Xalan project. XSLTC compiles stylesheets into translets and
                provides a runtime environment for using translets to transform XML documents. Initially, XSLTC is
                available in a separate JAR. Over time, we plan to integrate the two codebases. For more information,
                see <link idref="xsltc_usage">Using XSLTC</link>, <link idref="readme" anchor="xsltcreleasenotes">XSLTC 
                Release Notes</link>, and <jump href="xsltc/index.html">XSLTC Design</link>.</p>
                </s2>'>
                
<!ENTITY xsltcreleasenotesentry '<li><link idref="xsltc_constraints">XSLTC Release Notes</link></li>'>
<!ENTITY history2xsltc '<note>For XSLTC changes since XSLTC was incorporated into &xslt4j;, see 
                        <link idref="xsltc_history">XSLTC software changes</link>.</note>'>
                        
<!ENTITY xsltcclasspath '<p>If you are using <link idref="xsltc_usage">XSLTC</link>, see 
                        <link idref="xsltc_usage" anchor="classpath">Setting the system classpath for XSLTC</link>.</p>'>

<!ENTITY xsltcsampleshead '<li><link anchor="translets">translets</link></li>'>

<!ENTITY xsltcsamples '<anchor name="translets"/><s2 title="Translets">
                 <ul>
                 <li><link anchor="xsltc1">JAXPTransletOneTransformation</link></li>
                 <li><link anchor="xsltc2">JAXPTransletMultipleTransformations</link></li>
                 <li><link anchor="xsltcother">Other XSLTC samples</link></li>   
                 </ul>
                 <p>You can use the TrAX/JAXP 1.1 interfaces to compile and run translets. For this release, you must still
                 use StreamSource objects for the XSL stylesheet and XML input document, and a StreamResult object for the 
                 transformation output. For an overview of the usage patterns these samples illustrate, see 
                 <link idref="xsltc_usage" anchor="api">Calling XSLTC with the TrAX/JAXP API</link>.</p>
                 <anchor name="xsltcprepare"/>
                 <p><em>Important:</em> To run these samples, you must compile the sample class files and adjust the 
                 system classpath.</p>
                 <ol>
                   <li>To compile the samples, you can run the Ant build from the root directory as follows:<br/><br/>
                   <code>&nbsp;&nbsp;build xsltc.samples</code><br/><br/></li>
                   <li>Add xsltc.jar, runtime.jar, BCEL.jar, java_cup.jar, and the samples/translets subdirectory to 
                   the classpath</li>
                 </ol>
                 <note>The JAR files listed above are in the bin directory. 
                 The samples/translets directory contains the sample class files as well as the translet class file that is
                 generated at tun time (todo.class from the todo.xsl stylesheet).</note> 
                 <anchor name="xsltc1"/>
                 <s3 title="JAXPTransletOneTransformation">
                 <p>What it does: Uses the XSLTC TransformerFactory to compile a translet and use
                 the translet to transform the XSLTC to-do list from XML into HTML.</p>
                 <p>Complete the <link anchor="xsltcprepare">steps detailed above</link>, and run this sample 
                 from the translets subdirectory with</p>
                 <p><code>java JAXPTransletOneTransformation</code></p>
                 <p>View the result in todo-xsltc.html.</p>
                 </s3><anchor name="xsltc2"/>
                 <s3 title="JAXPTransletMultipleTransformations">
                 <p>What it does: Uses the XSLTC TransformerFactory to compile a translet and use
                 the Templates object associated with the translet to transform the XSLTC and Xalan to-do lists from XML 
                 into HTML.</p>
                 <p>Complete the <link anchor="xsltcprepare">steps detailed above</link>, and run this sample 
                 from the translets subdirectory with</p>
                 <p><code>java JAXPTransletOneTransformation</code></p>
                 <p>View the results in todo-xsltc.html and todo-xalan.html.</p>                
                 </s3><anchor name="xsltcother"/>
                 <s3 title="Other XSLTC samples">
                 <p>Other XSLTC samples are located in the following samples subdirectories:</p>
                 <ul>
                 <li>CompiledServlet</li>
                 <li>CompiledBrazil</li>
                 <li>CompiledJAXP</li>                                  
                 <li>CompiledApplet</li>
                 <li>CompiledEJB</li>
                 </ul>
                 <p>For information about each of these samples, consult the README file in the subdirectory.</p>
                 <note>The following paragraphs supply some basic background information for CompiledServlet and CompiledBrazil.</note>
                 <p>XSLTC provides demos for using XSLTC as a servlet and as a handler for 
                 Brazil (a new and powerful Web techology from Sun labs). To run these demos,
                 download Brazil from sunlabs:</p>
                 <p><code>&nbsp;&nbsp;&nbsp;&nbsp;<jump href="http://research.sun.com/research/download/index.html">http://research.sun.com/research/download/index.html</jump></code></p>
                 <p>and the java extensions for servlets from Sun:</p>
                 <p><code>&nbsp;&nbsp;&nbsp;&nbsp;
                 <jump href="http://java.sun.com/products/servlet/download.html">
                 http://java.sun.com/products/servlet/download.html</jump></code></p>
                 <p>The translet must be specified as a pure class name, accessible
                 through the Brazil handler classpath. For example:</p>
                 <p><code>&nbsp;&nbsp;&nbsp;&nbsp;translet=mk054</code></p>
                 <p>The document must be specified as a valid URL. For example:</p>
                 <p><code>&nbsp;&nbsp;&nbsp;&nbsp;document=http://server/path/to/filename.xml</code></p>
                 <p>If the file is local to the Brazil handler, it has to be
                specified using the "file:filename.xml" format.</p>
                <note>You also need to make the Brazil and javax classes available from your classpath</note>
                 </s3>
                 </s2>'>
                
