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

<!ENTITY xslt "Xalan">
<!ENTITY xslt4j "Xalan-Java">
<!ENTITY xslt4j2 "Xalan-Java 2">
<!ENTITY xslt4ji "&xslt4j; Interpretive">
<!ENTITY xslt4jc-short "XSLTC">
<!ENTITY xslt4jc-long  "&xslt4j; Compiled">
<!ENTITY xslt4j-dist-bin "&xslt4j-dist;-bin">
<!ENTITY xslt4j-dist-src "&xslt4j-dist;-src">
<!ENTITY xslt4j-dist "xalan-j_2_6_0">
<!ENTITY xslt4j-current "&xslt4j; version 2.6.0">
<!ENTITY xslt4j-distdir "http://www.apache.org/dyn/closer.cgi/xml/xalan-j/">
<!ENTITY xslt4j_longname "Apache Xalan Java">
<!ENTITY xml4j "Xerces-Java">
<!ENTITY xml4j1 "Xerces-Java 1">
<!ENTITY xml4j2 "Xerces-Java 2">
<!ENTITY xml4j-used "&xml4j; 2.6.2">
<!ENTITY xml4j-jar "xercesImpl.jar">
<!ENTITY xslt4c "Xalan-C++">
<!ENTITY xml4c "Xerces-C++">
<!ENTITY download "The &xslt4j-current; download 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">&xslt4jc-short;</link></li>'>

<!ENTITY xsltcwhatsnew '<anchor name="xsltc"/><s2 title="&xslt4jc-long; (&xslt4jc-short;)">
                <p>In April 2001, Sun donated &xslt4jc-short; to the Xalan project. &xslt4jc-short; compiles stylesheets into translets and
                provides a runtime environment for using translets to transform XML documents. Initially, &xslt4jc-short; is
                available in a separate JAR. Over time, we plan to integrate the two codebases. For more information,
                see <link idref="xsltc_usage">Getting Started with &xslt4jc-short;</link>, <link idref="readme" anchor="xsltcreleasenotes">&xslt4jc-short;
                Release Notes</link>, and <jump href="xsltc/index.html">&xslt4jc-short; Design</link>.</p>
                </s2>'>

<!ENTITY history2xsltc '<note>For &xslt4jc-short; changes since &xslt4jc-short; was incorporated into &xslt4j;, see
                        <link idref="xsltc_history">&xslt4jc-short; software changes</link>.</note>'>

<!ENTITY xsltcclasspath '<p>If you are using <link idref="xsltc_usage">&xslt4jc-short;</link>, see
                        <link idref="xsltc_usage" anchor="classpath">Setting the system classpath for &xslt4jc-short;</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 &xslt4jc-short; samples</link></li>   
                 </ul>
                 <p>You can use the TrAX/JAXP 1.2 interfaces to compile and run translets.
                 For an overview of the usage patterns these samples illustrate, see 
                 <link idref="xsltc_usage" anchor="api">Calling &xslt4jc-short; with the TrAX/JAXP API</link>.</p>
                 <anchor name="xsltc1"/>
                 <s3 title="JAXPTransletOneTransformation">
                 <p>What it does: Uses the &xslt4jc-short; TransformerFactory to compile a translet and use
                 the translet to transform the &xslt4jc-short; to-do list from XML into HTML.</p>
                 <p>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 &xslt4jc-short; TransformerFactory to compile a translet and use
                 the Templates object associated with the translet to transform the &xslt4jc-short; and Xalan to-do lists from XML 
                 into HTML.</p>
                 <p>Run this sample from the translets subdirectory with</p>
                 <p><code>java JAXPTransletMultipleTransformations</code></p>
                 <p>View the results in todo-xsltc.html and todo-xalan.html.</p>                
                 </s3><anchor name="xsltcother"/>
                 <s3 title="Other &xslt4jc-short; samples">
                 <p>Other &xslt4jc-short; 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>
                 <p>&xslt4jc-short; provides demos for using &xslt4jc-short; as a servlet and as a handler for
                 Brazil (a new and powerful Web techology from Sun labs).</p>
                 <p>To run the Brazil-handler demo, 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>The translet must be specified as a pure class name,
                 accessible through the Brazil-handler&apos;s 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>In order to run the Brazil-handler demo, you also need to
                      make the Brazil and javax classes available from your
                      classpath</note>
                 <p>To run the servlet demo, download 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>
                 </s3>
                 </s2>'>
