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

<!ENTITY xslt4j "Xalan-Java">
<!ENTITY xslt4j2 "Xalan-Java 2">
<!ENTITY xslt4j-dist "xalan-j_2_2_D2">
<!ENTITY xslt4j-current "&xslt4j; version 2.2.D2">
<!ENTITY xml4j "Xerces-Java">
<!ENTITY xml4j-used "&xml4j; version 1.4">
<!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 traxsamplenote "To run the trax sample, you must be using an XML parser (such as Xerces 1.4 or Crimson 1.1) 
                         that fully implements the JAXP 1.1 javax.xml.parsers interface.">

<!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 xsltcdone 
                '<p>The Sun XSLTC team (david.hofert@east.sun.com, tom.amiro@east.sun.com, todd.miller@east.sun.com, 
                 morten.jorgensen@Ireland.sun.com) has checked <link idref="xsltc_usage">XSLTC</link> into the Xalan
                 source tree, and we have begun the process of merging XSLTC into Xalan. XSLTC provides a compiler for compiling
                 stylesheets into translets, and a streamlined runtime environment for using translets to transform XML input. 
                 In the near term, XSLTC will appear in a separate JAR file (xsltc.jar) with its own API and command-line
                 utilities. You can already use the same JAXP interfaces to perform
                 transformations with the Xalan transformer and with translets. Over time, we plan to merge the two codebases.
                 <ref>See <jump href="xsltc/index.html">XSLTC Design Documents</jump>.</ref></p>
                 <p>See <link anchor="xsltcreleasenotes">XSLTC Release Notes</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>
                 </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>'>
                
