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

<!ENTITY xslt4j "Xalan-Java">
<!ENTITY xslt4j2 "Xalan-Java 2">
<!ENTITY xslt4j-dist "xalan-j_2_3_D1">
<!ENTITY xslt4j-dist-bin "&xslt4j-dist;-bin">
<!ENTITY xslt4j-dist-src "&xslt4j-dist;-src">
<!ENTITY xslt4j-current "&xslt4j; version 2.3.D1">
<!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 (built from xml-xerces/java sources as of 2002-1-25 14:00)">
<!ENTITY xml4j-jar "xercesImpl.jar (xerces.jar for &xml4j1;)">
<!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 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 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>'>
                
