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

<!ENTITY xslt4j "Xalan-Java">
<!ENTITY xslt4j2 "Xalan-Java 2">
<!ENTITY xslt4j-dist "xalan-j_2_2_D10">
<!ENTITY xslt4j-current "&xslt4j; version 2.2.D10">
<!ENTITY xml4j "Xerces-Java">
<!ENTITY xml4j-used "&xml4j; version 1.4.3">
<!ENTITY xslt4c "Xalan-C++">
<!ENTITY xml4c "Xerces-C++">
<!ENTITY download "The &xslt4j-current; download from xml.apache.org includes xerces.jar from &xml4j-used;.">

<!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 anchor="xsltcreleasenotes">XSLTC Release Notes</link></li>'>

<!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>
                 </ul>
                 <p>See also: <link idref="readme" anchor="xsltcdemos">XSLTC demos</link>.</p><anchor name="xsltc1"/>
                 <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>
                 </s2>'>
                
