ilene 2003/02/21 12:10:12
Modified: java/xdocs/sources/xalan extensions_xsltc.xml getstarted.xml
resources.xml features.xml faq.xml
xsltc_history.xml builds.xml history.xml
commandline.xml overview.xml samples.xml index.xml
xsltc_usage.xml readme.xml extensionslib.xml
usagepatterns.xml extensions.xml whatsnew.xml
dtm.xml commandline_xsltc.xml
java/xdocs/sources xsltc.xml entities.ent xalan-jlocal.xml
xalan-jsite.xml
java/src/org/apache/xalan/xslt EnvironmentCheck.java
java commits.xml
Log:
Applying Sarah McNamara's ([EMAIL PROTECTED]) documentation patch.
Revision Changes Path
1.4 +28 -25 xml-xalan/java/xdocs/sources/xalan/extensions_xsltc.xml
Index: extensions_xsltc.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/extensions_xsltc.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- extensions_xsltc.xml 27 Jan 2003 18:45:36 -0000 1.3
+++ extensions_xsltc.xml 21 Feb 2003 20:10:07 -0000 1.4
@@ -58,7 +58,7 @@
* <http://www.apache.org/>.
-->
-<s1 title="Extensions for XSLTC">
+<s1 title="Extensions for &xslt4jc-short;">
<ul>
<li><link anchor="intro">Introduction</link></li>
<li><link anchor="constraints">Constraints</link></li>
@@ -69,37 +69,38 @@
</ul>
<anchor name="intro"/>
<s2 title="Introduction">
- <p>XSLTC supports the use of extension functions implemented in external
Java classes. It also
+ <p>&xslt4jc-short; supports the use of extension functions implemented in
external Java classes. It also
supports the <link anchor="nodeset_ext">nodeset</link>, <link
anchor="redirect_ext">output/redirect</link>
- and <link anchor="exslt_ext">EXSLT</link> extension functions. Extension
support in XSLTC is
+ and <link anchor="exslt_ext">EXSLT</link> extension functions. Extension
support in &xslt4jc-short; is
still under development. It is currently not as complete as the extension
support in the
- interpretive Xalan. There are constraints in some areas.</p>
+ &xslt4j; Interpretive processor. There are constraints in some areas.</p>
</s2>
<anchor name="constraints"/>
<s2 title="Constraints">
<p>In addition to the constraints listed below for each particular
extension, extension support
- in XSLTC also has the following limitations:</p>
+ in &xslt4jc-short; also has the following limitations:</p>
<ol>
<li><link idref="extensions" anchor="ext-elements">Extension
element</link> is not supported.
The extension element mechanism is closely related to the internal
implementation of the XSLT processor.
- The current extension element mechansim is designed for the interpretive
Xalan. It does not work with XSLTC.</li>
+ The current extension element mechansim is designed for the &xslt4ji;
processor. It does not work with &xslt4jc-short;.</li>
<li>The <link idref="extensions" anchor="supported-lang">xalan:component
and xalan:script</link> extension elements are not supported at the moment.
This has
- the implication that you cannot use scripting languages (e.g. javascript)
with XSLTC.</li>
- <li><link idref="extensionslib" anchor="sql">The SQL extension</link> is
not supported in XSLTC at the moment.</li>
+ the implication that you cannot use scripting languages (e.g. javascript)
with &xslt4jc-short;.</li>
+ <li><link idref="extensionslib" anchor="sql">The SQL extension</link> is
not supported in &xslt4jc-short; at the moment.</li>
</ol>
</s2>
<anchor name="java_ext"/>
<s2 title="Java extension">
- <p>Java extension is supported in XSLTC. Constructors, static and instance
methods are all supported.
+ <p>Java extension is supported in &xslt4jc-short;. Constructors, static
and instance methods are all supported.
You can use any of the <link idref="extensions"
anchor="ext-func-calls">three namespace formats</link>
(Java, package and class) in your stylesheet.
</p>
- <p>The official namespace for the Java extension is
<code>http://xml.apache.org/xalan/java</code>. The old XSLTC Java namespace
- <code>http://xml.apache.org/xalan/xsltc/java</code> and the old Xalan
namespace <code>http://xml.apache.org/xslt/java</code>
+ <p>The official namespace for the Java extension is
<code>http://xml.apache.org/xalan/java</code>. The old &xslt4jc-short; Java
namespace
+ <code>http://xml.apache.org/xalan/xsltc/java</code> and the old &xslt4j;
namespace <code>http://xml.apache.org/xslt/java</code>
are also supported for backward compatibility.</p>
- <p>All usage syntax for Xalan also applies to XSLTC with only one
exception: XSLTC does not support the notion of default object
+ <p>All usage syntax for the &xslt4j; Interpretive processor also applies
to &xslt4jc-short; with only one
+ exception: &xslt4jc-short; does not support the notion of default object
in <link idref="extensions" anchor="ext-func-calls">class format
namespace</link>.
When using instance methods, you should always specify the class instance
as the first argument
to the extension function.</p>
@@ -139,12 +140,12 @@
</xsl:stylesheet>
</source>
<note>Always use the abbreviated syntax for Java extension, because the
xalan:component/xalan:script
- constructs are not supported in XSLTC.</note>
+ constructs are not supported in &xslt4jc-short;.</note>
</s2>
<anchor name="exslt_ext"/>
<s2 title="EXSLT extensions">
- <p>The following EXSLT extension modules are supported in XSLTC:</p>
+ <p>The following EXSLT extension modules are supported in
&xslt4jc-short;:</p>
<ul>
<li><jump href="apidocs/org/apache/xalan/lib/ExsltCommon.html">EXSLT
common functions</jump></li>
<li><jump href="apidocs/org/apache/xalan/lib/ExsltMath.html">EXSLT math
functions</jump></li>
@@ -153,23 +154,24 @@
<li><jump href="apidocs/org/apache/xalan/lib/ExsltStrings.html">EXSLT
string functions</jump></li>
</ul>
<p>The functions in the <jump
href="apidocs/org/apache/xalan/lib/ExsltDynamic.html">dynamic</jump> module
- (e.g. evaluate) are not supported because of the XSLTC design limitation.
+ (e.g. evaluate) are not supported because of the &xslt4jc-short; design
limitation.
Work is currently underway on <jump
href="http://www.exslt.org/func/elements/function/index.html">user
defined EXSLT functions (with the function and result elements)</jump>.</p>
<p>The <code>nodeset</code> and <code>objectType</code> extension
functions in the <jump
href="apidocs/org/apache/xalan/lib/ExsltCommon.html">common</jump>
- module are implemented natively in XSLTC. For all other EXSLT extension
functions,
- XSLTC uses the same implementation as Xalan. The implementation classes
are under <code>org.apache.xalan.lib</code>.
+ module are implemented natively in &xslt4jc-short;. For all other EXSLT
extension functions,
+ &xslt4jc-short; uses the same implementation as the &xslt4j; Interpretive
processor. The implementation classes
+ are under <code>org.apache.xalan.lib</code>.
Depending on the packaging, these classes can be in a separate jar file
(e.g. xalan.jar) from
- the XSLTC classes. In this case you need to add the jar file containing
the EXSLT classes to your
- classpath in order to use EXSLT extensions in XSLTC.</p>
+ the &xslt4jc-short; classes. In this case you need to add the jar file
containing the EXSLT classes to your
+ classpath in order to use EXSLT extensions in &xslt4jc-short;.</p>
</s2>
<anchor name="nodeset_ext"/>
<s2 title="nodeset">
- <p>XSLTC also supports the nodeset() extension function for transforming
an RTF (result
+ <p>&xslt4jc-short; also supports the nodeset() extension function for
transforming an RTF (result
tree fragment) into a node set.</p>
- <p>The nodeset extension can be used as an XSLTC extension function in
the namespace
- <code>http://xml.apache.org/xalan/xsltc</code>, a Xalan extension
function in the namespace
+ <p>The nodeset extension can be used as an &xslt4jc-short; extension
function in the namespace
+ <code>http://xml.apache.org/xalan/xsltc</code>, a &xslt4j; extension
function in the namespace
<code>http://xml.apache.org/xalan</code>, an EXSLT extension function in
the namespace
<code>http://exslt.org/common</code> or as a standard XPATH function.
When it is used as
an EXSLT extension function, you need to refer to the nodeset extension
function as
@@ -190,7 +192,7 @@
</xsl:variable>
<!-- Use nodeset as an XSLTC extension function -->
<xsl:value-of
select="xsltc-extension:nodeset($rtf)/docelem/elem1"/>
- <!-- Use nodeset as a Xalan extension function -->
+ <!-- Use nodeset as a &xslt4j; extension function -->
<xsl:value-of
select="xalan:nodeset($rtf)/docelem/elem1"/>
<!-- Use nodeset as an EXSLT extension function -->
<xsl:value-of
select="exslt:node-set($rtf)/docelem/elem1"/>
@@ -205,10 +207,11 @@
<anchor name="redirect_ext"/>
<s2 title="output/redirect">
- <p>XSLTC supports the output extension element for redirecting the output
to one
+ <p>&xslt4jc-short; supports the output extension element for redirecting
the output to one
or more files. The output extension element is also aliased to the write
extension element
in the namespace <code>http://xml.apache.org/xalan/redirect</code>.
Therefore you can use
- it in the same way as the <link idref="extensionslib"
anchor="redirect">redirect</link> extension in Xalan.</p>
+ it in the same way as the <link idref="extensionslib"
anchor="redirect">redirect</link>
+ extension in &xslt4j;.</p>
<p>You can use the file and append attributes with the output/redirect
extension. The value of the file
attribute is an attribute value template. If the value of the append
attribute is true or yes, the
output is appended to the file rather than overwriting the file.</p>
1.27 +79 -57 xml-xalan/java/xdocs/sources/xalan/getstarted.xml
Index: getstarted.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/getstarted.xml,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- getstarted.xml 27 Jan 2003 18:45:36 -0000 1.26
+++ getstarted.xml 21 Feb 2003 20:10:07 -0000 1.27
@@ -58,67 +58,89 @@
-->
<s1 title="Getting Started">
<ul>
-<li><link anchor="download">Downloading what you need</link></li>
-<li><link anchor="classpath">Setting up the system classpath</link></li>
-<li><link anchor="samples">Trying out the samples</link></li>
-<li><link anchor="commandline">Performing your own transformations from the
command line</link></li>
-<li><link anchor="java-apps">Setting up your own XSLT
applications</link></li>
+ <li><link anchor="classpath">Setting up the system classpath</link></li>
+ <li><link anchor="samples">Trying out the samples</link></li>
+ <li><link anchor="commandline">Performing your own transformations from
the command line</link></li>
+ <li><link anchor="java-apps">Setting up your own XSLT
applications</link></li>
</ul>
-<anchor name="download"/>
-<s2 title="Downloading what you need">
-<p>To use &xslt4j;, you need the following:</p>
-<ul>
-<li>The JDK or JRE 1.2.2, or 1.3.x</li>
-<li>xalan.jar</li>
-<li>xml-apis.jar</li>
-<li>&xml4j-jar;, or another <link idref="usagepatterns" anchor="plug">XML
Parser</link></li>
-</ul>
-<p>You can get the JDK or JRE from <jump
href="http://www.ibm.com/java/jdk">ibm.com/java/jdk/</jump> or <jump
href="http://www.java.sun.com">java.sun.com</jump>.</p>
-<p>For the binary distribution, which includes everything required to use
and build applications with &xslt4j;, download <resource-ref
idref="xslt4j-dist-bin-zip"/> or <resource-ref idref="xslt4j-dist-bin-targz"/>.
Both of these files contain &xslt4j-current; (with xalan.jar and xml-apis.jar)
and &xml4j-jar; from <resource-ref idref="xml4j-used"/>. You can use a zip or
tar utility to expand these files into a full build.</p>
-<p>If you want the &xslt4j; source files, download <resource-ref
idref="xslt4j-dist-src-zip"/> or <resource-ref idref="xslt4j-dist-src-targz"/>.
After you expand these files into the complete source tree, you can use
<resource-ref idref="ant"/> to do your own builds. For more information, see
<link idref="readme" anchor="build">Build notes</link>.</p>
-
-<p>If you plan to run <link idref="extensions">XSLT extensions</link>, you
need bsf.jar, which is included in the &xslt4j; distribution. If you plan to
run XSLT extensions implemented in Javascript or another scripting language,
you will need one or more additional files as indicated in <link
idref="extensions" anchor="supported-lang">extensions language
requirements</link>.</p>
-</s2><anchor name="classpath"/>
+<note>Unless otherwise specified, the usage discussed in this section refers
to
+the &xslt4j; Interpretive processor. See <link idref="xsltc_usage">Getting
Started with XSLTC
+</link> for information on using the &xslt4j; Compiling
processor.</note><br></br>
+<anchor name="classpath"/>
<s2 title="Setting up the system classpath">
-<p>At the very minimum, you must include xalan.jar, xml-apis.jar, and
&xml4j-jar; -- or another conformant XML parser -- see
-<link idref="usagepatterns" anchor="plug">Plugging in a Transformer and XML
parser</link>) on the system classpath. To run the sample applications,
-include xalansamples.jar (all samples other than the servlet) and
xalanservlet.jar. To run extensions, include bsf.jar. All these JAR files
-are distributed with &xslt4j;. For extensions implemented in JavaScript or
another scripting language, see <link idref="extensions"
anchor="supported-lang">extensions language
-requirements</link> to identify any additional JAR files you must place on
the classpath and where you can get them.</p>
-&xsltcclasspath;
-<p>If you are using JDK or JRE 1.2.2, include tools.jar on the classpath.</p>
-</s2><anchor name="samples"/>
+ <p>At the very minimum, you must include xalan.jar, xml-apis.jar, and
&xml4j-jar; -- or another
+ conformant XML parser -- see <link idref="usagepatterns"
anchor="plug">Plugging in a Transformer
+ and XML parser</link>) on the system classpath. To run the XSLT
Interpretive processor sample
+ applications, include xalansamples.jar (all samples other than the
servlet) and xalanservlet.jar.
+ To run Javascript extensions, include bsf.jar. All these JAR files are
distributed with &xslt4j;. For
+ extensions implemented in other scripting language, see <link
idref="extensions"
+ anchor="supported-lang"> extensions language requirements</link> to
identify any additional JAR
+ files you must place on the classpath and where you can get them.</p>
+
+ <p>If you are using <link idref="xsltc_usage">XSLTC</link>, see <link
idref="xsltc_usage">
+ Getting Starting with XSLTC</link>.</p>
+
+ <p>If you are using JDK or JRE 1.2.2, 1.3.x or 1.4.x, include tools.jar on
the classpath. If you
+ are using JDK or JRE 1.1.8 (supported for runtime only), then include
classes.zip on the
+ classpath.</p>
+</s2>
+
+<anchor name="samples"/>
<s2 title="Trying out the samples">
-<p>The &xslt4j; distribution includes a number of basic sample applications.
These samples are easy to run, and you can review the source files -- all of
which are brief -- to see just how they work.</p>
-<p>To run the samples, do the following:</p>
-<ol>
-<li>Set up your classpath (see above), including xalansamples.jar and (for
the servlet) xalanservlet.jar.</li>
-<li>Be sure the java executable is on your path.</li>
-<li>Go to the samples subdirectory containing the sample (use the DOS shell
if you are running Windows).</li>
-<li>Use the java executable to run the sample from the command line.</li>
-<li>Examine the application source and result files.</li>
-</ol>
-<p>For example, go to the SimpleTransform subdirectory and issue the
following command:</p>
-<p><code>java SimpleTransform</code></p>
-<p>The sample writes the transformation result to a file (birds.out). To
see how the example works, examine the source files: birds.xml, birds.xsl, and
SimpleTransform.java.</p>
-<p>The extensions examples require additional JAR files on the classpath,
and the procedure for running the sample applet and sample servlet is
different. For more information about all the samples, see <link
idref="samples">&xslt4j; Samples</link>.</p>
-</s2><anchor name="commandline"/>
+ <p>The &xslt4j; distribution includes a number of basic sample
applications. These samples are easy
+ to run, and you can review the source files -- all of which are brief
-- to see just how they
+ work.</p>
+ <p>To run the samples, do the following:</p>
+ <ol>
+ <li>Set up your classpath (see above), including xalansamples.jar and
(for the servlet)
+ xalanservlet.jar.</li>
+ <li>Be sure the java executable is on your path.</li>
+ <li>Go to the samples subdirectory containing the sample (use the DOS
shell if you are running
+ Windows).</li>
+ <li>Use the java executable to run the sample from the command line.</li>
+ <li>Examine the application source and result files.</li>
+ </ol>
+ <p>For example, go to the SimpleTransform subdirectory and issue the
following command:</p>
+ <p><code>java SimpleTransform</code></p>
+ <p>The sample writes the transformation result to a file (birds.out). To
see how the example works,
+ examine the source files: birds.xml, birds.xsl, and
SimpleTransform.java.</p>
+ <p>The extensions examples require additional JAR files on the classpath,
and the procedure for
+ running the sample applet and sample servlet is different. For more
information about all the
+ samples, see <link idref="samples">&xslt4j; Samples</link>.</p>
+</s2>
+
+<anchor name="commandline"/>
<s2 title="Performing your own transformations from the command line">
-<p>java.org.apache.xalan.xslt.Process provides a basic utility for
performing transformations from the command line. You use this utility, for
example, to run several of the extensions samples. The command line for most
standard transformations is as follows:</p>
-<p><code>java org.apache.xalan.xslt.Process -in
<ref>xmlSource</ref></code><br/>
-<code> -xsl <ref>stylesheet</ref> -out
<ref>outputfile</ref></code></p>
-<p>where <ref>xmlSource</ref> is the XML source file name,
<ref>stylesheet</ref> is the XSL stylesheet file name, and
<ref>outputfile</ref> is the output file name.</p>
-<p>If you want the output to be displayed on the screen, simply omit the
-out flag and argument.</p>
-<p>You can use this utility to try out XSL stylesheets you have written, to
make sure they do what you expect with the XML source files they are designed
to transform. The utility provides useful messages if the source file or
stylesheet is not well formed. For more information, see <link
idref="commandline">Command-Line Utility</link>.</p>
-</s2><anchor name="java-apps"/>
+ <p>java.org.apache.xalan.xslt.Process provides a basic utility for
performing transformations from
+ the command line. You use this utility, for example, to run several of
the extensions samples.
+ The command line for most standard transformations is as follows:</p>
+ <p><code>java org.apache.xalan.xslt.Process -in
<ref>xmlSource</ref></code><br/>
+ <code> -xsl <ref>stylesheet</ref> -out
<ref>outputfile</ref></code></p>
+ <p>where <ref>xmlSource</ref> is the XML source file name,
<ref>stylesheet</ref> is the XSL
+ stylesheet file name, and <ref>outputfile</ref> is the output file
name.</p>
+ <p>If you want the output to be displayed on the screen, simply omit the
-out flag and argument.</p>
+ <p>You can use this utility to try out XSL stylesheets you have written,
to make sure they do what
+ you expect with the XML source files they are designed to transform.
The utility provides useful
+ messages if the source file or stylesheet is not well formed. For more
information, see
+ <link idref="commandline">Command-Line Utility</link>.</p>
+</s2>
+
+<anchor name="java-apps"/>
<s2 title="Setting up your own Java applications">
-<p>You can start by using your own XML source files and XSL stylesheets with
the sample applications, which illustrate a number of the <link
idref="usagepatterns">basic usage patterns</link>.</p>
-<p>Here is the basic TRaX procedure to keep in mind when you set up a
transformation:</p>
-<ol>
-<li>Use the <jump
href="apidocs/javax/xml/transform/TransformerFactory.html">TransformerFactory</jump>
static newInstance() method to instantiate a TransformerFactory.<br/><br/></li>
-<li>Use the TransformerFactory newTransformer(Source stylesheet) method to
process the transformation instructions in an XSLT stylesheet Source (producing
under the covers a <jump
href="apidocs/javax/xml/transform/Templates.html">Templates</jump> object) and
generate a <jump
href="apidocs/javax/xml/transform/Transformer.html">Transformer</jump>.<br/><br/></li>
-<li>Use the Transformer transform(Source xmlSource, Result transformResult)
method to apply the transformation instructions (the Templates object) to the
XML Source and produce the transformation Result.<br/><br/></li>
-</ol>
-<p>For more information about this procedure and its variations, see <link
idref="usagepatterns">Basic Usage Patterns</link>.</p>
+ <p>You can start by using your own XML source files and XSL stylesheets
with the sample applications,
+ which illustrate a number of the <link idref="usagepatterns">basic
usage patterns</link>.</p>
+ <p>Here is the basic TRaX procedure to keep in mind when you set up a
transformation:</p>
+ <ol>
+ <li>Use the <jump
href="apidocs/javax/xml/transform/TransformerFactory.html">TransformerFactory</jump>
static newInstance() method to instantiate a TransformerFactory.<br/><br/></li>
+ <li>Use the TransformerFactory newTransformer(Source stylesheet) method
to process the
+ transformation instructions in an XSLT stylesheet Source (producing
under the covers a
+ <jump
href="apidocs/javax/xml/transform/Templates.html">Templates</jump> object) and
generate
+ a <jump
href="apidocs/javax/xml/transform/Transformer.html">Transformer</jump>.<br/><br/></li>
+ <li>Use the Transformer transform(Source xmlSource, Result
transformResult) method to apply the
+ transformation instructions (the Templates object) to the XML Source
and produce the
+ transformation Result.<br/><br/></li>
+ </ol>
+ <p>For more information about this procedure and its variations, see <link
idref="usagepatterns">Basic
+ Usage Patterns</link>.</p>
</s2>
</s1>
1.31 +25 -20 xml-xalan/java/xdocs/sources/xalan/resources.xml
Index: resources.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/resources.xml,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- resources.xml 3 Feb 2003 19:44:29 -0000 1.30
+++ resources.xml 21 Feb 2003 20:10:07 -0000 1.31
@@ -4,13 +4,11 @@
%externalEntity;
<!ELEMENT resources (resource|human-resource)+>
<!ELEMENT resource EMPTY>
- <!ATTLIST resource
- id CDATA #IMPLIED
+ <!ATTLIST resource id CDATA #IMPLIED
title CDATA #IMPLIED
location CDATA #IMPLIED>
<!ELEMENT human-resource EMPTY>
- <!ATTLIST human-resource
- id CDATA #IMPLIED
+ <!ATTLIST human-resource id CDATA #IMPLIED
name CDATA #IMPLIED
mailto CDATA #IMPLIED>
]>
@@ -60,22 +58,26 @@
location="http://xml.apache.org/dist/LICENSE.txt"/>
<resource id="bugzilla"
title="Bugzilla (the Apache bug database)"
- location="http://nagoya.apache.org/bugzilla"/>
+ location="http://nagoya.apache.org/bugzilla/"/>
<resource id="buglist"
title="XalanJ2 open bugs"
-
location="http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=XalanJ2&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&order=%27Importance%27"/>
+
location="http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=XalanJ2&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&order=%27Importance%27"/>
<resource id="bsf"
title="Bean Scripting Framework (BSF)"
-
location="http://oss.software.ibm.com/developerworks/projects/bsf"/>
-
+
location="http://oss.software.ibm.com/developerworks/projects/bsf"/>
+
<resource id="Readme"
title="Xalan Repository Release Notes"
location="http://www.apache.org/websrc/cvsweb.cgi/xml-xalan/README"/>
-
- <resource id="mulberryxsl-list" title="Mulberry XSL Mailing List"
location="http://mulberrytech.com/xsl/xsl-list/index.html"/>
- <resource id="dpawsonxslfaq" title="XSL Frequently Asked Questions"
location="http://www.dpawson.co.uk/xsl/xslfaq.html"/>
-
+ <resource id="mulberryxsl-list"
+ title="Mulberry XSL Mailing List"
+ location="http://mulberrytech.com/xsl/xsl-list/index.html"/>
+
+ <resource id="dpawsonxslfaq"
+ title="XSL Frequently Asked Questions"
+ location="http://www.dpawson.co.uk/xsl/xslfaq.html"/>
+
<resource id="xsl"
title="Extensible Stylesheet Language (XSL) Version 1.0"
location="http://www.w3.org/TR/xsl"/>
@@ -83,11 +85,11 @@
<resource id="xslt"
title="XSL Transformations (XSLT) Version 1.0"
location="http://www.w3.org/TR/xslt"/>
-
+
<resource id="xpath"
title="XML Path Language (XPath) Version 1.0"
location="http://www.w3.org/TR/xpath"/>
-
+
<resource id="dom"
title="DOM"
location="http://www.w3.org/DOM"/>
@@ -100,29 +102,32 @@
location="http://www.megginson.com/SAX/sax.html"/>
<resource id="sax2"
title="SAX 2"
- location="http://www.megginson.com/SAX/Java/index.html"/>
+ location="http://sax.sourceforge.net"/>
<resource id="jaxp"
title="Java API for XML Parsing 1.0"
location="http://java.sun.com/xml/docs/api/index.html"/>
<resource id="jaxp11"
title="Java API for XML Processing 1.1"
location="http://java.sun.com/xml/jaxp/dist/1.1/jaxp-1_1-spec.pdf"/>
+ <resource id="jaxp12"
+ title="Java API for XML Processing 1.2"
+ location="http://java.sun.com/xml/jaxp/index.html"/>
<resource id="jsr063"
title="Java Specification Request 63"
location="http://java.sun.com/aboutJava/communityprocess/review/jsr063"/>
-
+
<resource id="xmlapirepository"
title="xml-commons/java/external/src"
location="http://cvs.apache.org/viewcvs.cgi/xml-commons/java/external/src/"/>
-
+
<resource id="endorsed"
title="Endorsed Standards Override Mechanism"
location="http://java.sun.com/j2se/1.4/docs/guide/standards/"/>
-
+
<human-resource id="xalandev"
name="Xalan Development Mailing List"
mailto="[email protected]"/>
-
+
<human-resource id="sboag"
name="Scott Boag"
mailto="[EMAIL PROTECTED]"/>
@@ -162,5 +167,5 @@
<human-resource id="zongaro"
name="Henry Zongaro"
mailto="[EMAIL PROTECTED]"/>
-
+
</resources>
1.6 +6 -3 xml-xalan/java/xdocs/sources/xalan/features.xml
Index: features.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/features.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- features.xml 27 Jan 2003 18:45:36 -0000 1.5
+++ features.xml 21 Feb 2003 20:10:07 -0000 1.6
@@ -64,9 +64,10 @@
</ul>
<anchor name="factoryfeature"/>
<s2 title="Standard TransformerFactory features">
-<p>The JAXP 1.1 Transformation API for XML (<link idref="trax">TrAX</link>)
defines objects and methods for processing input and producing
+<p>The JAXP 1.2 Transformation API for XML (<link idref="trax">TrAX</link>)
defines objects and
+methods for processing input and producing
output in a variety of formats, including character streams, SAX event
streams, and DOM Documents.</p>
-<p>JAXP 1.1 defines the following features:</p>
+<p>JAXP 1.2 defines the following features:</p>
<ul>
<li><link anchor="streamsource">StreamSource feature</link></li>
<li><link anchor="streamresult">StreamResult feature</link></li>
@@ -241,7 +242,9 @@
tFact.setAttribute(TransformerFactoryImpl.FEATURE_INCREMENTAL,
Boolean.FALSE);
}</source>
-</s3><anchor name="source_location"/>
+<note>The incremental feature is not currently supported by XSLTC.</note>
+</s3>
+<anchor name="source_location"/>
<s3 title="source_location attribute">
<p><em>URI:</em> "http://apache.org/xalan/features/source_location"</p>
<p>Provide a <jump
href="apidocs/javax/xml/transform/SourceLocator.html">SourceLocator</jump> that
can be used during a transformation
1.28 +237 -153 xml-xalan/java/xdocs/sources/xalan/faq.xml
Index: faq.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/faq.xml,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- faq.xml 3 Feb 2003 19:44:29 -0000 1.27
+++ faq.xml 21 Feb 2003 20:10:07 -0000 1.28
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE faqs PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
<!--
* The Apache Software License, Version 1.1
*
@@ -73,8 +73,9 @@
<faq title='Where can I ask questions about XSLT'>
<q>Where can I ask questions about XSLT?</q>
<a>
- <p>xalan-dev and xalan-j-users are for Xalan-Java questions only.
This is not the best forum to ask general XSLT questions. The
- <resource-ref idref='mulberryxsl-list' /> is an excellent place to
ask XSLT questions; please search
+ <p>xalan-dev and xalan-j-users are for Xalan-Java questions only.
This is not the best
+ forum to ask general XSLT questions. The <resource-ref
idref='mulberryxsl-list' /> is an
+ excellent place to ask XSLT questions; please search
<resource-ref idref='dpawsonxslfaq' /> to ensure your question has
not been already asked.
</p>
</a>
@@ -83,29 +84,33 @@
<q>What are TrAX and JAXP, and are they related?</q>
<a>
<p><anchor name="trax"/></p>
- <p>TrAX is the Transformation API for XML. In November 2000, TrAX
was revised and incorporated into JAXP, the JAVA API for XML
- Processing. JAXP (including TrAX) provides users a standard,
vendor-neutral API for working with (and transforming) XML documents.
- You can use this API to build applications that are not bound to the
particular implementation details of a given XML parser or XSL
- transformer.</p>
- <p>Xalan-Java includes the JAXP packages, implements the TrAX
portion of that API (javax.xml.transform....), and includes xercesImpl.jar from
- Xerces-Java, which implements the parser portion of the API
(javax.xml.parser....).</p>
- <p>For more information, see
- <link idref='trax'>TRaX (Transformation API for XML)</link> and
- <resource-ref idref='jaxp11' />.
+ <p>TrAX is the Transformation API for XML. In November 2000, TrAX
was revised and incorporated
+ into JAXP, the JAVA API for XML Processing. JAXP (including TrAX)
provides users a standard,
+ vendor-neutral API for working with (and transforming) XML
documents. You can use this API
+ to build applications that are not bound to the particular
implementation details of a given
+ XML parser or XSL transformer.</p>
+ <p>&xslt4j; includes the JAXP packages, implements the TrAX portion
of
+ that API (javax.xml.transform....), and includes xercesImpl.jar
from
+ <resource-ref idref='xml4j-used' />, which implements the parser
portion of the API
+ (javax.xml.parser....).</p>
+ <p>For more information, see <link idref='trax'>TRaX (Transformation
API for XML)</link> and
+ <resource-ref idref='jaxp12' />.
</p>
</a>
</faq>
</group>
<group title='Versions'>
- <faq title='Determining Xalan-Java Version'>
- <q>How do I see what version of Xalan-Java I'm running? How do I
determine which parser I'm using?</q>
+ <faq title='Determining &xslt4j; Version'>
+ <q>How do I see what version of &xslt4j; I'm running? How do I
determine
+ which parser I'm using?</q>
<a>
<p>
<anchor name='environmentcheck' />
</p>
<p>
- <em>Using the EnvironmentCheck utility:</em> To help diagnose
classpath problems and also determine which version of Xalan-Java is being
used, try running Xalan-Java's environment checking utility, checked in at
- xml-xalan/java/src/org/apache/xalan/xslt/EnvironmentCheck.
+ <em>Using the EnvironmentCheck utility:</em> To help diagnose
classpath problems and also
+ determine which version of &xslt4j; is being used, try running
+ &xslt4j;'s environment checking utility.
</p>
<p>You can run this utility from the command line as follows:</p>
<p>
@@ -115,10 +120,11 @@
<p>
<code>boolean environmentOK = (new
EnvironmentCheck()).checkEnvironment (yourPrintWriter);</code>
</p>
- <p>Be sure to run EnvironmentCheck in the environment where you are
experiencing the problem. For example, if you get a
- NoClassDefFound error from a command-line application, run
EnvironmentCheck on the command line with exactly the same
- classpath. If the error occurs inside your Java application (or in a
servlet, etc.), be sure to call the
- EnvironmentCheck checkEnvironment(...) method from within your running
application.</p>
+ <p>Be sure to run EnvironmentCheck in the environment where you are
experiencing the problem.
+ For example, if you get a NoClassDefFound error from a
command-line application, run
+ EnvironmentCheck on the command line with exactly the same
classpath. If the error occurs
+ inside your Java application (or in a servlet, etc.), be sure to
call the EnvironmentCheck
+ checkEnvironment(...) method from within your running
application.</p>
<p>Best of all, you can call checkEnvironment from a stylesheet
using extensions:</p>
<source>
<?xml version="1.0"?>
@@ -136,58 +142,78 @@
</a>
</faq>
<faq title='Which version of Xerces should I be using?'>
- <q>Which version of Xerces should I be using?</q>
+ <q>Which version of &xml4j-used; should I be using?</q>
<a>
- <p><resource-ref idref='xslt4j-current' /> has been tested with
<resource-ref idref='xml4j-used' />. See
- <link anchor='status' idref='readme'>Status</link>.
+ <p><resource-ref idref='xslt4j-current' /> has been tested with
<resource-ref idref='xml4j-used' />.
+ See <link anchor='status' idref='readme'>Status</link>.
</p>
</a>
</faq>
- <faq title='Compatibility with Xalan-Java version 1'>
- <q>How do I run applications that use the Xalan-Java version 1 API
with Xalan-Java 2</q>
+ <faq title='Compatibility with &xslt4j; version 1'>
+ <q>How do I run applications that use the &xslt4j; version 1 API with
&xslt4j;</q>
<a>
- <p>The Xalan-Java 1 compatibility API has been deprecated and now
purged, so you must use the Xalan-Java 2 API. We strongly encourage you to
- use the JAVAX 1.1/TrAX API. For more information ,see the FAQ on <link
anchor='trax'>TrAX and JAXP.</link></p>
+ <p>The &xslt4j; version 1 compatibility API has been deprecated and
now purged, so you
+ must use the &xslt4j; version 2 API. We strongly encourage you to
use the JAVAX 1.2/TrAX
+ API. For more information ,see the FAQ on <link
anchor='trax'>TrAX and JAXP.</link></p>
</a>
</faq>
- <faq title='Issues running Xalan-Java on JDK 1.3'>
- <q>I'm having a problem building or running Xalan-Java on the JDK
1.3.</q>
+ <faq title='Issues running &xslt4j; on JDK 1.3'>
+ <q>I'm having a problem building or running &xslt4j; on the JDK
1.3.</q>
<a>
<p><anchor name='jdk13'/></p>
- <p>The JDK 1.3 automatically places everything in the lib/ext
directory in front of everything you place on the classpath. If this directory
contains a version of DOM, JAXP, or Xerces that predates the Xalan-Java
distribution you are using, you may have problems!</p>
- <p>The IBM JDK 1.3 includes an earlier version of xerces.jar in the
lib/ext directory, a version that does not implement the JAXP 1.1 interfaces
and therefore does not work with the current Xalan-Java release. Accordingly,
you must either purge the xerces.jar that is in that directory or replace it
with the xercesImpl.jar that is included with the Xalan-Java distribution.</p>
- <p>The SUN JDK 1.3 includes a pre-1.1 version of the JAXP in
crimson.jar. Either purge the crimson.jar in that directory or overwrite it
with a newer crimson.jar that includes and implements the JAXP 1.1
interfaces.</p>
+ <p>The JDK 1.3 automatically places everything in the lib/ext
directory in front of everything
+ you place on the classpath. If this directory contains a version
of DOM, JAXP, or Xerces
+ that predates the &xslt4j; distribution you are using, you may
have problems!</p>
+ <p>The IBM JDK 1.3 includes an earlier version of xerces.jar in the
lib/ext directory, a
+ version that does not implement the JAXP 1.2 interfaces and
therefore does not work with the
+ current &xslt4j; release. Accordingly, you must either purge the
+ xerces.jar that is in that directory or replace it with the
xercesImpl.jar that is included
+ with the &xslt4j; distribution.</p>
+ <p>The SUN JDK 1.3 includes a pre-1.1 version of the JAXP in
crimson.jar. Either purge the
+ crimson.jar in that directory or overwrite it with a newer
crimson.jar that includes and
+ implements the JAXP 1.2 interfaces.</p>
</a>
</faq>
- <faq title='Issues running Xalan-Java on JDK 1.4'>
- <q>I'm having a problem running Xalan-Java on the JDK 1.4.</q>
+ <faq title='Issues running &xslt4j; on JDK 1.4'>
+ <q>I'm having a problem running &xslt4j; on the JDK 1.4.</q>
<a>
<p><anchor name='jdk14'/></p>
- <p>The Sun JDK 1.4 is packaged with an old version (2.2D11) of
Xalan-Java. The JDK 1.4 will attempt to use this version instead of any on the
classpath. Unfortunately, this causes problems when attempting to use a newer
version of Xalan-Java with the Sun JDK 1.4.</p>
- <p>You can always determine which version of Xalan-Java you are
running by using the
- <link anchor='environmentcheck'>EnvironmentCheck</link> class or
by using the xalan:checkEnvironment extension function. It is highly
recommended that you use this method to verify the version of Xalan-Java you
are running, especially before opening a bug report.
- </p>
- <p>There are several ways to use a later version of Xalan-Java and
override the one packaged with the JDK:</p>
+ <p>The Sun JDK 1.4 is packaged with an old version (2.2D11) of
&xslt4j;. The JDK 1.4 will
+ attempt to use this version instead of any on the classpath.
Unfortunately, this causes
+ problems when attempting to use a newer version of &xslt4j; with
the Sun JDK 1.4.</p>
+ <p>You can always determine which version of &xslt4j; you are
running
+ by using the <link
anchor='environmentcheck'>EnvironmentCheck</link> class or by using the
+ xalan:checkEnvironment extension function. It is highly
recommended that you use this
+ method to verify the version of &xslt4j; you are running,
especially
+ before opening a bug report.</p>
+ <p>There are several ways to use a later version of &xslt4j; and
+ override the one packaged with the JDK:</p>
<ul>
<li>For the SUN JDK 1.4, use the
- <resource-ref idref='endorsed' />. Place the xalan.jar,
xercesImpl.jar, and xml-apis.jar in the
+ <resource-ref idref='endorsed' />. Place the xalan.jar,
xercesImpl.jar, and xml-apis.jar
+ in the
<java-home>\lib\endorsed directory, where
<java-home> is where the runtime software is installed.
</li>
- <li>Use the -Xbootclasspath java commandline option to prepend the
new xalan.jar, xercesImpl.jar, and xml-apis.jar to the boot class path. When
running Xalan:
+ <li>Use the -Xbootclasspath java commandline option to prepend the
new xalan.jar,
+ xercesImpl.jar, and xml-apis.jar to the boot class path. When
running
+ &xslt4j;:
<br />
<br />
<code>java -Xbootclasspath/p:<path>
org.apache.xalan.xslt.Process</code>
<br />
- <br />where <path> is a colon seperated lists of the paths to
the files xalan.jar, xercesImpl.jar, and xml-apis.jar (e.g.
bin/xalan.jar:bin/xercesImpl.jar:bin/xml-apis.jar) containing the new-version
of Xalan-Java.
+ <br />where <path> is a colon seperated lists of the paths to
the files xalan.jar,
+ xercesImpl.jar, and xml-apis.jar (e.g.
bin/xalan.jar:bin/xercesImpl.jar:bin/xml-apis.jar)
+ containing the new-version of &xslt4j;.
</li>
</ul>
<p>The following methods
<em>do not work</em>:
</p>
<ul>
- <li>Using the CLASSPATH environment variable or using -classpath
to place the new classes in the classpath.</li>
+ <li>Using the CLASSPATH environment variable or using -classpath
to place the new classes
+ in the classpath.</li>
<li>Using the -jar option to explicitly execute the classes inside
the new jar files.</li>
</ul>
</a>
@@ -195,20 +221,21 @@
<faq title="Using the 'signature' file to verify a download">
<q>How do I use the "signature" file to verify my download?</q>
<a>
- <p>For each Xalan-Java download file in
+ <p>For each &xslt4j; download file in
<resource-ref idref='xslt4j-distdir' />, there is a corresponding
signature file.
The signature file for xalan-j_2_0_1.tar.gz, for example, is
xalan-j_2_0_1.tar.gz.sig.
</p>
<p>The .sig files are PGP signatures of the actual .zip or .tar.gz
- download files. You can use these files to verify the authenticiy
of the download. You do not need the .sig file to
- use the corresponding donwload file.</p>
- <p>To check the authenticity of a Xalan-Java distribution, you need
a copy of
+ download files. You can use these files to verify the authenticiy
of the download. You do not
+ need the .sig file to use the corresponding donwload file.</p>
+ <p>To check the authenticity of a &xslt4j; distribution, you need a
copy of
PGP which is available in a number of licenses, including some free
non-commercial licenses, either from an mit.edu site or on
the pgp.com site. Once you have a version of PGP installed, you
- should be able to 'verify the signature' of the .sig file, which
basically verifies that the corresponding
- .zip or tar.gz file has not been changed since we signed it.</p>
- <p>The PGP key can be found in <jump
href='http://cvs.apache.org/viewcvs.cgi/xml-xalan/java/KEYS'>CVS.</jump></p>
+ should be able to 'verify the signature' of the .sig file, which
basically verifies that the
+ corresponding .zip or tar.gz file has not been changed since we
signed it.</p>
+ <p>The PGP key can be found in
+ <jump
href='http://cvs.apache.org/viewcvs.cgi/xml-xalan/java/KEYS'>CVS.</jump></p>
</a>
</faq>
</group>
@@ -216,11 +243,12 @@
<faq title='Speeding up transformations'>
<q>What can I do to speed up transformations?</q>
<a>
- <p>In the ongoing development of Xalan-Java, enhancing performance
is the primary goal of the Xalan-Java team.
- Here are some preliminary suggestions for you to keep in mind as you set
up your applications:</p>
+ <p>In the ongoing development of &xslt4j;, enhancing performance is
+ the primary goal of the &xslt4j; team. Here are some preliminary
+ suggestions for you to keep in mind as you set up your
applications:</p>
<ul>
- <li>Use a Templates object (with a different Transformers for each
transformation) to perform multiple transformations with the same
- set of stylesheet instructions (see
+ <li>Use a Templates object (with a different Transformers for each
transformation) to
+ perform multiple transformations with the same set of
stylesheet instructions (see
<link anchor='multithreading'
idref='usagepatterns'>Multithreading</link>).
<br />
<br />
@@ -268,7 +296,8 @@
<br />
</li>
</ul>
- <li>For the ultimate in server-side scalability, perform transform
operations on the client. For examples, see
+ <li>For the ultimate in server-side scalability, perform transform
operations on the client.
+ For examples, see
<link anchor='appletxmltohtml'
idref='samples'>appletXMLtoHTML</link> and
<link anchor='get-todo-list'
idref='samples'>get-todo-list</link>.
</li>
@@ -280,7 +309,7 @@
<a>
<p>JAXP uses an ordered lookup procedure to find factory
implementations, such as
an implementation of javax.xml.transform.TransformerFactory. For
information
- on this procedure, refer to Section 3 Plugability in <resource-ref
idref='jaxp11'/>.
+ on this procedure, refer to Section 3 Plugability in <resource-ref
idref='jaxp12'/>.
</p>
<p>In most cases, Factory classes need only be looked up once for an
application, so
performance is not an issue. However, there may be scenarios
where the lookup
@@ -295,12 +324,12 @@
<faq title='Retrieving nodes in the default namespace'>
<q>XPath isn't retrieving nodes that are in the default namespace I
defined. How do I get them?</q>
<a>
- <p>If you are looking for nodes in a namespace, the XPath expression
must include a namespace prefix that you have mapped to the
- namespace with an xmlns declaration. If you have declared a default
namespace, it does not have a prefix (see
- <jump href='http://www.w3.org/TR/xpath.html#node-tests'>XPath Node
Tests</jump>). In order to construct XPath expressions
- to retrieve nodes from this namespace, you must add a namespace
declaration that provides a prefix you can include in the XPath
- expressions.
- </p>
+ <p>If you are looking for nodes in a namespace, the XPath expression
must include a namespace
+ prefix that you have mapped to the namespace with an xmlns
declaration. If you have declared
+ a default namespace, it does not have a prefix (see
+ <jump href='http://www.w3.org/TR/xpath.html#node-tests'>XPath
Node Tests</jump>). In order
+ to construct XPath expressions to retrieve nodes from this
namespace, you must add a
+ namespace declaration that provides a prefix you can include in
the XPath expressions.</p>
<p>Suppose, for example, you you want to locate nodes in a default
namespace declared as follows:
<br />
<code>xmlns="http://my-namespace"</code>
@@ -319,15 +348,16 @@
</q>
<a>
<p><anchor name='namespace-aware' /></p>
- <p>If you use a TransformerFactory to process a stylesheet Source
and generate a Transformer, the
- TransformerFactory instructs the SAXParserFactory to set the parser's
namespaceAware property to true.
- But if you call the parser directly, you may need to set the
namespaceAware property yourself. For
- example:</p>
+ <p>If you use a TransformerFactory to process a stylesheet Source
and generate a Transformer,
+ the TransformerFactory instructs the SAXParserFactory to set the
parser's namespaceAware
+ property to true. But if you call the parser directly, you may
need to set the namespaceAware
+ property yourself. for example:</p>
<source>javax.xml.parsers.SAXParserFactory spFactory =
javax.xml.parsers.SAXParserFactory.newInstance();
spFactory.setNamespaceAware(true);</source>
- <note>For more information about setting the namespaceAware
property, and SAX2 vs. JAXP default settings, see
- <jump
href='http://xml.apache.org/~edwingo/jaxp-faq.html#nsDefaults'>JAXP FAQ:
Warning about namespace processing defaults</jump>.
+ <note>For more information about setting the namespaceAware
property, and SAX2 vs. JAXP default
+ settings, see <jump
href='http://xml.apache.org/~edwingo/jaxp-faq.html#nsDefaults'>JAXP FAQ:
+ Warning about namespace processing defaults</jump>.
</note>
</a>
</faq>
@@ -337,20 +367,23 @@
<q>I'm getting a NoClassDefFound error. What has to be on the
classpath?</q>
<a>
<ol>
- <li>xalan.jar, xml-apis.jar, and xercesImpl.jar -- or the XML
parser you are using -- must always be on the classpath.
+ <li>xalan.jar, xml-apis.jar, and xercesImpl.jar -- or the XML
parser you are using -- must
+ always be on the classpath.
<br />
<br />
</li>
- <li>To run the samples in the samples subdirectories,
xalansamples.jar must be on the classpath. To run the servlet (in
- samples/servlet), xalanservlet.jar must be on the classpath along with
the javax.servlet and javax.servlet.http packages. Sun distributes
- the javax.servlet packages in the JSWDK servlet.jar file.
+ <li>To run the samples in the samples subdirectories,
xalansamples.jar must be on the
+ classpath. To run the servlet (in samples/servlet),
xalanservlet.jar must be on the
+ classpath along with the javax.servlet and javax.servlet.http
packages. Sun distributes
+ the javax.servlet packages in the JSWDK servlet.jar file.
<br />
<br />
</li>
- <li>To run extensions which use the component and script extension
elements (including the samples in samples/extensions), bsf.jar must be on the
- classpath. To run extensions implemented in JavaScript, js.jar must also
be on the classpath. For information on what
- you need to run extensions implemented in other scripting languages, see
- <link anchor='supported-lang' idref='extensions'>Supported
languages</link>.
+ <li>To run extensions which use the component and script extension
elements (including the
+ samples in samples/extensions), bsf.jar must be on the
classpath. To run extensions
+ implemented in JavaScript, js.jar must also be on the
classpath. For information on what
+ you need to run extensions implemented in other scripting
languages, see
+ <link anchor='supported-lang' idref='extensions'>Supported
languages</link>.
</li>
</ol>
You can check the correctness of your environment with the
@@ -363,13 +396,17 @@
<faq title='a "DOM006 Hierarchy request error"'>
<q>Why do I get a "DOM006 Hierarchy request error" when I try to
transform into a DOM Document node?</q>
<a>
- <p>This error occurs when Xalan-Java tries to add a Node to a
Document node where it isn't allowed. For example, attempting to add
non-whitespace
- text to the DOM Document node produces this error.</p>
- <p>The error can also occur when a Document node is created with the
DOMImplementation createDocument() method, which takes a qualified name
- as an argument and creates an element node. If you then pass the
returned Document node to Xalan-Java, you get a "DOM006 Hierarchy request
- error" when Xalan-Java tries to add a second element to the Document
node. The solution is to either use the DocumentBuilder newDocument() method
- to create a Document that does not contain an element node, or use a
DocumentFragment. It should be noted that the
- DocumentBuilder newDocument() method is "Non-preferred" according to the
JAXP 1.1 documentation.</p>
+ <p>This error occurs when &xslt4j; tries to add a Node to a Document
node
+ where it isn't allowed. For example, attempting to add
non-whitespace text to the DOM Document
+ node produces this error.</p>
+ <p>The error can also occur when a Document node is created with the
DOMImplementation
+ createDocument() method, which takes a qualified name as an
argument and creates an element
+ node. If you then pass the returned Document node to &xslt4j;,
you
+ get a "DOM006 Hierarchy request error" when &xslt4j; tries to add
a
+ second element to the Document node. The solution is to either
use the DocumentBuilder
+ newDocument() method to create a Document that does not contain
an element node, or use a
+ DocumentFragment. It should be noted that the DocumentBuilder
newDocument() method is
+ "Non-preferred" according to the JAXP 1.2 documentation.</p>
</a>
</faq>
<faq title='Namespace not supported by SAXParser'>
@@ -377,26 +414,26 @@
<a>
<p>We have seen this probem arise for two quite different
reasons:</p>
<ul>
- <li>SAX1 interfaces are on your classpath in front of the SAX2
interfaces provided with your XML
- parser.
+ <li>SAX1 interfaces are on your classpath in front of the SAX2
interfaces provided with
+ your XML parser.
<br />
<br />
or
<br />
<br />
</li>
- <li>The parser you are using to process a stylesheet Source and
generate a Transformer does not have the
- namespaceAware property set to true.</li>
+ <li>The parser you are using to process a stylesheet Source and
generate a Transformer does
+ not have the namespaceAware property set to true.</li>
</ul>
<p>
<em>SAX1 on the classpath</em>
</p>
- <p>SAX1 should not be on your classpath. The SAX1 interfaces and
implementations of the SAX1 SAXPparser
- are not namespace aware.</p>
+ <p>SAX1 should not be on your classpath. The SAX1 interfaces and
implementations of the SAX1
+ SAXPparser are not namespace aware.</p>
<p>To help diagnose your classpath, you can use the
<link anchor='environmentcheck'>EnvironmentCheck
utility</link>. If you are running under JDK 1.3, see
- <link anchor='jdk13'>Issues running Xalan-Java on JDK
+ <link anchor='jdk13'>Issues running &xslt4j; on JDK
1.3</link>. If you are running a servlet, make sure the servlet engine is
not placing SAX1 on the
classpath.
</p>
@@ -410,32 +447,47 @@
<a>
<p>There are two common causes for this error.</p>
<ol>
- <li>Using the wrong URI for the xsl: prefix will cause this
message. URIs, and namespace URIs in particular, are case sensitive. Ensure the
URI for the xsl namespace is "http://www.w3.org/1999/XSL/Transform".</li>
- <li>The parser you are using to process a stylesheet Source and
generate a Transformer does not have the namespaceAware property set to
true.<br/>
+ <li>Using the wrong URI for the xsl: prefix will cause this
message. URIs, and namespace
+ URIs in particular, are case sensitive. Ensure the URI for the
xsl namespace is
+ "http://www.w3.org/1999/XSL/Transform".</li>
+ <li>The parser you are using to process a stylesheet Source and
generate a Transformer
+ does not have the namespaceAware property set to true.<br/>
When you create a Transformer, you must use a <link
anchor='namespace-aware'>namespace-aware</link> parser to parse the
stylesheet.</li>
</ol>
</a>
</faq>
<faq title='StackOverflowError with recursive stylesheet'>
- <q>Xalan-Java dies with a java.lang.StackOverflowError when I run a
deeply recursive stylesheet. The same stylesheet worked fine in the past (or on
other machines). What's happening?</q>
- <a>
- <p>That may not be our fault. As of JDK 1.3.x, many Java Virtual
Machine publishers reduced the default size of a thread's call stack from 1MB
to 256KB. This allows more threads to run simultaneously, but it means that
each thread is more limited in how deeply its function calls can be nested.</p>
- <p>Some JVMs may offer an option that allows you to raise this limit.
For example, in Sun JDK 1.3.1 you can start JVM with the -Xss1m option to allow
each thread to use a full megabyte. In IBM's JDK you can start with the -Xss1m
and -Xoss1m options. Other JVMs may set this in other ways, or may not allow
you to control it at all; check the documentation on your system for
details.</p>
- <p>Note too that on some platforms 1MB is an architectural upper
limit on the stack size, so setting -Xss2m (or equivalent) may not allow deeper
recusion than -Xss1m.</p>
+ <q>&xslt4j; dies with a java.lang.StackOverflowError when I run a
deeply
+ recursive stylesheet. The same stylesheet worked fine in the past
(or on other machines).
+ What's happening?</q>
+ <a>
+ <p>That may not be our fault. As of JDK 1.3.x, many Java Virtual
Machine publishers reduced
+ the default size of a thread's call stack from 1MB to 256KB. This
allows more threads to
+ run simultaneously, but it means that each thread is more limited
in how deeply its function
+ calls can be nested.</p>
+ <p>Some JVMs may offer an option that allows you to raise this limit.
For example, in Sun
+ JDK 1.3.1 you can start JVM with the -Xss1m option to allow each
thread to use a full
+ megabyte. In IBM's JDK you can start with the -Xss1m and -Xoss1m
options. Other JVMs
+ may set this in other ways, or may not allow you to control it at
all; check the
+ documentation on your system for details.</p>
+ <p>Note too that on some platforms 1MB is an architectural upper
limit on the stack size, so
+ setting -Xss2m (or equivalent) may not allow deeper recusion than
-Xss1m.</p>
</a>
</faq>
<faq title='OutOfMemoryError processing multiple documents'>
- <q>I get a java.lang.OutOfMemoryError when I try to process multiple
documents with the document() function. What can I do?</q>
+ <q>I get a java.lang.OutOfMemoryError when I try to process multiple
documents with the
+ document() function. What can I do?</q>
<a>
- <p>As a general rule, Xalan-Java currently caches all of the
documents that you read in with the document() function during a
transformation.</p>
- <p>If your objective is to transform a series of documents, you can
break the process into a series of transformations.
-The
- <link anchor='pipedocument'
idref='extensionslib'>PipeDocument</link> extension element provides one
strategy for batching a
-series of parallel transformations.
- </p>
- <p>Another alternative is to place your document() call in the
select attribute of an xsl:for-each instruction element
-and use a custom PI (Processing Instruction) to turn off document caching.
Include an XPath expression in your document() call if you do not
-need to process the entire document.</p>
+ <p>As a general rule, &xslt4j; currently caches all of the documents
+ that you read in with the document() function during a
transformation.</p>
+ <p>If your objective is to transform a series of documents, you can
break the process into a
+ series of transformations. The
+ <link anchor='pipedocument'
idref='extensionslib'>PipeDocument</link> extension element
+ provides one strategy for batching a series of parallel
transformations.</p>
+ <p>Another alternative is to place your document() call in the
select attribute of an
+ xsl:for-each instruction element and use a custom PI (Processing
Instruction) to turn off
+ document caching. Include an XPath expression in your document()
call if you do not
+ need to process the entire document.</p>
<p>Sample stylesheet fragment:</p>
<source>
<xsl:template match="doc">
@@ -444,13 +496,16 @@
<!-- process each document -->
<xsl:for-each>
</xsl:template></source>
- <note>PIs do not ordinarily uses namespaces, so "xalan:" is a 'fake'
namespace we have included to indicate that this is not a standard PI.</note>
+ <note>PIs do not ordinarily uses namespaces, so "xalan:" is a 'fake'
namespace we have
+ included to indicate that this is not a standard PI.</note>
<p>If you include an XPath expression in your document() call, you
can also turn on
- <link anchor='incremental' idref='dtm'>incremental transform</link>
-to eliminate the need to read in the entire document. In fact, you can take
advantage of the incremental transform feature even if you are not turning
-off document caching.
- </p>
- <p>You can also increase your jvm heap size with the -Xmx or -mx
flag, depending on which JVM you are using (you can include both flags, and the
JVM will ignore the one it doesn't understand). For example, to give your JVM
64 meg, try
+ <link anchor='incremental' idref='dtm'>incremental
transform</link> to eliminate the need
+ to read in the entire document. In fact, you can take advantage of
the incremental transform
+ feature even if you are not turning off document caching.
+ </p>
+ <p>You can also increase your jvm heap size with the -Xmx or -mx
flag, depending on which JVM
+ you are using (you can include both flags, and the JVM will
ignore the one it doesn't
+ understand). For example, to give your JVM 64 meg, try
<br />
<code> java -Xmx64m -mx64m
<ref>Class</ref>
@@ -461,7 +516,9 @@
<faq title="File Not Found error">
<q>Why do I get 'file not found' when I pass c:\path\filename.txt?</q>
<a>
- <p>Xalan often requires legal URLs as system identifiers, not local
pathnames (this is partly due to underlying parsers requiring this). A simple
(but not always correct!) way to change a local pathname into a URL in Java
1.1x is:</p>
+ <p>&xslt4j; often requires legal URLs as system identifiers, not
local
+ pathnames (this is partly due to underlying parsers requiring
this). A simple (but not always
+ correct!) way to change a local pathname into a URL in Java 1.1x
is:</p>
<source>
public static String filenameToURL(String filename)
{
@@ -480,13 +537,16 @@
</a>
</faq>
<faq title="No more DTM IDs are available">
- <q>What does: "XSLT Error (javax.xml.transform.TransformerException):
org.apache.xml.dtm.DTMException: No more DTM IDs are available" mean?</q>
+ <q>What does: "XSLT Error (javax.xml.transform.TransformerException):
+ org.apache.xml.dtm.DTMException: No more DTM IDs are available"
mean?</q>
<a>
- <p>It means you are probably using a very old version of Xalan,
likely the version 2.2D11 which
- was packaged in JDK1.4. Architectural changes made in early
2002 should have eliminated this issue
- for almost all cases.</p>
- <p>You should verify the version of Xalan you are using by running
the <link anchor='environmentcheck'>EnvironmentCheck</link> utility,
- and read the FAQ about <link anchor='jdk14'>Issues running
Xalan-Java on JDK 1.4</link>.</p>
+ <p>It means you are probably using a very old version of Xalan or
&xslt4j;,
+ likely the version 2.2D11 which was packaged in JDK1.4.
Architectural changes made in
+ early 2002 should have eliminated this issue for almost all
cases.</p>
+ <p>You should verify the version of &xslt4j; you are using by
running
+ the <link anchor='environmentcheck'>EnvironmentCheck</link>
utility,
+ and read the FAQ about <link anchor='jdk14'>Issues running
&xslt4j;
+ on JDK 1.4</link>.</p>
</a>
</faq>
</group>
@@ -494,50 +554,53 @@
<faq title='Chaining transformations'>
<q>How do you chain together a series of transformations?"</q>
<a>
- <p>Xalan-Java supports two strategies for chaining together a series
of transformations such that the output of each
- transformation provides input for the next transformation.</p>
+ <p>&xslt4j; supports two strategies for chaining together a series
of
+ transformations such that the output of each transformation
provides input for the next
+ transformation.</p>
<ul>
- <li>For each transformation in the series, you can set one SAX
ContentHandler to process the input, and another ContenHandler to process
- the output.
+ <li>For each transformation in the series, you can set one SAX
ContentHandler to process
+ the input, and another ContenHandler to process the output.
<br />
<br />
</li>
- <li>You can also set up a series of parent-child relationships
between an XMLReader and one or more XMLFilters.</li>
+ <li>You can also set up a series of parent-child relationships
between an XMLReader and
+ one or more XMLFilters.</li>
</ul>
<p>For the details and links to examples, see
<link anchor='outasin' idref='usagepatterns'>Using transformation
output as input for
- another transformation</link>.
- </p>
+ another transformation</link>.</p>
</a>
</faq>
<faq title='Stylesheet validation'>
<q>How do I validate an XSL stylesheet?</q>
<a>
- <p>An XSL stylesheet is an XML document, so it can have a DOCTYPE
and be subject to validation, right?</p>
+ <p>An XSL stylesheet is an XML document, so it can have a DOCTYPE
and be subject to
+ validation, right?</p>
<p>The XSLT Recommendation includes a
<jump href='http://www.w3.org/TR/xslt#dtd'>DTD Fragment
- for XSL Stylesheets</jump> with some indications of what you need to
do to create a complete DTD for a given
- stylesheet. Keep in mind that stylesheets can include literal result
elements and produce output that is not valid
- XML.
- </p>
- <p>You can use the xsl:stylesheet doctype defined in xsl-html40s.dtd
for stylesheets that generate HTML.</p>
+ for XSL Stylesheets</jump> with some indications of what you need
to do to create a
+ complete DTD for a given stylesheet. Keep in mind that stylesheets
can include literal
+ result elements and produce output that is not valid XML.</p>
+ <p>You can use the xsl:stylesheet doctype defined in xsl-html40s.dtd
for stylesheets that
+ generate HTML.</p>
</a>
</faq>
<faq title='Setting output encoding'>
<q>Why is the output character encoding I set in the stylesheet not
being used?</q>
<a>
<p>If you use a character output stream to instantiate the
- <jump
href='apidocs/javax/xml/transform/stream/StreamResult.html'>StreamResult</jump>
object which holds the
- transformation output, the Writer uses its own encoding, not the
encoding you specify
- in the stylesheet.
- </p>
- <p>If you want to use the stylesheet output encoding, do not use
StreamResult(java.io.Writer) to
- instantiate the holder for the output. Alternatively, you can specify
the encoding when you create a Writer
- (java.io.OutputStreamWriter). Once the Writer exists, you cannot change
its encoding.</p>
+ <jump
href='apidocs/javax/xml/transform/stream/StreamResult.html'>StreamResult</jump>
object
+ which holds the transformation output, the Writer uses its own
encoding, not the encoding
+ you specify in the stylesheet.</p>
+ <p>If you want to use the stylesheet output encoding, do not use
StreamResult(java.io.Writer)
+ to instantiate the holder for the output. Alternatively, you can
specify the encoding when
+ you create a Writer (java.io.OutputStreamWriter). Once the Writer
exists, you cannot change
+ its encoding.</p>
</a>
</faq>
<faq title='Getting line and column numbers for errors in XML input
documents and XSL stylesheets'>
- <q>How do I get line numbers for errors in the XML or XSL input when I
am performing a transformation?</q>
+ <q>How do I get line numbers for errors in the XML or XSL input when I
am performing a
+ transformation?</q>
<a>
<p>Use or mimic the command-line processor (
<jump
href='apidocs/org/apache/xalan/xslt/Process.html'>org.apache.xalan.xslt.Process</jump>).
@@ -547,8 +610,10 @@
<jump
href='apidocs/org/apache/xml/utils/DefaultErrorHandler.html'>org.apache.xml.utils.DefaultErrorHandler</jump>
printLocation() method to chase down the exception cause and get a
<jump
href='apidocs/javax/xml/transform/SourceLocator.html'>SourceLocator</jump>that
can usually report line and column number.
</p>
- <p>Suppose you wanted to modify the ValidateXMLInput sample in the
samples/Validate subdirectory to include line and column numbers . All you
-need to do is call DefaultErrorHandler.printLocation() in the the Handler
internal class error() and warning() methods. For example, replace</p>
+ <p>Suppose you wanted to modify the ValidateXMLInput sample in the
samples/Validate
+ subdirectory to include line and column numbers . All you need to
do is call
+ DefaultErrorHandler.printLocation() in the the Handler internal
class error() and warning()
+ methods. For example, replace</p>
<source>public void error (SAXParseException spe)
throws SAXException
{
@@ -562,7 +627,9 @@
org.apache.xml.utils.DefaultErrorHandler.printLocation(pw, spe);
pw.println("SAXParseException error: " + spe.getMessage());
}</source>
- <p>You can also replicate code from the printLocation() method to
obtain a SourceLocator, and then use the SourceLocator getLineNumber() and
getColumnNumber() methods. The getRootSourceLocator() method below returns a
SourceLocator.</p>
+ <p>You can also replicate code from the printLocation() method to
obtain a SourceLocator, and
+ then use the SourceLocator getLineNumber() and getColumnNumber()
methods. The
+ getRootSourceLocator() method below returns a SourceLocator.</p>
<source>
import javax.xml.transform.SourceLocator;
import javax.xml.transform.TransformerException;
@@ -604,22 +671,39 @@
return locator;
}</source>
<note>
- <em>Xalan-Java exception handling:</em> The exception
architecture in Xalan-Java and with transforms in general is tricky because of
multiple layers of exception handling, involving movement back and forth
between SAX and Transformer exceptions and across pipes. Xalan-Java often uses
a WrappedRuntimeException to throw over many layers of checked exceptions, in
order not to have every possible checked exception be declared for every
function in the stack, which means it has to catch this exception at the upper
levels and unwrap the exception to pass it on as a TransformerException.
+ <em>&xslt4j; exception handling:</em> The exception architecture
+ in &xslt4j; and with transforms in general is tricky because of
+ multiple layers of exception handling, involving movement back and
forth between SAX and
+ Transformer exceptions and across pipes. &xslt4j; often uses a
+ WrappedRuntimeException to throw over many layers of checked
exceptions, in order not to
+ have every possible checked exception be declared for every
function in the stack, which
+ means it has to catch this exception at the upper levels and
unwrap the exception to pass
+ it on as a TransformerException.
<br />
- <br />A JAXP 1.1 TransformerException often wraps another
exception. Two of the TransformerException structures that are frequently used
to construct contained exceptions in JAXP 1.1 do not set the locator. The
locator is not set because we don't know the type of exception that the
Throwable argument represents. The solution is to chase up the contained
exceptions to find the root cause, which will usually have a location set for
you. This can be somewhat tricky, as not all the exceptions may be
TransformerExceptions. A good sample is in the DefaultHandler static
printLocation() method, which the Xalan-Java command-line processor uses to
report errors. You can also roll your own functions along the lines of the
getRootSourceLocator() example above.
+ <br />A JAXP 1.2 TransformerException often wraps another
exception. Two of the
+ TransformerException structures that are frequently used to
construct contained exceptions
+ in JAXP 1.2 do not set the locator. The locator is not set
because we don't know the type
+ of exception that the Throwable argument represents. The solution
is to chase up the
+ contained exceptions to find the root cause, which will usually
have a location set for
+ you. This can be somewhat tricky, as not all the exceptions may
be TransformerExceptions.
+ A good sample is in the DefaultHandler static printLocation()
method, which the
+ &xslt4j; command-line processor uses to report errors. You can
also
+ roll your own functions along the lines of the
getRootSourceLocator() example above.
</note>
</a>
</faq>
<faq title='Servlet unable to find classes for extension
functions/elements'>
<q>My servlet cannot find classes that implement extension functions
or elements. What can I do?</q>
<a>
- <p>If you install xalan.jar in the servlet engine's lib directory
(e.g., tomcat/lib), as opposed to the servlet's
- lib directory, then the Xalan-Java classes are loaded by a classloader
that does not see the classes in the servlet's
- classloader (i.e., the extension classes, if you placed them there). The
Xalan-Java classes try to load the extension
- classes using their own classloader, and that attempt fails.</p>
- <p>Workaround: place xalan.jar in the servlet's lib directory and
NOT in the servlet engine's lib directory.
- Another workaround is to place the extension classes also in the servlet
engine's lib directory, but you
- generally want to avoid cluttering that directory.</p>
+ <p>If you install xalan.jar in the servlet engine's lib directory
(e.g., tomcat/lib), as
+ opposed to the servlet's lib directory, then the &xslt4j; classes
+ are loaded by a classloader that does not see the classes in the
servlet's classloader
+ (i.e., the extension classes, if you placed them there). The
&xslt4j;
+ classes try to load the extension classes using their own
classloader, and that attempt
+ fails.</p>
+ <p>Workaround: place xalan.jar in the servlet's lib directory and
NOT in the servlet engine's
+ lib directory. Another workaround is to place the extension
classes also in the servlet
+ engine's lib directory, but you generally want to avoid
cluttering that directory.</p>
<p>Thanks to Gunnlauger Thor Briem ([EMAIL PROTECTED]) for providing
this information.</p>
</a>
</faq>
1.8 +86 -11 xml-xalan/java/xdocs/sources/xalan/xsltc_history.xml
Index: xsltc_history.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/xsltc_history.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- xsltc_history.xml 27 Jan 2003 18:45:36 -0000 1.7
+++ xsltc_history.xml 21 Feb 2003 20:10:07 -0000 1.8
@@ -58,6 +58,88 @@
-->
<s1 title="XSLTC software changes">
<p>The following sections list <link idref="xsltc_usage">XSLTC</link>
changes back to the incorporation of XSLTC into &xslt4j;.</p>
+<s2 title="Changes for &xslt4j; 2.5.D1">
+<p>XSLTC source code updates:</p><ul><li><ref>Committed by </ref>[EMAIL
PROTECTED]<ref> on </ref>2002/11/04<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java
Util.java<br/><ref>Committer's log entry: </ref>
+bug 14148 fixed, Morris Kwan patch
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/04<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/dom
MultiDOM.java<br/><ref>Committer's log entry: </ref>
+Fixed problem in AxisIterator.isReverse(). This patch fixes Bugzilla
+14112.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/07<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java
StreamOutput.java<br/><ref>Committer's log entry: </ref>
+Fix for Bugzilla 14229.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/18<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/runtime
SAXAdapter.java<br/><ref>Committer's log entry: </ref>
+Forward namespace() event as startPrefixMapping() to the DOM builder. TODO:
+additional logic is needed to emit the endPrefixMapping() event. This patch
+fixes namespace141.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/26<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java Sort.java
xml-xalan/java/src/org/apache/xalan/xsltc/dom
NodeSortRecord.java<br/><ref>Committer's log entry: </ref>
+
+Changed the NodeSortRecord class to hold non-static references to
+instances of java.text.Collator and java.util.Locale. Updated the
+bytecode generation for NodeSortRecord subclasses to access the new
+variables correctly. When a stylesheet specifies a different language
+in xsl:sort, the protected references in NodeSortRecord will be
+updated by the subclass' constructor.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/03<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/runtime DefaultSAXOutputHandler.java
TextOutput.java<br/><ref>Committer's log entry: </ref>
+ Added deprecation comments for DefaultSAXOutputHandler and TextOutput.
+ The class xsltc.runtime.output.TransletOutputHandlerFactory
+ should be used instead. See xsltc.cmdline.Transform for an example.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/04<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc CollatorFactory.java
xml-xalan/java/src/org/apache/xalan/xsltc/dom CollatorFactoryBase.java
NodeSortRecord.java NodeSortRecordFactory.java<br/><ref>Committer's log entry:
</ref>
+Patch provided by W. Eliot Kimber to support user-defined collators. A
+class implementing the org.apache.xalan.xsltc.CollatorFactory interface
+can be specified from the command line by setting the property:
+
+ org.apache.xalan.xsltc.COLLATOR_FACTORY
+
+The class org.apache.xalan.xsltc.dom.CollatorFactoryBase will be used
+by default.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/05<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br/><ref>Committer's
log entry: </ref>
+ Patch for Bugzilla 15094. Fixed method to compute limit in a Descendant
+iterator; old method was (very) buggy.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/17<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Compile.java
xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java StepPattern.java
xpath.cup xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output
StreamHTMLOutput.java StreamOutput.java StreamTextOutput.java
StreamXMLOutput.java<br/><ref>Committer's log entry: </ref>
+Changes:
+ - Fixed matching problem reported by Ivelin Ivanov (Cocoon).
+ - Added support for namespaces when output is HTML.
+ - Set new version of XSLTC to be 1.4.0.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/11<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xsltc
xsltc_performance.xml<br/><ref>Committer's log entry: </ref>
+Fixing mispellings in xsltc_performance.xml (bugzilla 15591).
+Changes will appear when the site is re-generated.
+
+Mispellings originally reported by Rob Tougher ([EMAIL PROTECTED]).
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/24<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/compiler
FunctionCall.java<br/><ref>Committer's log entry: </ref>
+For Bugzilla 16386. Add rules for object type matching.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/03<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerImpl.java<br/><ref>Committer's log entry: </ref>
+Committing a patch contributed by Prakash Sridharan ([EMAIL PROTECTED]).
+Messages displayed using xsl:message are now reported to an ErrorListener
+registered in a Transformer instance. The warning() callback is used for
+this purpose.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/03<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
TransformerFactoryImpl.java TransformerImpl.java<br/><ref>Committer's log
entry: </ref>
+Add a new attribute "use-classpath" to the XSLTC Trax API.
+If this attribute is set, the Templates object is created from a translet
+which is loaded from the CLASSPATH. The translet name is either set by
+the "translet_name" attribute, or derived from the system ID, or the
+default name. In TemplatesImpl, we add a new constructor to support
+creating a TemplatesImpl from a Translet instance.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/05<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java
XSLTC.java<br/><ref>Committer's log entry: </ref>
+Committing patch for Bugzilla 10626 contributed by Arun Yadav
+([EMAIL PROTECTED]).
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/10<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/trax
TemplatesHandlerImpl.java<br/><ref>Committer's log entry: </ref>
+ Wrapped called to Stylesheet.translate() with class-level synchronization
+ block. This is needed since BCEL is not thread-safe. The bug was reported
+ by Michael Melhem (Cocoon).
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/11<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/compiler
GenerateIdCall.java<br/><ref>Committer's log entry: </ref>
+Applying patch for Bugzilla bug 16745 from Igor Hersht ([EMAIL PROTECTED]).
+The code generated for a reference to generate-id with no arguments used to
+default to the current node. XSLT requires it to default to the context
node.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/18<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerImpl.java<br/><ref>Committer's log entry: </ref>
+Patching Prakash's patch (of Feb.3, 2003). We can't assume that _translet
+is non-null when the call to setErrorListener is made. For example, we could
+have the lines of code:
+
+Transformer transformer = new Transformer();
+transformer.setErrorListener(myErrorListener);
+
+The original patch caused TCK failures.
+<br/><br/></li></ul>
+</s2>
<s2 title="Changes for &xslt4j; 2.4.1">
<p>XSLTC source code updates:</p><ul><li><ref>Committed by </ref>[EMAIL
PROTECTED]<ref> on </ref>2002/08/28<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerImpl.java<br/><ref>Committer's log entry: </ref>
Keep track of parameters for built-in identity transform (needed for
@@ -309,14 +391,6 @@
XPath's position() function from NodeIterator.getPosition() to
BasisLibrary.positionF(). This change simplifies the integration
between XSLTC and DTM.
-<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/10/22<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/dom
ForwardPositionIterator.java<br/><ref>Committer's log entry: </ref>
-Adding XSLTC_DTM version of file to branch.
-<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/10/22<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/dom
ForwardPositionIterator.java<br/><ref>Committer's log entry: </ref>
-Whoops! Checked in file on MAIN branch that was meant for XSLTC_DTM branch.
-<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/10/22<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/dom
ForwardPositionIterator.java<br/><ref>Committer's log entry: </ref>
-Adding DTM version of ForwardPositionIterator to XSLTC_DTM branch.
-<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/10/22<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/dom
ForwardPositionIterator.java<br/><ref>Committer's log entry: </ref>
-Aarrrgggghhhhh\!\! Checked in file on MAIN branch that was meant for
XSLTC_DTM branch, again\!
<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/10/25<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xsltc/dom
UnionIterator.java<br/><ref>Committer's log entry: </ref>
Fix for Bugzilla 13826. A problem in reset() was the cause of duplicate
nodes in the resulting nodeset.
@@ -795,8 +869,8 @@
empty strings and local paths in
xsl:include<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>04/16/2002<br/><ref>Modified:
</ref>java/src/org/apache/xalan/xsltc/compiler
Include.java<br/><ref>Committer's log entry: </ref>bug 7835, integrated patch
by Stefan Kost which
better handles empty strings and local paths in
xsl:include<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>04/16/2002<br/><ref>Modified:
</ref>java/src/org/apache/xalan/xsltc/compiler Tag:
jaxp-ri-1_2_0-fcs-branch DocumentCall.java<br/><ref>Committer's log entry:
</ref>Santiago: fixed type check error when 2nd arg (base-uri) is node instead
- of node-set.<br/><br/></li><li><ref>Committed by </ref>[EMAIL
PROTECTED]<ref> on </ref>04/17/2002<br/><ref>Modified:
</ref>java/src/org/apache/xalan/xsltc/compiler Tag: XSLTC_DTM
- Mode.java<br/><ref>Committer's log entry: </ref>get rid of debug
line<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>04/17/2002<br/><ref>Modified:
</ref>java/src/org/apache/xalan/xsltc/compiler Tag:
+ of node-set.<br/><br/></li>
+ <li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>04/17/2002<br/><ref>Modified:
</ref>java/src/org/apache/xalan/xsltc/compiler Tag:
jaxp-ri-1_2_0-fcs-branch FunctionCall.java
Parser.java Stylesheet.java SyntaxTreeNode.java
XSLTC.java xpath.cup<br/><ref>Committer's log entry: </ref>Added support
for extension function nodeset().<br/><br/></li><li><ref>Committed by
</ref>[EMAIL PROTECTED]<ref> on </ref>04/17/2002<br/><ref>Modified:
</ref>java/src/org/apache/xalan/xsltc/dom Tag:
@@ -807,7 +881,8 @@
java/src/org/apache/xalan/xsltc/compiler/util Tag:
jaxp-ri-1_2_0-fcs-branch ReferenceType.java
java/src/org/apache/xalan/xsltc/runtime Tag:
- jaxp-ri-1_2_0-fcs-branch BasisLibrary.java<br/><ref>Committer's log entry:
</ref>Fixed problem with extension function nodeset() and
parameters.<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>04/18/2002<br/><ref>Modified:
</ref>java/src/org/apache/xalan/xsltc/runtime Tag: XSLTC_DTM
+ jaxp-ri-1_2_0-fcs-branch BasisLibrary.java<br/><ref>Committer's log entry:
</ref>Fixed problem with extension function nodeset() and
parameters.<br/><br/></li>
+ <li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>04/18/2002<br/><ref>Modified:
</ref>java/src/org/apache/xalan/xsltc/runtime Tag: XSLTC_DTM
SAXAdapter.java<br/><ref>Committer's log entry: </ref>Pass in the local
name of the element<br/><br/></li><li><ref>Committed by </ref>[EMAIL
PROTECTED]<ref> on </ref>04/19/2002<br/><ref>Modified:
</ref>java/src/org/apache/xalan/xsltc/compiler Tag:
jaxp-ri-1_2_0-fcs-branch FunctionAvailableCall.java<br/><ref>Committer's
log entry: </ref>JAVA_EXT_PREFIX renamed to
JAVA_EXT_XSLTC<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref>
on </ref>04/22/2002<br/><ref>Modified:
</ref>java/src/org/apache/xalan/xsltc/compiler/util Tag:
jaxp-ri-1_2_0-fcs-branch MethodGenerator.java<br/><ref>Committer's log
entry: </ref>Fixed bug in addLocalVariable() when the slot allocator was
already
1.6 +1 -1 xml-xalan/java/xdocs/sources/xalan/builds.xml
Index: builds.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/builds.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- builds.xml 27 Jan 2003 18:45:36 -0000 1.5
+++ builds.xml 21 Feb 2003 20:10:07 -0000 1.6
@@ -213,7 +213,7 @@
features or major functionality changes are properly documented.</p>
<p>Update the commits list and the 'what was done' list in
xdocs/sources/xalan/readme.xml
and whatsnew.xml. Note that currently some of the status information for
the
-xsltc portion of &xslt4j; is stored separately in xsltc_history.xml and
XSLTCDONE
+&xslt4jc-short; portion of &xslt4j; is stored separately in
xsltc_history.xml and XSLTCDONE
</p>
<p>Check in all your work!</p>
1.32 +357 -0 xml-xalan/java/xdocs/sources/xalan/history.xml
Index: history.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/history.xml,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- history.xml 27 Jan 2003 18:45:36 -0000 1.31
+++ history.xml 21 Feb 2003 20:10:07 -0000 1.32
@@ -59,6 +59,363 @@
<s1 title="History of software changes">
<p>The following sections list the core software changes in each release
since &xslt4j; version 2.0.D01.</p>
&history2xsltc;
+<s2 title="Changes for &xslt4j; 2.5.D1">
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/01<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib ExsltDynamic.java
ExsltStrings.java<br/><ref>Committer's log entry: </ref>
+For Bugzilla 14157. Correct namespace prefixes in EXSLT javadoc.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/01<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/utils
SystemIDResolver.java<br/><ref>Committer's log entry: </ref>
+Rework the SystemIDResolver class for Bugzilla 13651 and 13977.
+
+The getAbsoluteURI interfaces have been rewritten so that they always
+return a good absolute URI for a systemId string, no matter it is a
+URI or a local filesystem path. The path is resolved to be absolute
+whenever possible. We also do conversions from space to "%20" and
+backslash to forward slash to ensure that the returned URI is a
+well-formed URI. The URI might not be in a normalized form because
+normalization takes extra cycles.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/01<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/utils URI.java<br/><ref>Committer's log
entry: </ref>
+For Bugzilla 13977. Return a good absolute URI when the urlstring
+is in the form of "file:abc.xsl".
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/01<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/processor
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>
+For Bugzilla 13651. Set the systemID to a good absolute URI for the
InputSource.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/01<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/serialize
SerializerToXML.java<br/><ref>Committer's log entry: </ref>
+Simplify the code for the new SystemIDResolver. One call to the
getAbsoluteURI
+interface should be enough.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/01<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/compiler
OpMapVector.java<br/><ref>Committer's log entry: </ref>
+Patch for bugzilla #14178 - Long XPath expressions. The token queue was
+growing properly, but the operations map was missing the last element when
+it grew.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/04<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/domapi
XPathNamespaceImpl.java<br/><ref>Committer's log entry: </ref>
+Update XPathNamespaceImpl to be consistent with spec for
+getLocalName, getPrefix, getNamespaceURI, getNodeName, getNodeValue
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/04<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources
xalan-jlocal.xml xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan
commandline_xsltc.xml commandline.xml extensions_xsltc.xml
extensionslib.xml<br/><ref>Committer's log entry: </ref>
+Added two new documents: Extensions for XSLTC and XSLTC options in the
+Process command line. Added the "XSLTC Exts" item to the main panel.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/04<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br/><ref>Committer's
log entry: </ref>
+For Bugzilla 14237. Fix problems in the hour-in-day extension function.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/05<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/compiler
OpMapVector.java<br/><ref>Committer's log entry: </ref>
+Use actual length of array in call to arraycopy.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/05<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/objects XNumber.java<br/><ref>Committer's
log entry: </ref>
+Applying Gordon Chiu's ([EMAIL PROTECTED]) patch for bugzilla #14241.
+Extra trailing 0 when calling XNumber.str().
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/05<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib ExsltDynamic.java<br/><ref>Committer's
log entry: </ref>
+Fix a problem in the max() function. Reuse the Document object to reduce
+memory usage.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/05<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan
commandline_xsltc.xml commandline.xml<br/><ref>Committer's log entry: </ref>
+xdocs update for XSLTC options in Process command line.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/06<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources
entities.ent xalan-jlocal.xml xalan-jsite.xml
xml-xalan/java/xdocs/sources/xalan readme.xml xsltc_constraints.xml
xsltc_usage.xml<br/><ref>Committer's log entry: </ref>
+XSLTC xdocs update.
+Remove xsltc_constraints.xml. Move the "known problem" and "smart transformer
+switch" sections into xsltc_usage.xml.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/07<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br/><ref>Committer's
log entry: </ref>
+For bugzilla 14324. Fix a few problems in datetime extension functions.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/07<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br/><ref>Committer's
log entry: </ref>
+For bugzilla 14322. Fix problem in condition checking in getZoneStart().
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/08<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/transformer ResultTreeHandler.java
xml-xalan/java/src/org/apache/xalan/templates ElemElement.java
ElemTemplateElement.java<br/><ref>Committer's log entry: </ref>
+Committing Gordon Chiu's ([EMAIL PROTECTED]) patches for
+namespace bugs #13774,13775,13414
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/11<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/utils
SystemIDResolver.java<br/><ref>Committer's log entry: </ref>
+Minor improvement to the getAbsoluteURIFromRelative() and getAbsoluteURI()
+interfaces. Reorganize the code to be more efficient. Return a slightly
+better result when the input string is an invalid URI.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/11<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeList.java<br/><ref>Committer's
log entry: </ref>
+For Bugzilla 14406. Make the interface getDTMIterator() public.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/11<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/objects XNodeSet.java<br/><ref>Committer's
log entry: </ref>
+For Bugzilla 14406. Handle the side-effect that creating a DTMNodeList
+will change the state of the iterator.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/12<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan
extensions_xsltc.xml<br/><ref>Committer's log entry: </ref>
+Fix problems in the XSLTC redirect sample. This sample was copied from
+xsltc_constraints.xml. It works with XSLTC, but not using a good syntax.
+It is better to change "xsl:version" to "version" and add a "extension-
+element-prefixes" attribute.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/13<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath
ExtensionsProvider.java<br/><ref>Committer's log entry: </ref>
+For bugzilla 14236. Add a new interface to pass the XPath
+extension function up to Xalan.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/13<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/functions
FuncExtFunction.java<br/><ref>Committer's log entry: </ref>
+For bugzilla 14236. Pass the XPath extension function object to the
+extension provider.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/13<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandler.java
ExtensionHandlerExsltFunction.java ExtensionHandlerGeneral.java
ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java
ExtensionsTable.java xml-xalan/java/src/org/apache/xalan/templates
ElemExsltFuncResult.java ElemExsltFunction.java
xml-xalan/java/src/org/apache/xalan/transformer
TransformerImpl.java<br/><ref>Committer's log entry: </ref>
+For bugzilla 14236 and 14244. Cleanup in the extension handling code to make
+EXSLT func:function and func:result work correctly.
+
+New interfaces are added in ExtensionProvider, ExtensionsTable and
+ExtensionHandler to pass the XPath extension function up to the extension
+handler. In the case of an EXSLT function, we need to find out the frame
+size of the caller template and use that to reset the frame bottom of
+the variable stack. This prevents the local variables in the callee
+from overwriting the variables in the caller. Also change the way to
+handle the return result of the function to fix the problem in 14244.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/13<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/axes PredicatedNodeTest.java
OneStepIterator.java<br/><ref>Committer's log entry: </ref>
+Committing Gordon Chiu's ([EMAIL PROTECTED]) patches for bugzilla #14365,
14368.
+Fixes for processing of last() function.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/22<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/processor
StylesheetHandler.java<br/><ref>Committer's log entry: </ref>
+In response to Simon Kitching's ([EMAIL PROTECTED]) bug report #14578,
moved synchronized
+block from init method to static initializer to avoid race conditions.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/22<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/serialize Encodings.java
Encodings.properties xml-xalan/java/samples/ApplyXPath ApplyXPath.java
xml-xalan/java/samples/ApplyXPathDOM ApplyXPathDOM.java
xml-xalan/java/samples/CompiledJAXP Transform.java xml-xalan/java/samples/trax
Examples.java xml-xalan/java/samples/UseStylesheetParam
UseStylesheetParam.java<br/><ref>Committer's log entry: </ref>
+Committing Gordon Chiu's ([EMAIL PROTECTED]) patch for encoding issues
+with serializer, samples and test harness. (Bugzilla #14753)
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/25<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java
Extensions.java<br/><ref>Committer's log entry: </ref>
+Fix possible thread contention issue by putting
+a lock on the Document object before using it.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/25<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/templates
OutputProperties.java<br/><ref>Committer's log entry: </ref>
+Commit Ramesh Mandava's ([EMAIL PROTECTED]) patch to allow xalan to read
+property files without opening upcontainer permissions when Xalan is used as
+part of a secure container, such as J2EE RI.
+
+The change makes use of the PrivilegedAction interface in JDK 1.2+. It was
+written with JDK 1.1.8 compatibility in mind so that it will do the same
+thing as before in JDK 1.1.8.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/27<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java<br/><ref>Committer's
log entry: </ref>
+Patch for bugzilla #14862. When NodeSequence wraps a mutable nodeset
+use the wrapped nodeset in getLength() method.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/11/27<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java
xml-xalan/java/src/org/apache/xpath/objects XNodeSet.java<br/><ref>Committer's
log entry: </ref>
+The is a better patch for bugzilla #14862 and more consistent with code in
xslt20 branch.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/03<br/><ref>Modified: </ref>
xml-xalan/java/samples/CompiledServlet CompileServlet.java
TransformServlet.java<br/><ref>Committer's log entry: </ref>
+Updated sample to use non-deprecated API.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/03<br/><ref>Modified: </ref>
xml-xalan/java/samples/CompiledApplet TransformApplet.java
xml-xalan/java/samples/CompiledBrazil TransformHandler.java
xml-xalan/java/samples/CompiledEJB TransformBean.java<br/><ref>Committer's log
entry: </ref>
+Updated samples to use non-deprecated API.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/04<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/processor
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>
+Performance fix
+Move the call to newTemplateHandler() to be after DOMSource processing.
+DOMSource creates another template handler in the processFromNode() method.
+The newTemplateHandler() call initializes the schema, which is expensive.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/04<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm
DOM2DTM.java<br/><ref>Committer's log entry: </ref>
+Performance fix
+Reuse the node name in the preceding statement.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/04<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/serialize
Encodings.java<br/><ref>Committer's log entry: </ref>
+Commit Gordon Chiu's ([EMAIL PROTECTED]) patch for performance improvement
+in the Encodings class. The convertJava2MimeEncoding() and getLastPrintable()
+methods can be called many times. The old code walks through a big array and
+do String comparison to find a match. A Hashtable is now used to speed up
+this processing.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/04<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/objects XBoolean.java<br/><ref>Committer's
log entry: </ref>
+For Bugzilla 15074. Return a java Boolean type object in object(),
+so that it can be recognized by extension functions.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/05<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/templates
ElemVariable.java<br/><ref>Committer's log entry: </ref>
+Commit the patch from Arun Yadav([EMAIL PROTECTED]) to fix Bugzilla 15089.
+Don't add the func:result element to the variable table because it does not
have
+a name.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/06<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/axes AxesWalker.java ChildTestIterator.java
MatchPatternIterator.java OneStepIterator.java
ReverseAxesWalker.java<br/><ref>Committer's log entry: </ref>
+Fix the memory leak problem in Bug 6075.
+In the detach() method, null out the fields in the iterators that will
+be reassigned a value upon the next usage. This change fixes the problem
+that the iterators in the IteratorPool can indirectly reference the
+TransformerImpl object.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/09<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/serialize
SerializerToXML.java<br/><ref>Committer's log entry: </ref>
+Patch for bugzilla 14965, with tweak from Art W ([EMAIL PROTECTED]).
+Handle empty comment case.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/10<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/templates
ElemForEach.java<br/><ref>Committer's log entry: </ref>
+Patch for bugzilla 15254.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/11<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeList.java<br/><ref>Committer's
log entry: </ref>
+Applying Arun Yadav's ([EMAIL PROTECTED]) patch for bugzilla #15218.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/11<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/dtm DTMIterator.java
xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeIterator.java
xml-xalan/java/src/org/apache/xpath NodeSetDTM.java<br/><ref>Committer's log
entry: </ref>
+Just tidying up the javadoc in the previousNode and nextNode methods
+and making sure we're testing against DTM.NULL instead of -1.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/17<br/><ref>Modified: </ref> xml-xalan/java/samples/trax
Examples.java<br/><ref>Committer's log entry: </ref>
+Fixing encodings issues with samples.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/17<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/dtm/ref
DTMDefaultBase.java<br/><ref>Committer's log entry: </ref>
+Migrating an improvement in memory usage from the XSLTC_DTM branch:
+
+Reduced the initial sizes of SuballocatedIntVectors used for m_dtmIdent and
+namespace management. In both cases default size SuballocatedIntVectors were
+being used, which entails a block size of 2048. For m_dtmIdent, that value
+would only overflow into a second block for a document with 2048*65536 nodes.
+Using a smaller size improves DTM build time for smaller documents, without
+penalizing most larger documents.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/17<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm
SAX2DTM.java<br/><ref>Committer's log entry: </ref>
+Patch for bugzilla 4858.
+Reduces SAX2DTM memory usage by dropping m_locator after parsing is
complete. Value of m_locator.getSystemId() is cached.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/20<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib/sql
SQLDocument.java<br/><ref>Committer's log entry: </ref>
+Fixed spelling mistake for DEFINITELYWRITABLE
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/20<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib/sql
DTMDocument.java<br/><ref>Committer's log entry: </ref>
+Fixed handling of Node text when an Element Node is selected
+Code provided by [EMAIL PROTECTED]
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/20<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib/sql
DefaultConnectionPool.java<br/><ref>Committer's log entry: </ref>
+Added in missing code for disable pool
+Code provided by [EMAIL PROTECTED]
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/20<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib/sql
DTMDocument.java<br/><ref>Committer's log entry: </ref>
+Fixed minor bug with for loop in getNodeData. Removed
+direct access to child node array
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/20<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib/sql
DefaultConnectionPool.java<br/><ref>Committer's log entry: </ref>
+Fixed createConnection method for JDK1.4
+Tested with 1.4.1
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/12/22<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/objects
XRTreeFragSelectWrapper.java<br/><ref>Committer's log entry: </ref>
+For Bugzilla 15373. Change the execute() method to always return a XString
+object. Also change the type to CLASS_STRING.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/09<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xpath/objects XNumber.java
XStringForFSB.java<br/><ref>Committer's log entry: </ref>
+Patch for bugzilla 14300.
+Corrected algorithm for converting strings to numbers as it was failing on
very large or very small numbers.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/10<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/processor ProcessorImport.java
ProcessorInclude.java StylesheetHandler.java XSLTAttributeDef.java
xml-xalan/java/src/org/apache/xalan/res XSLMessages.java
XSLTErrorResources_de.java XSLTErrorResources_en.java
XSLTErrorResources_es.java XSLTErrorResources.java XSLTErrorResources_fr.java
XSLTErrorResources_it.java XSLTErrorResources_ja.java
XSLTErrorResources_ko.java XSLTErrorResources_sv.java
XSLTErrorResources_zh_CN.java XSLTErrorResources_zh_TW.java
xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java
FuncDocument.java FuncFormatNumb.java
xml-xalan/java/src/org/apache/xalan/transformer MsgMgr.java
xml-xalan/java/src/org/apache/xml/utils UnImplNode.java
xml-xalan/java/src/org/apache/xml/utils/res XResourceBundleBase.java
XResources_de.java XResources_es.java XResources_fr.java XResources_it.java
XResources_ko.java XResources_sv.java XResources_zh_CN.java
XResources_zh_TW.java xml-xalan/java/src/org/apache/xpath Expression.java
XPath.java xml-xalan/java/src/org/apache/xpath/compiler Compiler.java
OpMap.java XPathParser.java xml-xalan/java/src/org/apache/xpath/objects
XObject.java xml-xalan/java/src/org/apache/xpath/res
XPATHErrorResources_de.java XPATHErrorResources_en.java
XPATHErrorResources_es.java XPATHErrorResources_fr.java
XPATHErrorResources_it.java XPATHErrorResources_ja.java
XPATHErrorResources_ko.java XPATHErrorResources_sv.java
XPATHErrorResources_zh_CN.java XPATHErrorResources_zh_TW.java
XPATHErrorResources.java<br/><ref>Committer's log entry: </ref>
+Changes from Ramesh Mandava ([EMAIL PROTECTED]) to move to using
+ListResourceBundles for Xalan-J Interpretive messages, along with localized
+versions of those messages.
+
+In addition, message keys are now meaningful strings, rather than numeric.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/10<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/templates
OutputProperties.java<br/><ref>Committer's log entry: </ref>
+Committing Gordon Chiu's patch for bugzilla #6157. Multiple xsl:output
+statements should now be merged correctly.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/11<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/templates
OutputProperties.java<br/><ref>Committer's log entry: </ref>
+Small cleanup regarding bugzilla 6157.
+Removed m_propertiesLevels field as it's no longer required.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/14<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/dtm DTMManager.java FactoryFinder.java
SecuritySupport.java SecuritySupport12.java<br/><ref>Committer's log entry:
</ref>
+Committing changes in response to bugzilla #12481.
+Before this commit, DTMManager.newInstance cached the found class
+in the cases where the class was identified in jaxp.properties or the class
path.
+There were some problems with this:
+
+1. It was not thread-safe because access to the static field foundFactory was
+ not synchronized.
+2. We weren't caching the class when we defaulted to the fallback class (this
+ was the original issue in the bug report.)
+3. We weren't using the AccessController class available in JDK1.2 to control
+ access to priviliged resources (eg. system properties, files).
+4. DTMManager would never be specified in jaxp.properties because it's
+ not part of the JAXP specification.
+5. We aren't using context class loaders.
+
+So, I have made the following changes:
+
+1. Taken the FactoryFinder, SecuritySupport and SecuritySupport12 classes
+from the JAXP subdirectories (in xml-commons) and used them as the basis
+for the lookup of the DTMManager class. This gives us the AccessController
+code.
+
+2. Removed the context class loader support and added a cache for
+ the found class (which gets used if the system property is not set.)
+ If we want context class loader support in the future (which we probably)
+ do, then we will need to revisit this to see if caching the class loader
and the
+ class would work.
+
+3. Synchronized access to the found class.
+
+4. Instead of looking in jaxp.properties, look in xalan.properties (a xalan
+ specific configuration file) which can be placed in
<$JAVA_HOME>/jre/lib.
+
+Possible issues:
+
+1. In general, using a cache means that the class will not change,
+ regardless of changes to xalan.properties or the class loader.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/22<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/res XMLErrorResources_de.java
XMLErrorResources_en.java XMLErrorResources_es.java XMLErrorResources_fr.java
XMLErrorResources_it.java XMLErrorResources_ja.java XMLErrorResources_ko.java
XMLErrorResources_sv.java XMLErrorResources_zh_CN.java
XMLErrorResources_zh_TW.java XMLErrorResources.java
XMLMessages.java<br/><ref>Committer's log entry: </ref>
+DTM Separation -- New message files
+Move the error messages used by DTM classes from Xalan and XPath
+down to org.apache.xml.res. Created XMLErrorResources files for
+all locales. The XMLMessages class is introduced to handle error
+resources at this level. If a DTM interface needs to issue an error
+message, it will use the new XMLMessages class rather than the
+XSLMessages class in org.apache.xalan.res.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/22<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/utils Constants.java DOM2Helper.java
DOMHelper.java DOMOrder.java ThreadControllerWrapper.java<br/><ref>Committer's
log entry: </ref>
+DTM Separation - new files in org.apache.xml.utils
+Move the classes DOMOrder, DOMHelper and DOM2Helper from XPath to xml.utils.
+Add a new Constants class to hold the constants used by XPath.
+The ThreadControllerWrapper class is a container for the nested class
+ThreadController which was originally in
org.apache.xalan.transformer.TransformerImpl.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/22<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/dtm DTMException.java DTMManager.java
xml-xalan/java/src/org/apache/xml/dtm/ref ChunkedIntArray.java
CoroutineManager.java DTMDefaultBase.java DTMDefaultBaseIterators.java
DTMDefaultBaseTraversers.java DTMManagerDefault.java
IncrementalSAXSource_Filter.java IncrementalSAXSource_Xerces.java
xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2RTFDTM.java
xml-xalan/java/src/org/apache/xml/utils AttList.java DefaultErrorHandler.java
DOMBuilder.java ListingErrorHandler.java ObjectPool.java
PrefixResolverDefault.java QName.java TreeWalker.java UnImplNode.java
URI.java<br/><ref>Committer's log entry: </ref>
+DTM Separation -- patches for files under org.apache.xml
+1. Replace all invocations of XSLMessages.createMessage() by
+XMLMessages.createXMLMessage().
+
+2. Replace XSLTErrorResources by XMLErrorResources.
+
+3. In IncrementalSAXSource_Filter, use ThreadControllerWrapper.runThread()
+rather than calling TransformerImpl.runTransformThread().
+
+4. In SAX2DTM, use a setter method to set the source location property.
+Remove the field access to
org.apache.xalan.processor.TransformerFactoryImpl.m_source_location.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/22<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath
DOM2Helper.java DOMHelper.java DOMOrder.java<br/><ref>Committer's log entry:
</ref>
+DTM Separation - remove old files in XPath
+DOMOrder, DOMHelper and DOM2Helper are now in org.apache.xml.utils.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/22<br/><ref>Modified: </ref> xml-xalan/java/src/org/apache/xpath
NodeSet.java XPathContext.java xml-xalan/java/src/org/apache/xpath/functions
FuncId.java FuncSum.java xml-xalan/java/src/org/apache/xpath/objects
XNodeSet.java XRTreeFragSelectWrapper.java
xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources_de.java
XPATHErrorResources_es.java XPATHErrorResources_fr.java
XPATHErrorResources_it.java XPATHErrorResources_ja.java
XPATHErrorResources_ko.java XPATHErrorResources_sv.java
XPATHErrorResources_zh_CN.java XPATHErrorResources_zh_TW.java
XPATHErrorResources.java XPATHMessages.java<br/><ref>Committer's log entry:
</ref>
+DTM Separation -- changes in org.apache.xpath
+1. Change the import path for DOMHelper and DOM2Helper
+2. Move 8 errror messages from XPATHErrorResources to XMLErrorResources
+3. Create a new XPATHMessages class to handle error resources at
+the XPath level.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/22<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib ExsltSets.java
xml-xalan/java/src/org/apache/xalan/processor ProcessorInclude.java
StylesheetHandler.java TransformerFactoryImpl.java
xml-xalan/java/src/org/apache/xalan/res XSLMessages.java
XSLTErrorResources_de.java XSLTErrorResources.java XSLTErrorResources_es.java
XSLTErrorResources_fr.java XSLTErrorResources_it.java
XSLTErrorResources_ja.java XSLTErrorResources_ko.java
XSLTErrorResources_sv.java XSLTErrorResources_zh_CN.java
XSLTErrorResources_zh_TW.java xml-xalan/java/src/org/apache/xalan/serialize
SerializerToXML.java xml-xalan/java/src/org/apache/xalan/templates
Constants.java xml-xalan/java/src/org/apache/xalan/transformer MsgMgr.java
TransformerIdentityImpl.java TransformerImpl.java
TreeWalker2Result.java<br/><ref>Committer's log entry: </ref>
+DTM Separation -- changes in org.apache.xalan
+1. Change the paths to DOMHelper and DOM2Helper
+2. Remove the m_XSLMessages field from a few classes.
+Use the static methods instead.
+3. In TransformerFactoryImpl, whenever the source location attribute
+is set, call the setter method in SAX2DTM to set the same attribute.
+4. XSLMessages now extends from XPATHMessages. The common interfaces
+are moved to XMLMessages.
+5. Move 53 error messages from XSLTErrorResources to XMLErrorResources.
+6. Move some of the constants from org.apache.xalan.templates.Constants
+to org.apache.xml.utils.Constants.
+7. Move the nested class ThreadControler in TransformerImpl to
+org.apache.xml.utils.ThreadControllerWrapper.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/23<br/><ref>Modified: </ref>
xml-xalan/java/samples/UseStylesheetParam UseStylesheetParam.java
xml-xalan/java/samples/extensions/sql/ext-connection ExternalConnection.java
xml-xalan/java/samples/SimpleTransform SimpleTransform.java
xml-xalan/java/samples/Validate ValidateXMLInput.java<br/><ref>Committer's log
entry: </ref>
+Updating license in some samples.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/23<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources_de.java
XSLTErrorResources_es.java XSLTErrorResources_fr.java
XSLTErrorResources_it.java XSLTErrorResources.java XSLTErrorResources_ja.java
XSLTErrorResources_ko.java XSLTErrorResources_sv.java
XSLTErrorResources_zh_CN.java
XSLTErrorResources_zh_TW.java<br/><ref>Committer's log entry: </ref>
+Correction to the message number.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/24<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/utils
FastStringBuffer.java<br/><ref>Committer's log entry: </ref>
+Fix for Bugzilla bug 10053. Before, a blank was emitted for any chunk that
+began with whitespace after non-whitespace characters had been seen. Also
made
+some performance improvements to sendNormalizedSAXcharacters.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/27<br/><ref>Modified: </ref> xml-xalan/java/bin xml-apis.jar
xml-xalan/java/src xml-commons-src.tar.gz<br/><ref>Committer's log entry: </ref>
+Committing xml-apis bin and source based off new tck-jaxp-1_2_0 branch
+of xml-commons.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/30<br/><ref>Modified: </ref>
xml-xalan/java/samples/CompiledApplet TransformApplet.java
xml-xalan/java/samples/CompiledBrazil TransformHandler.java
xml-xalan/java/samples/CompiledEJB TransformBean.java TransformHome.java
TransformRemote.java TransformServlet.java xml-xalan/java/samples/CompiledJAXP
Compile.java Transform.java xml-xalan/java/samples/CompiledServlet
CompileServlet.java TransformServlet.java xml-xalan/java/samples/translets
JAXPTransletMultipleTransformations.java
JAXPTransletOneTransformation.java<br/><ref>Committer's log entry: </ref>
+Changes to minimize set of classes imported.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/30<br/><ref>Modified: </ref> xml-xalan/java
todo.xsl<br/><ref>Committer's log entry: </ref>
+Added support for distinguishing between active and past developers. The
+latter will have an attribute on the "person" tag named "status" whose value
+equals "emeritus".
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/30<br/><ref>Modified: </ref> xml-xalan/java
xsltc_todo.xml<br/><ref>Committer's log entry: </ref>
+Changed two developers to have 'emeritus' status.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/31<br/><ref>Modified: </ref> xml-xalan/java/bin
xercesImpl.jar<br/><ref>Committer's log entry: </ref>
+Check in new XercesImpl (2.3.0 + patch).
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/31<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xml/dtm/ref
ExtendedType.java<br/><ref>Committer's log entry: </ref>
+file ExtendedType.java was initially added on branch XSLTC_DTM.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/01/31<br/><ref>Modified: </ref> xml-xalan/java
todo.xsl<br/><ref>Committer's log entry: </ref>
+Removed current project name from list of past developers, as it might not be
+pertinent.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/03<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/trace
PrintTraceListener.java<br/><ref>Committer's log entry: </ref>
+Committing patch for bugzilla #16222. Thanks to Elson Jiang ([EMAIL
PROTECTED])
+for identifying the problem and isolating the cause.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/03<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/trace
TraceManager.java<br/><ref>Committer's log entry: </ref>
+Committing Elson Jiang's ([EMAIL PROTECTED]) patch for bugzilla #5140.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/03<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan
faq.xml resources.xml<br/><ref>Committer's log entry: </ref>
+Updates to the FAQ for bugzilla#15586 and #14856
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/03<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xslt Process.java
xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
xml-xalan/java/src/org/apache/xpath SourceTreeManager.java
xml-xalan/java/src/org/apache/xalan/processor ProcessorInclude.java
TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/transformer
TransformerIdentityImpl.java TrAXFilter.java
xml-xalan/java/src/org/apache/xalan/processor ProcessorInclude.java
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>
+The behaviour of the Xerces-J parser recently changed to agree with its
+documented behaviour with respect to the dynamic validation feature. This
+causes problems for stylesheets that contain a DTD, but are not otherwise
+"valid" - for instance, because the DTD contains ENTITY declarations, but no
+ELEMENT declarations - because error reporting is performed for documents if
+the dynamic validation feature is enabled and the document contains a DOCTYPE
+declaration.
+
+The solution is to remove code (including code that was commented out) that
+enabled the Xerces dynamic validation feature.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/03<br/><ref>Modified: </ref> xml-xalan/java/src
xml-commons-src.tar.gz xml-xalan/java/bin xml-apis.jar<br/><ref>Committer's log
entry: </ref>
+Updating xml-apis.jar and source. A security exception wasn't being
+handled when reading java.home from system properties.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/04<br/><ref>Modified: </ref>
xml-xalan/java/samples/CompiledApplet singleTransform.html<br/><ref>Committer's
log entry: </ref>
+file singleTransform.html was initially added on branch XSLTC_DTM.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/04<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan
extensions.xml samples.xml<br/><ref>Committer's log entry: </ref>
+xdocs update
+In samples.xml, update the documentation for the ApplyXSLT sample to provide
+more information about the input xml and stylesheet.
+In extensions.xml, add documentation for the src attribute in xalan:script.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/19<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/xslt Process.java<br/><ref>Committer's log
entry: </ref>
+Patch for bugzilla #17030. The command line (Process) uses the
+bootstrap classloader (in JDK1.4) instead of the system class loader to
+load classes specified by the URIResolver, EntityResolver and
+ContentHandler options.
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/20<br/><ref>Modified: </ref> xml-xalan/java/samples/servlet
ApplyXSLT.java DefaultApplyXSLTProperties.java jspSample.jsp
SimpleXSLTServlet.java UseStylesheetParamServlet.java
XSLTServletWithParams.java birds.xml birds.xsl booklist1.xsl booklist2.xsl
catalog.xml web.xml<br/><ref>Committer's log entry: </ref>
+Committing Christine Li's ([EMAIL PROTECTED]) patch to the servlet sample.
+Bugzilla #17136
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/20<br/><ref>Modified: </ref> xml-xalan/java/xdocs/sources/xalan
readme.xml samples.xml usagepatterns.xml<br/><ref>Committer's log entry: </ref>
+Committing Christine Li's ([EMAIL PROTECTED]) patch to the servlet sample
documentation.
+Bugzilla #17136
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/20<br/><ref>Modified: </ref> xml-xalan/java
build.xml<br/><ref>Committer's log entry: </ref>
+Committing Christine Li's ([EMAIL PROTECTED]) patch to the build script for
the servlet sample.
+Bugzilla #17136
+<br/><br/></li><li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2003/02/20<br/><ref>Modified: </ref> xml-xalan/java
build.xml<br/><ref>Committer's log entry: </ref>
+Minor change to build script for updated servlet sample.
+<br/><br/></li></ul>
+</s2>
<s2 title="Changes for &xslt4j; 2.4.1">
<p> Core (Non-XSLTC) source code updates:</p><ul>
<li><ref>Committed by </ref>[EMAIL PROTECTED]<ref> on
</ref>2002/09/06<br/><ref>Modified: </ref>
xml-xalan/java/src/org/apache/xalan/lib/sql
DefaultConnectionPool.java<br/><ref>Committer's log entry: </ref>
1.24 +7 -7 xml-xalan/java/xdocs/sources/xalan/commandline.xml
Index: commandline.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/commandline.xml,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- commandline.xml 27 Jan 2003 18:45:36 -0000 1.23
+++ commandline.xml 21 Feb 2003 20:10:07 -0000 1.24
@@ -61,7 +61,7 @@
<s1 title="Command-Line Utility">
<ul>
-<li><link idref="commandline_xsltc">Command line options for
XSLTC</link></li>
+<li><link idref="commandline_xsltc">Command line options for
&xslt4jc-short;</link></li>
</ul>
<s2 title="Using the Command-Line Utility">
@@ -75,7 +75,7 @@
<li><link idref="getstarted" anchor="classpath">Set the Java
classpath</link> to include xalan.jar, xml-apis.jar, and
&xml4j-jar; -- or another conformant XML Parser -- (see <link
idref="usagepatterns" anchor="plug">Plugging in
the Transformer and XML parser</link>). Also include xsltc.jar in the
classpath if you want to use
- the XSLTC related options.<br/><br/></li>
+ &xslt4jc-short; related options.<br/><br/></li>
<li>Call java and the Process class with the appropriate flags and
arguments (described below). The following command line, for example,
includes the -IN, -XSL,
and -OUT flags with their accompanying arguments -- the XML source
document, the XSL
@@ -86,7 +86,7 @@
<source>
Common Options
--XSLTC (use XSLTC for transformation)
+-XSLTC (use &xslt4jc-short; for transformation)
-IN inputXMLURL
-XSL XSLTransformationURL
-OUT outputFileName
@@ -103,7 +103,7 @@
-ENTITYRESOLVER full class name (EntityResolver to be used to resolve
entities)
-CONTENTHANDLER full class name (ContentHandler to be used to serialize
output)
- Options for the Xalan interpreter
+ Options for &xslt4ji;
-QC (Quiet Pattern Conflicts Warnings)
-TT (Trace the templates as they are being called)
@@ -118,7 +118,7 @@
http://xml.apache.org/xalan/features/optimize to false)
-RL recursionlimit (assert numeric limit on stylesheet recursion depth)
- Options for the Xalan compiler (XSLTC)
+ Options for &xslt4jc-long; (&xslt4jc-short;)
-XO [optional transletName] (assign the name to the generated translet)
-XD destinationDirectory (specify a destination directory for translet)
@@ -128,9 +128,9 @@
-XX (turn on additional debugging message output)
-XT (use translet to transform if possible)
</source>
- <p>Use <code>-XSLTC</code> if you want to transform with XSLTC. Please
refer to
+ <p>Use <code>-XSLTC</code> if you want to transform with
&xslt4jc-short;. Refer to
<link idref="commandline_xsltc">this document</link> for a detailed
description on
- the XSLTC related options.</p>
+ &xslt4jc-short; related options.</p>
<p>Use <code>-IN</code> to specify the XML source document.</p>
<p>Use <code>-XSL</code> to specify the XSL stylesheet file.</p>
<p>Use <code>-TEXT</code> if you want the output to include only
element values (not element tags with element names and
1.17 +145 -118 xml-xalan/java/xdocs/sources/xalan/overview.xml
Index: overview.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/overview.xml,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- overview.xml 27 Jan 2003 18:45:36 -0000 1.16
+++ overview.xml 21 Feb 2003 20:10:07 -0000 1.17
@@ -65,25 +65,26 @@
<li><link anchor="towork">Getting to work with &xslt4j;</link></li>
<li><link anchor="uptospeed">Getting up to speed with XSLT</link></li>
<li><link anchor="glossary">Glossary</link></li>
-</ul><anchor name="intro"/>
- <s2 title="Introduction">
- <p>&xslt4j; (named after a rare musical instrument) fully implements
<resource-ref idref="xslt"/> and the
- <resource-ref idref="xpath"/>. XSLT is the first part of the XSL
stylesheet language for XML. It includes the XSL
- Transformation vocabulary and XPath, a language for addressing parts of
XML documents. For links to background materials,
- discussion groups, frequently asked questions, and tutorials on XSLT,
see <link anchor="uptospeed">Getting up
- to speed with XSLT</link>.</p>
- <note>XSL also includes a vocabulary for formatting documents, which is
not part of &xslt4j;.
- For more information, see <resource-ref idref="xsl"/> and the <jump
- href="http://xml.apache.org/fop">Apache XML FOP (Formatting Objects
Project)</jump>.</note>
- <p>You use the XSLT language to compose XSL stylesheets. An XSL
stylesheet contains instructions for
- transforming XML documents from one document type into another document
type (XML, HTML, or other). In structural
- terms, an XSL stylesheet specifies the transformation of one tree of
nodes (the XML input) into another tree of nodes
- (the output or transformation result).</p>
- <note>The XSL stylesheet may generate and refer to cascading style
sheets (<jump
- href="http://www.w3.org/Style/CSS/">CSS</jump>) as part of its
output.</note>
- <p>In the following example, the foo.xsl stylesheet is used to transform
foo.xml into foo.out:</p>
- <p>foo.xml:</p>
- <source><?xml version="1.0"?>
+</ul>
+<anchor name="intro"/>
+<s2 title="Introduction">
+<p>&xslt4j; (named after a rare musical instrument) fully implements
<resource-ref idref="xslt"/>
+ and the <resource-ref idref="xpath"/>. XSLT is the first part of the XSL
stylesheet language for
+ XML. It includes the XSL Transformation vocabulary and XPath, a language
for addressing parts of
+ XML documents. For links to background materials, discussion groups,
frequently asked questions,
+ and tutorials on XSLT, see <link anchor="uptospeed">Getting up to speed
with XSLT</link>.</p>
+<note>XSL also includes a vocabulary for formatting documents, which is not
part of &xslt4j;.
+ For more information, see <resource-ref idref="xsl"/> and the <jump
+ href="http://xml.apache.org/fop">Apache XML FOP (Formatting Objects
Project)</jump>.</note>
+<p>You use the XSLT language to compose XSL stylesheets. An XSL stylesheet
contains instructions
+ for transforming XML documents from one document type into another
document type (XML, HTML,
+ or other). In structural terms, an XSL stylesheet specifies the
transformation of one tree of
+ nodes (the XML input) into another tree of nodes (the output or
transformation result).</p>
+<note>The XSL stylesheet may generate and refer to cascading style sheets
(<jump
+ href="http://www.w3.org/Style/CSS/">CSS</jump>) as part of its
output.</note>
+<p>In the following example, the foo.xsl stylesheet is used to transform
foo.xml into foo.out:</p>
+<p>foo.xml:</p>
+<source><?xml version="1.0"?>
<doc>Hello</doc></source>
<p>foo.xsl:</p>
<source><?xml version="1.0"?>
@@ -94,111 +95,137 @@
</xsl:stylesheet></source>
<p>foo.out:</p>
<source><out>Hello</out></source>
-<p>By default, &xslt4j; uses &xml4j;, and it may be configured with system
properties to work with other XML parsers (see <link idref="usagepatterns"
anchor="plug">Plugging in a Transformer and XML parser</link>). The input may
be submitted in the form of a stream of XML markup (from a URI, a character or
byte stream, or another transformation), a SAX InputStream, or a DOM Node.</p>
-<p>&xslt4j; performs the transformations specified in the XSL stylesheet and
packages a sequence of SAX events that may be serialized to an output stream or
writer, used to build a DOM tree, or forwarded as input to another
transformation.</p>
- </s2><anchor name="features"/>
- <s2 title="&xslt4j; Features">
- <ul>
- <li>Implements the relevant W3C specifications:
<resource-ref idref="xslt"/> and <resource-ref idref="xpath"/>.<br/><br/></li>
- <li>Implements <link idref="trax">TRaX (Transformation API for
XML)</link>, now part of <resource-ref idref="jaxp"/>, and builds on
- <resource-ref idref="sax2"/> and <resource-ref
idref="dom2"/>.<br/><br/></li>
- <li>May be configured to work with any XML parser, such
- <jump
href="http://xml.apache.org/xerces-j/index.html">&xml4j;</jump>, that
implements <resource-ref
- idref="jaxp"/> (see <link idref="usagepatterns"
anchor="plug">Plugging in an XML
- parser</link>).<br/><br/></li>
- <li>Can process Stream, SAX or DOM input, and output to a Stream, SAX
or DOM.<br/><br/></li>
- <li>Transformations may be chained (the output of one transformation
may be the input for
- another).<br/><br/></li>
- <li>May be run from the <link idref="commandline">command
line</link> for convenient file-to-file
- transformations.<br/><br/></li>
- <li>Includes an <link idref="usagepatterns" anchor="applet">applet
wrapper</link>.<br/><br/></li>
- <li>May be used in a <link idref="samples"
anchor="servlet">servlet</link> to transform XML documents into
- HTML and serve the results to clients.<br/><br/></li>
- <li>Supports the creation of <link idref="extensions">Java and
scripting language extensions</link>. and
- provides a growing library of extension elements and functions.</li>
- </ul>
- </s2><anchor name="towork"/>
- <s2 title="Getting to work with &xslt4j;">
- <p>For instructions and some suggestions about how to get started using
&xslt4j;, see
- <link idref="getstarted">Getting Started</link>.</p>
- </s2><anchor name="uptospeed"/>
- <s2 title="Getting up to speed with XSLT">
- <p>If you are still working through the details of the XSLT spec (the
W3C 1.0 Recommendation), you may want
- to consult one or more of the following:</p>
- <ul>
- <li>XSLT - XSL Transformations in
- <jump href="http://www.brics.dk/~amoeller/XML/">The XML Revolution:
Technologies for the future Web</jump> by
- Anders Møller and Michael I. Schwartzbach (Web pages, but
designed for sequential reading)</li>
- <li>Crane Softwright's <jump
href="http://www.CraneSoftwrights.com/training/">Free preview of Practical
- Transformation Using XSLT and XPath</jump><br/><br/></li>
- <li>Doug Tidwell's <jump
href="http://www.oreilly.com/catalog/xslt/">XSLT</jump>, O'Reilly,
2001<br/><br/></li>
- <li>Bob Ducharme's <jump
href="http://www.manning.com/ducharme/index.html">XSLT Quickly</jump>, Manning
Publications,
- 2001<br/><br/></li>
- <li>John Robert Gardner and Zarella Rendon's
- <jump
href="http://vig.prenhall.com/catalog/academic/product/1,4096,0130404462,00.html">XSLT
and XPath: A Guide to
- Transformations</jump>, Prentice-Hall, 2001<br/><br/></li>
- <li>Michael Kay's <jump
href="http://www.wrox.com/Books/Book_Details.asp?ISBN=1861005067">XSLT
Programmer's
- Reference</jump>, 2nd ed., Wrox Press, 2001<br/><br/></li>
- <li>Steven Holzner's <jump
href="http://www.newriders.com/books/title.cfm?isbn=0735711364">Inside
XSLT</jump>,
- New Riders, 2001<br/><br/></li>
- <li>Neil Bradley's <jump
href="http://www.awlonline.com/product/0,2627,0201674874,00.html">XSL
Companion</jump>,
- Addison-Wesley, 2000<br/><br/></li>
- <li>Khun Yee Fung's <jump
href="http://www.awlonline.com/product/0,2627,0201711036,00.html">XSLT: Working
with XML and
- HTML</jump>, Addison-Wesley, 2001<br/><br/></li>
- <li>Dave Pawson's <resource-ref idref="dpawsonxslfaq"/> to search
out particular answers and techniques<br/><br/></li>
- <li>Miloslav Nic's <jump
href="http://zvon.vscht.cz/HTMLonly/XSLTutorial/Books/Book1/index.html">XSL
Tutorial</jump>,
- a collection of stylesheet examples<br/><br/></li>
- <li>Elliotte Rusty Harold's <jump
href="http://metalab.unc.edu/xml/books/bible/updates/14.html">Chapter 14 of
- the XML Bible: XSL Transformations</jump><br/><br/></li>
- <li>The Mulberry <jump
href="http://www.mulberrytech.com/xsl/xsl-list/">XSL-List -- Open Forum on
XSL</jump>
- (of interest to XSL users at all levels)<br/><br/></li>
- <li>Objects by Design's <jump
href="http://www.objectsbydesign.com/projects/xmi_to_html.html">Transforming
XMI to
- HTML</jump> (oriented towards XMI, "an XML-based, stream
representation of a UML model," but also covers "generic"
- XML transformations) and their related <jump
href="http://objectsbydesign.com/projects/xslt/xslt_by_example.html">XSLT
- by Example</jump><br/><br/></li>
- <li>OASIS (the Organization for the Advancement of Structured
Information Standards):
- <jump href="http://www.oasis-open.org/cover/xsl.html">Extensible
Stylesheet Language (XSL)</jump> by Robin
- Cover<br/><br/></li>
- <li>Donald Ball's <jump
href="http://www.webslingerZ.com/balld/xsl/designer_manual.xml">A Guide to XML
and XSL for
- Designers</jump><br/><br/></li>
- </ul>
- <p>When you come across other useful introductory or background
materials, please email <human-resource-ref
- idref="xalandev"/>, so we can add them to this list.</p>
+<p>By default, &xslt4j; uses &xml4j;, and it may be configured with system
properties to work with
+ other XML parsers (see <link idref="usagepatterns" anchor="plug">Plugging
in a Transformer and
+ XML parser</link>). The input may be submitted in the form of a stream of
XML markup (from a URI,
+ a character or byte stream, or another transformation), a SAX
InputStream, or a DOM Node.</p>
+<p>&xslt4j; performs the transformations specified in the XSL stylesheet and
packages a sequence of
+ SAX events that may be serialized to an output stream or writer, used to
build a DOM tree, or
+ forwarded as input to another transformation.</p>
+</s2>
+
+<anchor name="features"/>
+<s2 title="&xslt4j; Features">
+<ul>
+ <li>Includes an Interpretive processor for use in a tooling and debugging
environment and
+ a Compiling processor (XSLTC) for use in a high performance runtime
environment.<br/><br/></li>
+ <li>Implements the relevant W3C specifications: <resource-ref
idref="xslt"/> and
+ <resource-ref idref="xpath"/>.<br/><br/></li>
+ <li>Implements <link idref="trax">TRaX (Transformation API for
XML)</link>, now part of
+ <resource-ref idref="jaxp12"/>, and builds on <resource-ref
idref="sax2"/> and
+ <resource-ref idref="dom2"/>.<br/><br/></li>
+ <li>May be configured to work with any XML parser, such
+ <jump href="http://xml.apache.org/xerces-j/index.html">&xml4j;</jump>,
that implements
+ <resource-ref idref="jaxp12"/> (see <link idref="usagepatterns"
anchor="plug">Plugging in an XML
+ parser</link>).<br/><br/></li>
+ <li>Can process Stream, SAX or DOM input, and output to a Stream, SAX or
DOM.<br/><br/></li>
+ <li>Transformations may be chained (the output of one transformation may
be the input for
+ another).<br/><br/></li>
+ <li>May be run from the <link idref="commandline">command line</link> for
convenient file-to-file
+ transformations.<br/><br/></li>
+ <li>Includes an <link idref="usagepatterns" anchor="applet">applet
wrapper</link>.<br/><br/></li>
+ <li>May be used in a <link idref="samples" anchor="servlet">servlet</link>
to transform XML documents
+ into HTML and serve the results to clients.<br/><br/></li>
+ <li>Supports the creation of <link idref="extensions">Java and scripting
language extensions</link>.
+ and provides a growing library of extension elements and
functions.</li>
+</ul>
+</s2>
+
+<anchor name="towork"/>
+<s2 title="Getting to work with &xslt4j;">
+<p>For instructions and some suggestions about how to get started using the
XSLT Interpretive
+ processor, see <link idref="getstarted">Getting Started with Interpretive
Processing</link>.</p>
+<p>For instructions and some suggestions about how to get started using the
XSLT Compiling
+ processor, see <link idref="xsltc_usage">Getting Started with
XSLTC</link>.</p>
+</s2>
+
+<anchor name="uptospeed"/>
+<s2 title="Getting up to speed with XSLT">
+<p>If you are still working through the details of the XSLT spec (the W3C
1.0 Recommendation), you
+ may want to consult one or more of the following:</p>
+<ul>
+ <li>XSLT - XSL Transformations in
+ <jump href="http://www.brics.dk/~amoeller/XML/">
+ The XML Revolution: Technologies for the future Web</jump> by Anders
Møller and Michael
+ I. Schwartzbach (Web pages, but designed for sequential reading)</li>
+ <li>Crane Softwright's <jump
href="http://www.CraneSoftwrights.com/training/">Free preview of
+ Practical Transformation Using XSLT and XPath</jump><br/><br/></li>
+ <li>Doug Tidwell's <jump
href="http://www.oreilly.com/catalog/xslt/">XSLT</jump>, O'Reilly, 2001
+ <br/><br/></li>
+ <li>Bob Ducharme's <jump
href="http://www.manning.com/ducharme/index.html">XSLT Quickly</jump>,
+ Manning Publications, 2001<br/><br/></li>
+ <li>John Robert Gardner and Zarella Rendon's
+ <jump
href="http://vig.prenhall.com/catalog/academic/product/1,4096,0130404462,00.html">XSLT
+ and XPath: A Guide to Transformations</jump>, Prentice-Hall,
2001<br/><br/></li>
+ <li>Michael Kay's <jump
href="http://www.wrox.com/Books/Book_Details.asp?ISBN=1861005067">XSLT
+ Programmer's Reference</jump>, 2nd ed., Wrox Press, 2001<br/><br/></li>
+ <li>Steven Holzner's <jump
href="http://www.newriders.com/books/title.cfm?isbn=0735711364">Inside
+ XSLT</jump>, New Riders, 2001<br/><br/></li>
+ <li>Neil Bradley's <jump
href="http://www.awlonline.com/product/0,2627,0201674874,00.html">XSL
+ Companion</jump>, Addison-Wesley, 2000<br/><br/></li>
+ <li>Khun Yee Fung's <jump
href="http://www.awlonline.com/product/0,2627,0201711036,00.html">XSLT:
+ Working with XML and HTML</jump>, Addison-Wesley, 2001<br/><br/></li>
+ <li>Dave Pawson's <resource-ref idref="dpawsonxslfaq"/> to search out
particular answers and
+ techniques<br/><br/></li>
+ <li>Miloslav Nic's <jump
href="http://zvon.vscht.cz/HTMLonly/XSLTutorial/Books/Book1/index.html">XSL
+ Tutorial</jump>, a collection of stylesheet examples<br/><br/></li>
+ <li>Elliotte Rusty Harold's <jump
href="http://metalab.unc.edu/xml/books/bible/updates/14.html">
+ Chapter 14 of the XML Bible: XSL Transformations</jump><br/><br/></li>
+ <li>The Mulberry <jump
href="http://www.mulberrytech.com/xsl/xsl-list/">XSL-List -- Open Forum on
+ XSL</jump> (of interest to XSL users at all levels)<br/><br/></li>
+ <li>Objects by Design's <jump
href="http://www.objectsbydesign.com/projects/xmi_to_html.html">
+ Transforming XMI to HTML</jump> (oriented towards XMI, "an XML-based,
stream representation
+ of a UML model," but also covers "generic" XML transformations) and
their related
+ <jump
href="http://objectsbydesign.com/projects/xslt/xslt_by_example.html">XSLT by
Example</jump>
+ <br/><br/></li>
+ <li>OASIS (the Organization for the Advancement of Structured Information
Standards):
+ <jump href="http://www.oasis-open.org/cover/xsl.html">Extensible
Stylesheet Language (XSL)</jump>
+ by Robin Cover<br/><br/></li>
+ <li>Donald Ball's <jump
href="http://www.webslingerZ.com/balld/xsl/designer_manual.xml">A Guide to
+ XML and XSL for Designers</jump><br/><br/></li>
+</ul>
+<p>When you come across other useful introductory or background materials,
please email
+ <human-resource-ref idref="xalandev"/>, so we can add them to this
list.</p>
- </s2><anchor name="glossary"/>
- <s2 title="Glossary">
- <gloss>
- <label>XSLT Namespace</label>
- <item>The <jump href="http://www.w3.org/TR/REC-xml-names/">XML
namespace</jump> for XSLT. An XML namespace is a
- collection of element and attribute names, identified by a Unique
Resource Identifier (URI), which often takes the form of
- a URL, but is really just a unique string, not a pointer to a web
page. The XSLT namespace URI is
- http://www.w3.org/1999/XSL/Transform. In each XSLT stylesheet, you
must declare this namespace in the stylesheet element
- tag and bind it to a local prefix. Like the XSLT specification, we
always use xsl as the XSLT namespace prefix in our
- descriptions and examples, although you are free to bind any prefix
to this namespace.<br/><br/></item>
+</s2><anchor name="glossary"/>
+<s2 title="Glossary">
+<gloss>
+ <label>XSLT Namespace</label>
+ <item>The <jump href="http://www.w3.org/TR/REC-xml-names/">XML
namespace</jump> for XSLT. An XML
+ namespace is a collection of element and attribute names, identified
by a Unique Resource
+ Identifier (URI), which often takes the form of a URL, but is really
just a unique string,
+ not a pointer to a web page. The XSLT namespace URI is
http://www.w3.org/1999/XSL/Transform.
+ In each XSLT stylesheet, you must declare this namespace in the
stylesheet element tag and
+ bind it to a local prefix. Like the XSLT specification, we always
use xsl as the XSLT
+ namespace prefix in our descriptions and examples, although you are
free to bind any prefix
+ to this namespace.<br/><br/></item>
- <label>XSL Instruction</label>
- <item>Any tag associated with the XSLT namespace.<br/><br/></item>
+ <label>XSL Instruction</label>
+ <item>Any tag associated with the XSLT namespace.<br/><br/></item>
- <label>Template</label>
- <item>An element, usually with child elements, that specifies a
"rule" or set of
- instructions to perform when a particular kind of node is
encountered in the source tree.<br/><br/></item>
+ <label>Template</label>
+ <item>An element, usually with child elements, that specifies a "rule" or
set of
+ instructions to perform when a particular kind of node is
encountered in the source
+ tree.<br/><br/></item>
- <label>XSL Template Instruction</label>
- <item>Any tag that occurs inside an xsl:template element and is
associated with the XSLT namespace.<br/><br/></item>
+ <label>XSL Template Instruction</label>
+ <item>Any tag that occurs inside an xsl:template element and is associated
with the XSLT
+ namespace.<br/><br/></item>
- <label>Source Tree</label>
- <item>The XML tree input to the XSL process.<br/><br/></item>
+ <label>Source Tree</label>
+ <item>The XML tree input to the XSL process.<br/><br/></item>
- <label>Result Tree</label>
- <item>The tree that is output by the XSL process.<br/><br/></item>
+ <label>Result Tree</label>
+ <item>The tree that is output by the XSL process.<br/><br/></item>
- <label>Match Pattern</label>
- <item>The part of a template that defines the kind(s) of nodes to
which the template applies.<br/><br/></item>
+ <label>Match Pattern</label>
+ <item>The part of a template that defines the kind(s) of nodes to which
the template
+ applies.<br/><br/></item>
- </gloss>
- <p>For more definitions of XSLT terminology, see Dave Pawson's
- <jump href="http://www.dpawson.co.uk/xsl/vocab.html">XSLT Terminology
- Clarification</jump> and the Glossary in Michael Kay's
- <jump
href="http://www.wrox.com/Consumer/Store/Details.asp?ISBN=1861003129">XSLT
Programmer's Reference</jump>.</p>
- </s2>
+</gloss>
+<p>For more definitions of XSLT terminology, see Dave Pawson's
+ <jump href="http://www.dpawson.co.uk/xsl/vocab.html">XSLT Terminology
+ Clarification</jump> and the Glossary in Michael Kay's
+ <jump
href="http://www.wrox.com/Consumer/Store/Details.asp?ISBN=1861003129">XSLT
Programmer's Reference</jump>.</p>
+</s2>
</s1>
1.52 +51 -34 xml-xalan/java/xdocs/sources/xalan/samples.xml
Index: samples.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/samples.xml,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- samples.xml 20 Feb 2003 18:49:17 -0000 1.51
+++ samples.xml 21 Feb 2003 20:10:08 -0000 1.52
@@ -56,7 +56,9 @@
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
-->
-<s1 title="&xslt4j2; Samples">
+<s1 title="&xslt4j; Samples">
+
+<p>&xslt4ji; samples:</p>
<ul>
<li><link anchor="simpletransform">SimpleTransform</link></li>
<li><link anchor="usestylesheetpi">UseStylesheetPI</link></li>
@@ -68,28 +70,51 @@
<li><link anchor="applyxpath">ApplyXPath</link></li>
<li><link anchor="applyxpathdom">ApplyXPathDOM</link></li>
<li><link anchor="appletxmltohtml">AppletXMLtoHTML</link></li>
-<li><link anchor="servlet">servlet</link></li>
<li><link anchor="extensions">Extensions</link></li>
<li><link anchor="trace">Trace</link></li>
<li><link anchor="validate">Validate</link></li>
-<li><link anchor="trax">trax</link></li>&xsltcsampleshead;
-</ul>
- <s2 title="Samples to help you get started">
- <p>Each of the subdirectories in the &xslt4j; java/samples directory
contains the source files for one or more
- sample applications. The class files for the samples are in
xalansamples.jar (everything except the servlet) and xalanservlet.jar, so to
run the samples, you should place these JAR files on the system classpath.</p>
- <p>With most of the samples, you can use the following procedure:</p>
- <ol>
- <li>Be sure xalan.jar, xml-apis.jar, xalansamples.jar, and &xml4j-jar;
are on the system class
- path. For the extension examples, bsf.jar and (for the JavaScript
extensions) js.jar must also be on the class
- path.</li>
- <li>Be sure the java executable is on your path.</li>
- <li>Go to the samples subdirectory containing the sample (use the DOS
shell if you are running Windows).</li>
- <li>Run the sample from the command line (as indicated below).</li>
- <li>Examine the application source files. You may also want to modify
the source files. Remember that if you
- modify a java file, you must recompile the class and place it on the
classpath before you can run the
- modified application.</li>
- </ol>
- <p>The basic command line for running most of the samples is </p>
+<li><link anchor="trax">trax</link></li>
+</ul>
+<p>&xslt4ji; servlet samples:</p>
+<ul>
+<li><link anchor="servlet">servlet</link></li>
+</ul>
+<p>&xslt4jc-long; samples:</p>
+<ul>
+&xsltcsampleshead;
+</ul>
+<s2 title="Samples to help you get started">
+<p>Each of the subdirectories in the &xslt4j; java/samples directory
+ contains the source files for one or more sample applications. The class
+ files for the samples are in the following jar files:</p>
+<table>
+<tr>
+ <th>JAR file</th>
+ <th>Content</th>
+</tr>
+<tr>
+ <td>xalansamples.jar</td>
+ <td>Everything except the &xslt4ji; servlet sample and some
+ &xslt4jc-short; samples</td>
+</tr>
+<tr>
+ <td>xalanservlet.jar</td>
+ <td>&xslt4ji; servlet sample</td>
+</tr>
+</table>
+<p>With most of the samples, you can use the following procedure:</p>
+ <ol>
+ <li>Be sure xalan.jar, xml-apis.jar, the appropriate samples JAR file,
and &xml4j-jar; are on the system class
+ path. For the extension examples, bsf.jar and (for the JavaScript
extensions) js.jar must also be on the class
+ path.</li>
+ <li>Be sure the java executable is on your path.</li>
+ <li>Go to the samples subdirectory containing the sample (use the DOS
shell if you are running Windows).</li>
+ <li>Run the sample from the command line (as indicated below).</li>
+ <li>Examine the application source files. You may also want to modify the
source files. Remember that if you
+ modify a java file, you must recompile the class and place it on the
classpath before you can run the
+ modified application.</li>
+ </ol>
+<p>The basic command line for running most of the samples is </p>
<p><code>java <ref>classname args</ref></code></p>
<p>where <ref>classname</ref> is the sample class and <ref>args</ref>
are the arguments, if any. As described in
the following sections, some samples take no arguments. The
UseStylesheetParam sample takes an
@@ -165,16 +190,6 @@
<p>and</p>
<p><code>java ApplyXPath foo.xml /doc/name/@first</code></p>
<p>For more information, see <link idref="usagepatterns"
anchor="xpath">Working with XPath expressions</link>.</p>
- </s2><anchor name="appletxmltohtml"/>
- <s2 title="AppletXMLtoHTML">
- <p>The applet uses a stylesheet to transform an XML document into HTML.
It displays the XML document, the
- stylesheet, and the HTML output.</p>
- <p>How to run it: Open appletXMLtoHTML.hmtl in the Internet Explorer 5
browser.</p>
- <note>For information about running &xslt4j; applets in Netscape
Communicator, see <link idref="usagepatterns" anchor="netscape">Problems
- with Netscape</link>.<br/><br/>
- This applet looks for xalan.jar, xml-apis.jar, and xercesImpl.jar
(Xerces-J2) or xerces.jar (Xerces-J 1) in the bin
- subdirectory. If you have placed these JAR files
- elsewhere, adjust the applet archive setting in client.html
accordingly.</note>
</s2><anchor name="applyxpathdom"/>
<s2 title="ApplyXPathDOM">
<p>What it does: ApplyXPathDOM is very similar to the <link
anchor="applyxpath">ApplyXPath</link> sample, but it uses the API
@@ -214,7 +229,7 @@
Copy the xalanservlet.war to %Tomcat_Home%/webapps. For more detail
about deploying
servlet on Tomcat, please refer to <jump
href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/appdev/deployment.html">Deployment
Organization</jump>.</p>
<note>Dependency on Tomcat version. If encountering
"java.lang.VerifyError: Cannot inherit from final class" error,
- replace XercesImpl.jar under %Tomcat_Home%/common/endorsed with the one
included with &xslt4j; .</note>
+ replace xercesImpl.jar under %Tomcat_Home%/common/endorsed with the one
included with &xslt4j; .</note>
<p><link anchor="simplexsltservlet">servlet.SimpleXSLTServlet</link>
applies a particular stylesheet to a particular
XML document.</p>
<p><link
anchor="usestylesheetparamservlet">servlet.UseStylesheetParamServlet</link>
sets a stylesheet parameter
@@ -318,8 +333,10 @@
</s2><anchor name="extensions"/>
<s2 title="Extensions">
<p>For an introduction to the creation and use of extension elements and
extension functions, and
- for information about the extensions library distributed with &xslt4j;,
see
- <link idref="extensions">Extensions</link>.</p>
+ for information about the extensions library distributed with the
&xslt4j; Interpretive processor,
+ see <link idref="extensions">Extensions</link>. Extensions are also
supported for the &xslt4j;
+ Compiling processor (XSLTC), however no samples exist at this time. See
+ <link idref="extensions_xsltc">Extensions for XSLTC</link>.</p>
<ul>
<li><link anchor="ext1">1-redir</link></li>
<li><link anchor="ext2">2-basicJscript</link></li>
@@ -328,7 +345,7 @@
<li><link anchor="ext5">5-numlistJScript</link></li>
<li><link anchor="sql">SQL library extensions</link></li>
</ul>
- <p>The extensions subdirectory contains six samples with &xslt4j;
extensions. Two of the samples use
+ <p>The extensions subdirectory contains six samples with &xslt4j;
Interpretive extensions. Two of the samples use
extensions implemented in JavaScript, and four of the samples use
extensions implemented in Java.</p>
<p>To run these examples, you must place bsf.jar (distributed with
&xslt4j;), and js.jar
(version 1.5, available from
1.52 +106 -56 xml-xalan/java/xdocs/sources/xalan/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/index.xml,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- index.xml 27 Jan 2003 18:45:36 -0000 1.51
+++ index.xml 21 Feb 2003 20:10:08 -0000 1.52
@@ -1,6 +1,6 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!--
+<!--
* The Apache Software License, Version 1.1
*
*
@@ -57,59 +57,109 @@
* <http://www.apache.org/>.
-->
<s1 title="&xslt4j-current;">
-<!--note>A later Developer release has been posted in the <resource-ref
idref="xslt4j-distdir"/>. For the changes that have occurred since
&xslt4j-current;, consult the [EMAIL PROTECTED] mailing list, or download the
release and consult the release notes.</note-->
- <s2 title="What is it?">
- <p>&xslt4j; is an XSLT processor for transforming XML documents into
HTML, text, or other XML document types. It implements the
- W3C Recommendations for XSL Transformations (XSLT) and the XML Path
Language (XPath). It can be used from the command line,
- in an applet or a servlet, or as a module in other program.</p>
- </s2>
- <s2 title="I've heard of &xslt4j;, but what is version 2?">
- <p>&xslt4j; version 2 recasts &xslt; as an implementation of the <link
idref="trax">TRaX (Transformation API for XML)</link> interfaces, part of the
<resource-ref idref="jaxp11"/>. TRaX provides a
- modular framework and a standard API for performing XML transformations,
and it utilizes system properties to determine which Transformer and which XML
parser to use.</p>
- <p>&xslt4j; version 2 also builds on <resource-ref idref="sax2"/>,
<resource-ref idref="dom2"/>, and the XML parser API in
- <resource-ref idref="jaxp"/>.</p>
- <p>For more information, see <link idref="whatsnew">What's new in
&xslt4j2;</link>.</p>
- <note>&xslt4j; version 1 is no longer supported and no longer available
from xml.apache.org.</note>
- </s2>
- <s2 title="How about this release?">
- <p>&xslt4j-current;
- <!-- is a developer release that -->
- works with &xml4j; version 2. The distribution includes xercesImpl.jar
from &xml4j-used;. &xslt4j-current; is also
- compatible with &xml4j; version 1.</p>
- <p>Support for the &xslt4j; release 1 API, which predates the design of
the JAXP 1.1/TrAX interfaces, has been dropped.</p>
- <p>The &xslt4j; implementation is in xalan.jar. The SAX, DOM, and JAVAX
interfaces are in xml-apis.jar. These interfaces are shared by a
- number of tools (&xslt4j;, &xml4j;, etc.), so placing them in a separate
JAR simplifies coordination and reduces risk of duplication.
- <em>Be sure to put both JAR files (and xercesImpl.jar or another JAXP
1.1-compliant XML parser) on your classpath!</em></p>
- <p>&xslt4j-current; also introduces support for <link
idref="extensionslib" anchor="exslt">EXSLT extensions </link>.</p>
- </s2>
- <s2 title="How do I get it?">
- <p>To get the binary distribution (all you need to use and develop
applications with &xslt4j;), download and unzip either of the following:</p>
- <ul>
- <li><resource-ref idref="xslt4j-dist-bin-zip"/></li>
- <li><resource-ref idref="xslt4j-dist-bin-targz"/></li>
- </ul>
- <p>To get the &xslt4j; sources (with which you can do your own &xslt4j;
build; see <link idref="readme" anchor="build">Build notes</link>), download
and unzip either of the following:</p>
- <ul>
- <li><resource-ref idref="xslt4j-dist-src-zip"/></li>
- <li><resource-ref idref="xslt4j-dist-src-targz"/></li>
- </ul>
- <p>To access previous releases, see the <resource-ref
idref="xslt4j-distdir-previous"/>.</p>
- </s2>
+<ul>
+ <li><link anchor="whatisit">What is it?</link></li>
+ <li><link anchor="current">How about this release?</link></li>
+ <li><link anchor="moreinfo">For more information...</link></li>
+ <li><link anchor="license">License</link></li>
+</ul>
+<!--note>A later Developer release has been posted in the <resource-ref
idref="xslt4j-distdir"/>.
+ For the changes that have occurred since &xslt4j-current;, consult
the [EMAIL PROTECTED]
+ mailing list, or download the release and consult the release
notes.</note-->
+
+<anchor name="whatisit"/>
+<s2 title="What is it?">
+ <p>&xslt4j; is an XSLT processor for transforming XML documents into
+ HTML, text, or other XML document types. It implements <resource-ref
idref="xslt"/> and
+ <resource-ref idref="xpath"/>. It can be used from the command line,
in an applet or a
+ servlet, or as a module in other program.</p>
+ <p>&xslt4j; recasts &xslt; as an implementation of the <link
idref="trax">
+ Transformation API for XML (TRaX)</link> interfaces, part of the
<resource-ref idref="jaxp12"/>.
+ TRaX provides a modular framework and a standard API for performing
XML transformations, and
+ it utilizes system properties to determine which Transformer and
which XML parser to use.</p>
+ <p>&xslt4j; also builds on <resource-ref idref="sax2"/> and
<resource-ref idref="dom2"/>.</p>
- <s2 title="Where do I get Xerces?">
- <p>The &xslt4j; download includes &xml4j-jar; from &xml4j-used;. In
conjunction with xml-apis.jar, this is all you need to run &xslt4j; with
- the &xml4j; XML parser. You can, however, download the complete &xml4j;
binary or source distribution from the
- <resource-ref idref="xml4j-distdir"/>.</p>
- <note>If you plan to use a different XML parser, see <link
idref="usagepatterns" anchor="plug">Plugging in a Transformer
- and XML parser</link>.</note>
- </s2>
- <s2 title="What else do I need?">
- <p>You need the Java Development Kit or Java Runtime 1.2.2, or 1.3.x,
which you can obtain from <jump
- href="http://www.ibm.com/java/jdk">ibm.com/java/jdk/</jump> or <jump
href="http://www.java.sun.com">java.sun.com</jump>.</p>
- </s2>
- <s2 title="For more information...">
- <p>For more information, go to <link idref="overview">&xslt4j;
Overview</link> and <link idref="getstarted">Getting
- Started</link>. All of the &xslt4j; documentation on this website is
included in the &xslt4j; download, as are a number of
- <link idref="samples">Samples</link> to help you start using &xslt4j2;
to transform XML documents.</p>
- </s2>
-</s1>
\ No newline at end of file
+ <p>For more information, see <link idref="whatsnew">What's new in
&xslt4j2;</link>.</p>
+ <note>&xslt4j; version 1 is no longer supported and no longer available
from xml.apache.org.</note>
+</s2>
+
+<anchor name="current"/>
+<s2 title="How about this release?">
+ <p>&xslt4j-current; is a developer release that works with &xml4j;. The
distribution includes
+ xercesImpl.jar from &xml4j-used;.</p>
+ <p>Support for the &xslt4j; release 1 API, which predates the design of
the JAXP 1.2/TrAX interfaces,
+ has been dropped.</p>
+ <p>The &xslt4j; implementation is in xalan.jar. The SAX, DOM, and JAVAX
interfaces are in xml-apis.jar.
+ These interfaces are shared by a number of tools (&xslt4j;, &xml4j;,
etc.), so placing them in a
+ separate JAR simplifies coordination and reduces risk of duplication.
+ <em>Be sure to put both JAR files (and xercesImpl.jar or another JAXP
1.2-compliant XML parser) on
+ your classpath!</em></p>
+</s2>
+
+<anchor name="moreinfo"/>
+<s2 title="For more information...">
+ <p>For more information, go to <link idref="overview">&xslt4j;
Overview</link>,
+ <link idref="downloads">&xslt4j; Downloads</link>, <link
idref="getstarted">Getting Started
+ with Interpretive Processing</link> and <link idref="xsltc_usage">Getting
Started with &xslt4jc-short;</link>.
+ All of the &xslt4j; documentation on this website is included in the
&xslt4j; download, as are a number of
+ <link idref="samples">Samples</link> to help you start using &xslt4j; to
transform XML documents.</p>
+</s2>
+
+<anchor name="license"/>
+<s2 title="The Apache Software License, Version 1.1">
+ <p>Copyright (c) 1999-2003 The Apache Software Foundation. All rights
reserved.</p>
+
+ <p>Redistribution and use in source and binary forms, with or without
modification, are
+ permitted provided that the following conditions are met:</p>
+ <ol>
+ <li>Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.</li>
+
+ <li>Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.</li>
+
+ <li>The end-user documentation included with the redistribution,
+ if any, must include the following acknowledgment:
+ "This product includes software developed by the
+ Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself,
+ if and wherever such third-party acknowledgments normally
appear.</li>
+
+ <li>The names "Xalan" and "Apache Software Foundation" must
+ not be used to endorse or promote products derived from this
+ software without prior written permission. For written
+ permission, please contact [EMAIL PROTECTED]</li>
+
+ <li>Products derived from this software may not be called "Apache",
+ nor may "Apache" appear in their name, without prior written
+ permission of the Apache Software Foundation.</li>
+ </ol>
+ <p>THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.</p>
+<p> ====================================================================</p>
+
+ <p>This software consists of voluntary contributions made by many
+ individuals on behalf of the Apache Software Foundation and was
+ originally based on software copyright (c) 1999, Lotus
+ Development Corporation., http://www.lotus.com. For more
+ information on the Apache Software Foundation, please see
+ <http://www.apache.org/>.</p>
+</s2>
+
+<s2 title="Other licenses">
+ <p>For the licences that apply to the JARs other than xalan.jar, see the
LICENSE and
+ associated readme files in the root directory of this distribution.</p>
+</s2>
+</s1>
\ No newline at end of file
1.33 +246 -361 xml-xalan/java/xdocs/sources/xalan/xsltc_usage.xml
Index: xsltc_usage.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/xsltc_usage.xml,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- xsltc_usage.xml 27 Jan 2003 18:45:36 -0000 1.32
+++ xsltc_usage.xml 21 Feb 2003 20:10:08 -0000 1.33
@@ -56,34 +56,38 @@
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
-->
-<s1 title="Using XSLTC">
+<s1 title="Getting Started with &xslt4jc-short;">
<ul>
<li><link anchor="intro">Introduction</link></li>
- <li><link anchor="classpath">Setting the system classpath for
XSLTC</link></li>
+ <li><link anchor="classpath">Setting the system classpath for
&xslt4jc-short;</link></li>
<li><link anchor="compile">Compiling translets from the command
line</link></li>
<li><link anchor="run">Running translets from the command line</link></li>
- <li><link anchor="api">Calling XSLTC with the TrAX/JAXP API</link></li>
+ <li><link anchor="api">Calling &xslt4jc-short; with the TrAX/JAXP
API</link></li>
<li><link anchor="xsltcsmart">Smart Transformer Switch</link></li>
- <li><link anchor="native_api">Calling XSLTC with the native API</link></li>
+ <li><link anchor="native_api">Calling &xslt4jc-short; with the native
API</link></li>
<li><link anchor="constraints">Usage constraints</link></li>
<li><link idref="samples" anchor="translets">Sample translets</link></li>
- <li><link idref="extensions_xsltc">Extensions for XSLTC</link></li>
+ <li><link idref="extensions_xsltc">Extensions for
&xslt4jc-short;</link></li>
</ul>
-<p>See also: <jump href="xsltc/index.html">XSLTC Design</jump></p>
+<p>See also: <jump href="xsltc/index.html">&xslt4jc-short; Design</jump></p>
+<note>Unless otherwise specified, the usage discussed in this section refers
to
+the &xslt4j; Compiling processor, XSLTC. See <link
idref="usagepatterns">Basic Usage
+Patterns</link> for information on using the &xslt4j; Interpretive
processor.</note><br></br>
<anchor name="intro"/>
<s2 title="Introduction">
-<p>XSLTC provides a compiler and a runtime processor.
-Use the compiler to compile an XSL stylesheet into a translet (i.e. a set of
Java
-classes). Use the runtime processor to apply the translet to an XML document
and
-perform a transformation.</p>
-<note>To compile and run translets you must have a JDK or a JRE 1.2 or
higher.</note>
+<p>The &xslt4jc-long; processor provides a compiler and a runtime processor.
+Use the compiler to compile an XSL stylesheet into a translet (i.e., a set of
+Java classes). Use the runtime processor to apply the translet to an XML
+document and perform a transformation.</p>
+<note>To compile and run translets, you must have a JDK or a JRE 1.2 or
+higher.</note>
</s2><anchor name="classpath"/>
-<s2 title="Setting the system classpath for XSLTC">
+<s2 title="Setting the system classpath for &xslt4jc-short;">
<p>
-The jar file structure of the XSLTC component has changed. In the original
-structure the xsltc.jar file contained only XSLTC classes, and the
+The jar file structure of the &xslt4jc-short; component has changed. In the
original
+structure the xsltc.jar file contained only &xslt4jc-short; classes, and the
other support jar files needed to be in the user's class path.
If you want to use this model refer to the subsection below
'Unbundled System Classpath'. In the newer model, all of the support
@@ -100,15 +104,21 @@
No need to mention the others (BCEL.jar, JLex.jar, regexp.jar, java_cup.jar,
runtime.jar).
</p>
-<note>In order to compile and run translets you must have a JAXP-compliant
XML parser
-installed. Our distribution
-includes<jump href="http://xml.apache.org/xerces2-j/index.html">Xerces</jump>
+<note>In order to compile and run translets you must have a JAXP 1.2
compliant XML
+parser installed. Our distribution includes
+<jump href="http://xml.apache.org/xerces2-j/index.html">Xerces</jump>
(just include xercesImpl.jar and xml-apis.jar in your class path).
</note>
</s3>
<s3 title="Unbundled System Classpath">
-<p>To compile translets, run translets, and use the XSLTC API, put the
following on the system classpath:</p>
+<p>The binary distribution contains a bundled xsltc.jar which contains all
+of the support classes in a single jar. To use the unbundled approach,
rebuild
+the xsltc.jar file using the xsltc.unbundledjar target. The support jars
that
+you'll need to add to your classpath are available in the Xalan Java bin
+directory.</p>
+<p>To compile translets, run translets, and use the &xslt4jc-short; API,
using
+the unbundled jar approach, put the following on the system classpath:</p>
<table>
<tr>
<th>Classes or JAR</th>
@@ -152,8 +162,8 @@
</tr>
</table>
<p>The JAR files listed above are installed in the &xslt4j; bin directory.
-The translet is the set of class files or the JAR file that you generate
with the
-compiler; see <link anchor="compile">Compiling translets</link>.</p>
+The translet is the set of class files or the JAR file that you generate with
+the compiler; see <link anchor="compile">Compiling translets</link>.</p>
</s3>
<anchor name="compile"/>
<s2 title="Compiling translets from the command line">
@@ -162,15 +172,18 @@
<li><link anchor="comp-args">Flags and arguments</link></li>
<li><link anchor="comp-examples">Examples</link></li>
</ul>
- <p>The XSLT Compiler is a Java-based tool for compiling XSLT
- stylesheets into lightweight and portable Java byte codes
- called translets.</p>
+ <p>The XSLT Compiler is a Java-based tool for compiling XSLT
+ stylesheets into lightweight and portable Java byte codes
+ called translets.</p>
<p>To run the compiler from the command line or from a script,
<link anchor="classpath">set the classpath</link> and
- run the class org.apache.xalan.xsltc.cmdline.Compile. The synopsis
- of the options and arguments accepted by this class is shown below.
+ run the class <code>org.apache.xalan.xsltc.cmdline.Compile</code>. The
+ synopsis of the options and arguments accepted by this class is shown
below.
</p>
+ <note>You can also use the
+ <jump href="commandline.html">&xslt4j; command-line utility</jump>, to
+ compile or run XSLTC translets.</note>
<anchor name="comp-synopsis"/>
<s3 title="Synopsis">
<p>
@@ -181,16 +194,16 @@
</s3><anchor name="comp-args"/>
<s3 title="Flags and arguments">
- <p>The following flags and arguments are supported:</p>
+ <p>The following flags and arguments are supported:</p>
<source>-o <output>
Specifies the name of the generated translet class.
If you omit this argument, the translet class is
- named <stylesheet>. Translets are written as
+ named <stylesheet>. Translets are written as
.class files.
-d <directory>
- Specifies the destination directory. If you omit
+ Specifies the destination directory. If you omit
this argument, the translet class files are placed
in the current working directory.
@@ -216,7 +229,7 @@
<stylesheet>
(No flag) The pathname of the stylesheet file.
--i Force input to be read from stdin
+-i Force stylesheet to be read from stdin
-v Prints version of compiler
@@ -224,36 +237,40 @@
</s3><anchor name="comp-examples"/>
<s3 title="Examples">
- <p>The following examples assume that you have already set the
classpath to include the translet and the required JAR
+ <p>The following examples assume that you have already set the
+ classpath to include the translet and the required JAR
files (see <link anchor="classpath">setting the system
classpath</link>).</p>
- <p><em>Example 1:</em> Creating a translet from the hamlet.xsl
stylesheet.</p>
- <p><code>java org.apache.xalan.xsltc.cmdline.Compile</code><br/>
+ <p><em>Example 1:</em> Creating a translet from the hamlet.xsl
+ stylesheet.</p>
+ <p><code>java org.apache.xalan.xsltc.cmdline.Compile</code><br/>
<code> hamlet.xsl</code></p>
- <p>Example 1 produces a set of class files such as hamlet.class,
hamlet$0.class, hamlet$1.class.</p>
+ <p>Example 1 produces a set of class files such as hamlet.class,
hamlet$0.class, hamlet$1.class.</p>
- <p><em>Example 2:</em> Outputting to a JAR file.</p>
+ <p><em>Example 2:</em> Outputting to a JAR file.</p>
<p><code>java org.apache.xalan.xsltc.cmdline.Compile</code><br/>
<code> -j hamlet.jar hamlet.xsl</code></p>
- <p>Example 2 produces hamlet.jar, which contains the translet class
files.</p>
+ <p>Example 2 produces hamlet.jar, which contains the translet class
+ files.</p>
- <p><em>Example 3:</em> Specifying the translet class name. </p>
- <p><code>java org.apache.xalan.xsltc.cmdline.Compile</code><br/>
+ <p><em>Example 3:</em> Specifying the translet class name. </p>
+ <p><code>java org.apache.xalan.xsltc.cmdline.Compile</code><br/>
<code> -o newhamlet hamlet.xsl</code></p>
- <p>Example 3 producs a set of class files such as newhamlet.class,
newhamlet$0.class, etc., rather than hamlet.class,
- hamles$0.class, etc.</p>
+ <p>Example 3 produces a set of class files such as newhamlet.class,
+ newhamlet$0.class, etc., rather than hamlet.class, hamlet$0.class,
+ etc.</p>
- <p><em>Example 4:</em> Compiling multiple stylesheets.</p>
- <p><code>java org.apache.xalan.xsltc.cmdline.Compile</code><br/>
+ <p><em>Example 4:</em> Compiling multiple stylesheets.</p>
+ <p><code>java org.apache.xalan.xsltc.cmdline.Compile</code><br/>
<code> hamlet1.xsl hamlet2.xsl
hamlet3.xsl</code></p>
<p>Example 4 produces three translets and set of class files derived
from the three stylesheets.</p>
- <p><em>Example 5:</em> Package Specification.</p>
- <p><code>java org.apache.xalan.xsltc.cmdline.Compile</code><br/>
+ <p><em>Example 5:</em> Package Specification.</p>
+ <p><code>java org.apache.xalan.xsltc.cmdline.Compile</code><br/>
<code> -p com.mycompany.translets
hamlet.xsl</code></p>
<p>Example 5 produces a set of class files such as
com/mycompany/translets/hamlet.class,
- com/mycompany/translets/hamlet$0.class', etc.</p>
+ com/mycompany/translets/hamlet$0.class', etc.</p>
</s3>
</s2><anchor name="run"/>
<s2 title="Running translets from the command line">
@@ -263,17 +280,23 @@
<li><link anchor="run-examples">Examples</link></li>
</ul>
- <p>The XSLT runtime processor is a Java-based tool for
- transforming XML document files using a translet (compiled
- stylesheet). </p>
-
- <p>The XSLT processor can be run on any platform including UNIX,
- Windows, NT, Mac that supports Java, including a Palm Pilot
- with J2ME CLDC (Java 2 Micro Edition, Connected Limited Device
- Configuration).</p>
-
- <p>To run a translet from the command line or a script, <link
anchor="classpath">set the classpath</link> (be sure to include
- the translet) and run the translet with the appropriate flags and
arguments (described below).</p>
+ <p>The XSLTC runtime processor is a Java-based tool for
+ transforming XML document files using a translet (compiled
+ stylesheet). </p>
+
+ <p>The XSLTC processor can be run on any platform including UNIX,
+ Windows, NT, Mac that supports Java, including a Palm Pilot
+ with J2ME CLDC (Java 2 Micro Edition, Connected Limited Device
+ Configuration).</p>
+
+ <p>To run a translet from the command line or a script,
+ <link anchor="classpath">set the classpath</link> (be sure to include
+ the translet) and run the translet with the appropriate flags and
arguments
+ (described below).</p>
+
+ <note>You can also use the
+ <jump href="commandline.html">&xslt4j; Command-line Utility</jump>, to
+ compile or run XSLTC translets.</note>
<anchor name="run-synopsis"/>
<s3 title="Synopsis">
<p><code>java org.apache.xalan.xsltc.cmdline.Transform</code><br/>
@@ -283,7 +306,7 @@
</s3><anchor name="run-args"/>
<s3 title="Flags and arguments">
- <p>The following flags and arguments are supported:</p>
+ <p>The following flags and arguments are supported:</p>
<source>
@@ -294,14 +317,14 @@
-s Disables calling System.exit
-u Specifies the XML input <document> with a URI,
- such as 'http://myserver/hamlet.xml'.
+ such as 'http://myserver/hamlet.xml'.
-Arguments wirhout flags:
+Arguments without flags:
- <document>
+ <document>
Filename of the XML input document.
- <document_url>
+ <document_url>
URI of the XML input document (see the -u flag above).
<class>
@@ -312,7 +335,7 @@
</s3><anchor name="run-examples"/>
<s3 title="Examples">
- <p>The following examples assume that you have already set the
classpath to include the translet and the required JAR
+ <p>The following examples assume that you have already set the classpath
to include the translet and the required JAR
files (see <link anchor="classpath">setting the system
classpath</link>).</p>
<p>A possible variation: You have set the classpath to include the
required JAR files, but when you run the translet,
you use the java -cp flag to add the current working directory
(containing the translet class files you have just generated)
@@ -322,49 +345,155 @@
<p><em>Example 1:</em> Processing an XML document.</p>
- <p><code>java org.apache.xalan.xsltc.cmdline.Transform</code><br/>
+ <p><code>java org.apache.xalan.xsltc.cmdline.Transform</code><br/>
<code> hamlet.xml hamlet</code></p>
- <p>Example 1 uses the specified translet (hamlet) to transform the
specified XML input document (hamlet.xml).
+ <p>Example 1 uses the specified translet (hamlet) to transform the
specified XML input document (hamlet.xml).
The XML input document is in the current working directory. The translet
was created by using
org.apache.xalan.xslt.cmdline.Compile to compile an XSL stylesheet
(hamlet.xsl). </p>
- <p><em>Example 2:</em> Passing stylesheet parameters to the
translet.</p>
+ <p><em>Example 2:</em> Passing stylesheet parameters to the translet.</p>
- <p><code>java org.apache.xalan.xsltc.cmdline.Transform</code><br/>
+ <p><code>java org.apache.xalan.xsltc.cmdline.Transform</code><br/>
<code> hamlet.xml hamlet</code><br/>
<code> speaker=HAMLET 'scene=SCENE
IV'</code></p>
- <p>Example 2 passes "HAMLET" to the stylesheet for the stylesheet
parameter named speaker, and "SCENE IV" for the
+ <p>Example 2 passes "HAMLET" to the stylesheet for the stylesheet
parameter named speaker, and "SCENE IV" for the
stylesheet parameter named scene. The second name-value pair was placed
in single quotes to
specify a value containing a space.</p>
<p><em>Example 3:</em> Processing an XML input document specified with a
URI.</p>
- <p><code>java org.apache.xalan.xsltc.cmdline.Transform</code><br/>
+ <p><code>java org.apache.xalan.xsltc.cmdline.Transform</code><br/>
<code> -u http://zarya.east/test.xml
hamlet</code></p>
- <p>Example 3 applies the translet (hamlet) to the XML input document
(http://zarya.east/test.xml hamlet). Inclusion of
+ <p>Example 3 applies the translet (hamlet) to the XML input document
(http://zarya.east/test.xml hamlet). Inclusion of
the flag (-u) is optional.</p>
</s3>
</s2><anchor name="api"/>
<s2 title="Calling XSLTC with the TrAX/JAXP API">
-<p>XSLTC translets are integrated with the TrAX/JAXP 1.1 API. See <jump
href="xsltc/xsltc_trax.html">The Translet API & TrAX</jump>. Accordingly,
it is now possible to set a system property and use a TransformerFactory to
generate a Transformer that performs a transformation by compiling and running
a translet.</p>
+<ul>
+<li><link anchor="api-attributes">XSLTC TransformerFactory
attributes</link></li>
+<li><link anchor="api-examples">Examples</link></li>
+</ul>
+<p>XSLTC translets are integrated with the TrAX/JAXP 1.2 API. See <jump
href="xsltc/xsltc_trax.html">The Translet API & TrAX</jump>. Accordingly,
it is now possible to set a system property and use a TransformerFactory to
generate a Transformer that performs a transformation by compiling and running
a translet.</p>
+<p>When you use the JAXP 1.2 API to run &xslt4j;, the
+<code>javax.xml.transform.TransformerFactory</code> system property is set to
+<code>org.apache.xalan.processor.TransformerFactoryImpl</code>. As it
currently
+stands, this &xslt4j; implementation of TransformerFactory always uses the
&xslt4j;
+Interpretive processor to perform transformations. To use translets to
perform
+transformations, set this system property to
+<code>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</code>. For
+information on setting this and related system properties designating XML
+parsers and XSL transformers, see
+<link idref="usagepatterns" anchor="plug">Plugging in a Transformer and XML
+parser</link>.</p>
-<p>When you use the JAXP 1.1 API to run &xslt4j;, the
<code>javax.xml.transform.TransformerFactory</code> system property is set to
<code>org.apache.xalan.processor.TransformerFactoryImpl</code>. As it currently
stands, this Xalan implementation of TransformerFactory always uses the Xalan
Transformer to perform transformations. To use translets to perform
transformations, set this system property to
<code>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</code>. For
information on setting this and related system properties designating XML
parsere and XSL transformer, see <link idref="usagepatterns"
anchor="plug">Plugging in a Transformer and XML parser</link>.</p>
-<p>To Use the JAXP 1.1 API to perform transformations with translets do the
following:</p>
+<p>To use the JAXP 1.2 API to perform transformations with translets do the
+ following:</p>
<ol>
- <li>Set the <code>javax.xml.transform.TransformerFactory</code> system
property as indicated above.<br/><br/></li>
- <li>Instantiate a TransformerFactory.<br/><br/></li>
- <li>Assuming you want to perform a series of transformations with the same
translet, use the TransformerFactory and a
- StreamSource XSL stylesheet to generate a Templates object (the
translet). If you are performing a single
- transformation, use the TransformerFactory and the StreamSource object to
instantiate a Transformer.<br/><br/></li>
- <li>Perform the transformation, using a StreamSource object for the XML
input and a StreamResult object to hold the
- transformation output.</li>
+ <li>Set the <code>javax.xml.transform.TransformerFactory</code> system
+ property as indicated above.<br/><br/></li>
+ <li>Instantiate a <code>TransformerFactory</code>.<br/><br/></li>
+ <li>Instantiate a <code>Transformer</code> object either directly from
+ the <code>TransformerFactory</code> or through a <code>Templates</code>
+ object. A <code>Transformer</code> is a processed instance of a
+ stylesheet (a translet) that can be used to perform a
+ transformation. See below for more information on when you should use
+ a <code>Templates</code> object.<br/><br/></li>
+ <li>Perform the transformation, using a StreamSource object for the XML
+ input and a StreamResult object to hold the transformation output.</li>
</ol>
+<p>Both a <code>Templates</code> object and a <code>Tranformer</code> object
are
+ processed representations of a stylesheet, but you cannot use a
+ <code>Templates</code> object to perform transformations. Instead,
+ you can use a <code>Templates</code> object to create new
+ <code>Transformer</code> instances, without having to reprocess the
+ stylesheet each time. You can use a <code>TransformerFactory</code> to
+ generate a <code>Templates</code> object or a <code>Transformer</code>
+ object directly. You can use a <code>Transformer</code> more than once,
+ but you cannot use it concurrently on more than one thread. If you need
+ to use the same stylesheet to perform transformations on more than one
+ thread at the same time, use a <code>Templates</code> object and create
+ as many <code>Transformer</code> objects as you require.</p>
+
+<p>XSLTC also defines a set of attributes that you can set on the
+<code>TransformerFactory</code> in order to save and subsequently use those
+translets by way of the JAXP Transform API - without having to recompile the
+stylesheet each time.</p><anchor name="api-attributes"/>
+<s3 title="&xslt4jc-short; TransformerFactory attributes">
+The JAXP Transform API defines a <code><jump
href="apidocs/javax/xml/transform/TransformerFactory.html#setAttribute(java.lang.String,
java.lang.Object)">TransformerFactory.setAttribute</jump>
+</code> method that you can use to set implementation-defined attributes.
+<table>
+<tr>
+ <th>Attribute</th><th>Purpose</th>
+ <th>Type of value</th><th>Default value</th>
+</tr>
+<tr>
+ <td>translet-name</td>
+ <td>Specifies the name of the translet</td>
+ <td>String</td>
+ <td>"GregorSamsa"</td>
+</tr>
+<tr>
+ <td>destination-directory</td>
+ <td>Specifies where to save translet class files</td>
+ <td>String</td>
+ <td>null</td>
+</tr>
+<tr>
+ <td>package-name</td>
+ <td>Specifies which package translet class files will be in</td>
+ <td>String</td>
+ <td>null</td>
+</tr>
+<tr>
+ <td>jar-name</td>
+ <td>Specifies the name of a jar file in which translets should be
saved</td>
+ <td>String</td>
+ <td>null</td>
+</tr>
+<tr>
+ <td>generate-translet</td>
+ <td>Specifies whether translet class files should be generated</td>
+ <td>Boolean</td>
+ <td>Boolean.FALSE</td>
+</tr>
+<tr>
+ <td>auto-translet</td>
+ <td>Specifies that time-stamp of translet file, if any, should be compared
with that of stylesheet to decide whether to recompile the stylesheet</td>
+ <td>Boolean</td>
+ <td>Boolean.FALSE</td>
+</tr>
+<tr>
+ <td>use-classpath</td>
+ <td>Specifies that precompiled translet classes should be looked up from
the classpath when a new transformer or templates is created</td>
+ <td>Boolean</td>
+ <td>Boolean.FALSE</td>
+</tr>
+<tr>
+ <td>enable-inlining</td>
+ <td>Specifies whether methods that represent templates should be inlined.
See <link anchor="constraints">Usage constraints</link></td>
+ <td>Boolean</td>
+ <td>Boolean.FALSE</td>
+</tr>
+<tr>
+ <td>debug</td>
+ <td>Enables debugging messages</td>
+ <td>Boolean</td>
+ <td>Boolean.FALSE</td>
+</tr>
+</table>
+<p>The <code>translet-name</code>, <code>destination-directory</code>,
+<code>package-name</code> and <code>jar-name</code> attributes are transient.
+They only apply to the next invocation of either the
<code>newTemplates</code>
+or the <code>newTransformer</code> method on that
+<code>TransformerFactory</code>.</p>
+</s3><anchor name="api-examples"/>
<s3 title="Examples">
-<p><em>Example 1:</em> Using a translet/Templates object for multiple
transformations</p>
+<p><em>Example 1:</em> Using a translet/Templates object for multiple
+concurrent transformations</p>
<source>import java.util.Properties;
import javax.xml.transform.Transformer;
import java.io.FileOutputStream;
@@ -382,19 +511,23 @@
System.setProperties(props);
...
String xslInURI;
-// Instantiate the TransformerFactory, and use it along with a SteamSource
+// Instantiate the TransformerFactory, and use it with a StreamSource
// XSL stylesheet to create a translet as a Templates object.
TransformerFactory tFactory = TransformerFactory.newInstance();
Templates translet = tFactory.newTemplates(new StreamSource(xslInURI));
...
String xmlInURI;
String htmlOutURI;
+String xmlInURI2;
+String htmlOutURI2;
...
-// For each transformation, instantiate a new Transformer, and perform
-// the transformation from a StreamSource to a StreamResult;
+// For each thread, instantiate a new Transformer, and perform the
+// transformations on that thread from a StreamSource to a StreamResult;
Transformer transformer = translet.newTransformer();
transformer.transform(new StreamSource(xmlInURI),
- new StreamResult(new FileOutputStream(htmlOutURI)));
+ new StreamResult(new FileOutputStream(htmlOutURI)));
+transformer.transform(new StreamSource(xmlInURI2),
+ new StreamResult(new FileOutputStream(htmlOutURI2)));
...</source>
<p>For a working sample that illustrates this usage pattern, see <link
idref="samples" anchor="xsltc1">JAXPTransletOneTransformation</link>.</p>
<p><em>Example 2:</em> Compiling a translet/Templates object for a single
transformation</p>
@@ -415,293 +548,44 @@
...
String xslInURI;
String xmlInURI;
+String xmlInURI2;
String htmlOutURI;
-// Instantiate the TransformerFactory, and use it along with a SteamSource
+String htmlOutURI2;
+// Instantiate the TransformerFactory, and use it along with a StreamSource
// XSL stylesheet to create a Transformer.
TransformerFactory tFactory = TransformerFactory.newInstance();
-Transformer transformer = tFactory.newTransformer(new
StreamSource(xslInURI));
+Transformer transformer =
+ tFactory.newTransformer(new StreamSource(xslInURI));
// Perform the transformation from a StreamSource to a StreamResult;
transformer.transform(new StreamSource(xmlInURI),
- new StreamResult(new
FileOutputStream(htmlOutURI)));</source>
+ new StreamResult(new FileOutputStream(htmlOutURI)));
+// Re-use the same transformer for a second transformation
+transformer.transform(new StreamSource(xmlInURI2),
+ new StreamResult(new
FileOutputStream(htmlOutURI2)));</source>
<p>For a working sample that illustrates this usage pattern, see <link
idref="samples" anchor="xsltc2">JAXPTransletMultipleTransformations</link>.</p>
</s3>
</s2>
<anchor name="xsltcsmart"/>
<s2 title="Smart Transformer Switch">
-<p>As part of the TrAX API, a "Smart Transformer Switch" enables
automatic switching between Xalan and XSLTC
-processors within your application. It uses Xalan to create your
- <code>Transformer</code> objects, and uses XSLTC to create your
<code>Templates</code> objects.</p>
+<p>As part of the TrAX API, a "Smart Transformer Switch" enables
automatic switching
+between the Interpretive and the Compiling processors within your
application. It uses the Interpretive
+processor to create your <code>Transformer</code> objects, and uses
&xslt4jc-short; to create your
+<code>Templates</code> objects.</p>
<p>To use the switch, you set the TrAX system property,
-<code>javax.xml.transform.TransformerFactory</code>, to
<code>org.apache.xalan.xsltc.trax.SmartTransformerFactoryImpl</code>.
-For one-time transformations or transformations that require extensions
supported by Xalan, and not XSLTC,
-you would use Transformer objects. For a repeated transformation where
performance is critical, you would
-use Templates objects.</p>
+<code>javax.xml.transform.TransformerFactory</code>, to
+<code>org.apache.xalan.xsltc.trax.SmartTransformerFactoryImpl</code>.
+For one-time transformations or transformations that require extensions
+supported by the Interpretive processor, and not XSLTC, you would use the
+<code>SmartTransformerFactoryImpl</code> to create <code>Transformer</code>
+objects. For a repeated transformation where performance is critical, you
would
+create a <code>Templates</code> object from which you would create your
+<code>Transformer</code> objects.</p>
</s2>
<anchor name="native_api"/>
-<s2 title="Calling XSLTC with the native API">
-<p>This section demonstrates how to use the native XSLTC API in a standalone
Java application.</p>
-<note>Using XSLTC with the native API is not supported. Applications using
the native API may break when the
-underlying implementation changes in the future.</note>
-<p>Processing an XML document with a translet involves three main steps:</p>
-<ol>
- <li><link anchor="native_compile">Compile the stylesheet to a
translet</link>.</li>
- <li><link anchor="native_parse">Parse the input XML document</link>.</li>
- <li><link anchor="native_transform">Use the translet to transform the XML
document</link>.</li>
-</ol><anchor name="native_overview"/>
-<s3 title="Code overview">
-<p>XsltApp.java illustrates the basic structure for coding a transformation
with the native XSLTC API. In the following listing, the method for performing
each of the three steps is an empty shell. The methods are filled in the
listings in subsequent sections.</p>
-<source>import org.apache.xalan.xsltc.Translet;
-import org.apache.xalan.xsltc.dom.DOMImpl;
-
-public class XsltApp {
- public static void main(String[] args) {
- XsltApp proc = new XsltApp();
- proc.run(args);
- }
-
- public void run(String[] args) {
- if (args.length != 2) {
- System.err.println("Usage:\n\tprocessor <xmlfile>
<xslfile>" +
- "\n\n\twhere <xmlfile> = xml input filename, and" +
- "\n\t <xslfile> = stylesheet filename.");
- System.exit(1);
- }
- String xmldocFilename = args[0];
- String stylesheetFilename = args[1];
-
- // Compile the stylesheet to a translet
- Translet translet = compileStylesheet(stylesheetFilename);
-
- // Parse the input XML document
- DOMImpl dom = getDOM(xmldocFilename);
-
- // Transform the XML document against the translet
- doTransform(translet, dom);
- System.exit(0);
- }
-
- // compile the stylesheet [Empty shell: see below]
- private Translet compileStylesheet(String stylesheetName) { return null; }
-
- // parse the input XML document [Empty shell: see below]
- private DOMImpl getDOM(String xmldocname) { return null; }
-
- // transform the XML document [Empty shell: see below]
- private void doTransform(Translet translet, DOMImpl dom) { }
-}</source>
-
-<p>XsltApp takes two command line arguments: the input XML document
filename, and the
-XSL stylesheet filename. The public run() method processes the commandline
args,
-and then carries out the three steps.</p>
-<p>The first step is accomplished by calling the compileStylesheet() method.
This method
-takes the stylesheet filename as input (String), and returns an instance
-of the translet, as type org.apache.xalan.xsltc.Translet.</p>
-
-<p>The input XML document now needs to be parsed. This is accomplished by
the getDOM() method. This method takes the XML document's filename (String)
-and returns the Document Object Model for the document, as an object of
-type org.apache.xalan.xsltc.dom.DOMImpl. </p>
-
-<p>Finally, the transformation prescribed by the stylesheet is carried out by
-calling the doTransform() method. This method takes the translet (compiled
-stylesheet) and the dom (Document Object Model for the XML document) as
-input parameters. In this example, the results of the transformation are
-output to standard output, so this method returns nothing. </p>
-
-<p>If all three steps are carried out successfully, the application exits
with
-a successful (zero) value.</p>
-
-<p>The following sections examine each of the three steps in detail.</p>
-</s3><anchor name="native_compile"/>
-<s3 title="1. Compiling the Stylesheet to a Translet">
-<p>The 'compileStylesheet' method:</p>
-
-<source>import java.io.File;
-import java.net.MalformedURLException;
-import org.apache.xalan.xsltc.compiler.XSLTC;
-...
- private Translet compileStylesheet(String stylesheetName) {
- Translet retval = null;
- String transletName = stylesheetName.substring(0,
- stylesheetName.indexOf('.'));
- try {
- XSLTC xsltc = new XSLTC();
- xsltc.init();
- File stylesheet = new File(stylesheetName);
- xsltc.compile(stylesheet.toURL());
- Class clazz = Class.forName(transletName);
- retval = (Translet)clazz.newInstance();
- }
- catch (MalformedURLException e) {
- System.err.println("Could not create URL to stylesheet file: " +
- stylesheetName + ".\n" + e.getMessage());
- System.exit(1);
- }
- catch (ClassNotFoundException e) {
- System.err.println("Could not find class file: " +
- transletName + ".class .\n" + e.getMessage());
- System.exit(1);
- }
- catch (InstantiationException e) {
- System.err.println("Could not instantiate class file: " +
- transletName + ".class .\n" + e.getMessage());
- System.exit(1);
- }
- catch (IllegalAccessException e) {
- System.err.println("Could not instantiate class file: " +
- transletName + ".class, illegal access.\n" + e.getMessage());
- System.exit(1);
- }
- return retval;
- }</source>
-
-<p>This method reads in the stylesheet file, compiles it to Java bytecodes
-(the translet), and then writes the bytecodes to the filesystem, as a
-series of .class files. Their base name is derived from the name of the
-stylesheet. </p>
-
-<p>The XSLT compiler object (org.apache.xalan.xsltc.compiler.XSLTC), is
created,
-initialized and then its compile() method is called passing in a URL
-to the stylesheet itself. Once the .class files have been written,
-the translet is instantiated using Java reflection to create the Class
-and then a new instance of the Class as 'retval' of type
-org.apache.xalan.xsltc.Translet. </p>
-
-<p>Notice all of the various exceptions that could be thrown in the process
-have been handled with explicit warning messages and a System.exit with a
non-zero return value.
-In your applications, you may want to handle these exceptions
differently.</p>
-
-</s3><anchor name="native_parse"/>
-<s3 title="2. Parsing the XML Document">
-
-<p>Parsing the input XML document is handled in the getDOM() method:</p>
-
-<source>import java.io.IOException;
-import javax.xml.parsers.SAXParserFactory;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.ParserConfigurationException;
-import org.apache.xalan.xsltc.compiler.Constants;
-import org.apache.xalan.xsltc.dom.DTDMonitor;
-import org.xml.sax.XMLReader;
-import org.xml.sax.SAXException;
-...
- private DTDMonitor _dtdMonitor = null;
-
- private DOMImpl getDOM(String xmldocname) {
- final SAXParserFactory factory = SAXParserFactory.newInstance();
- try {
- factory.setFeature(Constants.NAMESPACE_FEATURE, true);
- }
- catch (Exception e) {
- factory.setNamespaceAware(true);
- }
- final DOMImpl dom = new DOMImpl();
- dom.setDocumentURI(xmldocname);
- XMLReader reader = null;
- SAXParser parser = null;
- _dtdMonitor = new DTDMonitor();
- try {
- parser = factory.newSAXParser();
- reader = parser.getXMLReader();
- reader.setContentHandler(dom.getBuilder());
- _dtdMonitor.handleDTD(reader);
- reader.parse(xmldocname);
- }
- catch (ParserConfigurationException e) {
- System.err.println("SAX Parser is not configured properly.\n"+
- e.getMessage());
- System.exit(1);
- }
- catch (SAXException e ) {
- System.err.println("SAX Parser could not be created.\n"+
- e.getMessage());
- System.exit(1);
- }
- catch (IOException e ) {
- System.err.println("XML Reader could not read xml document '"+
- xmldocname + "'," + e.getMessage());
- System.exit(1);
- }
- return dom;
- }</source>
-
-<p>The method parses the input XML document and creates a Document
-Object Model to return to the run() method for later use. To parse the
-document we use a javax.xml.parsers.SAXParser, from the JAXP. The JAXP
-model uses a factory method; accordingly we first create the factory,
-which is of type javax.xml.parsers.SAXParserFactory. After configuring
-the factory to handle namespaces, the procedure gets an org.xml.sax.XMLReader
-from the SAXParser. The reader is registered
-with the class DTDMonitor, and then the reader is instructed to parse
-the XML document. The DOMImpl object is returned to the main() method.</p>
-
-<note>Before the document is parsed, the DOMImpl is configured with the
-XML document's URI with a call to the setDocumentURI() method. This
-is necessary to define the origin of the document from which the DOM tree
-is built. This information is needed for xsl:import, xsl:include, and
-the document() function.</note>
-</s3><anchor name="native_transform"/>
-<s3 title="3. Doing the Transformation">
-
-<p>Now everything is set to carry out the XSL transformation. The
doTransform()
-method takes a reference to the Translet object generated
-from the stylesheet, and the DOMImpl object created from the XML
document.</p>
-
-<source>import java.io.IOException;
-import org.apache.xalan.xsltc.runtime.DefaultSAXOutputHandler;
-import org.apache.xalan.xsltc.runtime.TextOutput;
-import org.apache.xalan.xsltc.runtime.AbstractTranslet;
-import org.apache.xalan.xsltc.TransletException;
-...
- private void doTransform(Translet translet, DOMImpl dom) {
- DefaultSAXOutputHandler outputhandlr = null;
- TextOutput textoutput = null;
- try {
- outputhandlr= new DefaultSAXOutputHandler(System.out, "utf-8");
- textoutput = new TextOutput(outputhandlr, "utf-8");
- }
- catch (IOException e) {
- System.err.println("Could not create SAX Output Handler."+
- e.getMessage());
- System.exit(1);
- }
-
- // for XSL keys
- AbstractTranslet absTranslet = (AbstractTranslet)translet;
- absTranslet.setIndexSize(dom.getSize());
- _dtdMonitor.buildIdIndex(dom, 0, absTranslet);
-
- try {
- absTranslet.transform(dom, textoutput);
- }
- catch (TransletException e) {
- System.err.println("Could not transform XML document."+
- e.getMessage());
- System.exit(1);
- }
- }</source>
-
-<p>The Translet's transform() method takes two arguments: the DOMImpl
-reference created in the getDOM() method, and an xsltc.runtime.TextOutput
-object. TextOutput is a ContentHandler wrapper class that implements the
-xsltc.TransletOutputHandler interface. In this example, the content
-handler (DefaultSAXOutputHandler) is wrapped.</p>
-
-<p>Translet is an interface. AbstractTranslet is a class that implements that
-interface. Before the transform() method is called, setIndexSize(int)
-is called to pass in the maximum DOM size to the translet and the DTDMonitor
-is called to build the node index that the Key (xsl:key implementation)
-class uses. This is a general case, if you are not using keys, then you
-do not need to set the index size, consequently you would not need to
-work with the AbstractTranslet either. In that case, you can use the
-Translet directly by calling translet.transform(dom, textoutput). </p>
-</s3><anchor name="native_conclusion"/>
-<s3 title="Conclusion">
-<p>The native XSLT compiler API provides a way to compile an XSL stylesheet
-into a translet. The translet can then be used to transform the DOMImpl
-of an input XML document. This example demonstrated how to compile a
-stylesheet into a translet, parse an input XML document, and then transform
-the XML document using the translet.</p>
-</s3></s2>
+<s2 title="Calling &xslt4jc-short; with the native API">
+<p>The &xslt4jc-short; Native API is no longer supported. Instead, you
should always
+use &xslt4jc-short; with the JAXP Transform API.</p>
+</s2>
<anchor name="constraints"/>
<s2 title="Usage constraints">
<ul>
@@ -712,7 +596,7 @@
<li>The default for template inlining has been changed. Previously,
by default, inlining (putting all the templates into one big method) was
on and
the <code>"-n"</code> option to the compile command line
disabled inlining.
- With inlining on, XSLTC can generate methods that are too long (<em>>
64K length</em>)
+ With inlining on, &xslt4jc-short; can generate methods that are too long
(<em>> 64K length</em>)
to run, or contain jump offsets that are too large for the JVM to
handle.
Now the default is not to inline templates. Instead, compilation creates
separate
methods for each template. Inlining was thought to improve performance,
@@ -721,11 +605,12 @@
to turn on inlining, or with TrAX set the "enable-inlining"
attribute to the TransformerFactory.
For example,
<source>TransformerFactory tfac = new TransformerFactory();
-tfac.setAttribute("enable-inlining",
Boolean.TRUE)</source><br/></li>
+tfac.setAttribute("enable-inlining",
Boolean.TRUE);</source><br/></li>
<li>XSLTC tries to determine the order in which global variables are
initialized
by tracking the dependencies between them. In some cases, the value of a
variable
- may depend on a template, e.g., if <code>xsl:call-template</code> is
used to initialized
- a variable whose type is RTF. If this happens, a NPE may be thrown at
runtime
+ may depend on a template, e.g., if <code>xsl:call-template</code> is
used to initialized
+ a variable whose type is RTF. If this happens, a
+ <code>NullPointerException</code> may be thrown at run-time
when the translet attempts to access a variable that has not been
properly
initialized. In most cases, this problem can be avoided by reordering
the
variable declarations.<br/></li>
1.89 +79 -22 xml-xalan/java/xdocs/sources/xalan/readme.xml
Index: readme.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/readme.xml,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -r1.88 -r1.89
--- readme.xml 20 Feb 2003 18:49:17 -0000 1.88
+++ readme.xml 21 Feb 2003 20:10:08 -0000 1.89
@@ -65,18 +65,72 @@
<li><link anchor="status0">Status</link></li>
<li><link anchor="build">Build distributions and notes</link></li>
<li><link anchor="contact">Getting in touch</link></li>
- <li><link idref="xsltc_usage" anchor="constraints">XSLTC usage
constraints</link></li>
<li><link idref="history">History of software changes</link></li>
</ul><anchor name="status0"/>
<s2 title="Status">
<ul>
- <li><link anchor="done">Changes since version 2.4.0</link></li>
+ <li><link anchor="done">Changes since version 2.4.1</link></li>
<li><link anchor="other">Other points of interest</link></li>
<li><link anchor="bugs">Bugs</link></li>
<li><link anchor="status">Version of &xml4j; to use</link></li>
<li><link anchor="developer-list">&xslt4j; developers</link></li>
</ul>
<anchor name="done"/>
+ <s3 title="Changes since &xslt4j; 2.4.1">
+ <p>This developer's release, Xalan-Java 2.5.D1, is primarily for the
purpose of releasing
+ various bug fixes to the community. These will eventually be
released officially in
+ a future Xalan-Java 2.5 version, along with some new function.</p>
+ <p>Fixes in this release include the following: </p>
+ <ul>
+ <li><jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4858">4858</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5140">5140</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6075">6075</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6157">6157</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10053">10053</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10626">10626</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12481">12481</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13414">13414</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13651">13651</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13774">13774</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13775">13775</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13977">13977</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14112">14112</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14148">14148</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14157">14157</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14178">14178</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14229">14229</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14236">14236</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14237">14237</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14241">14241</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14244">14244</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14300">14300</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14322">14322</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14324">14324</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14365">14365</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14368">14368</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14406">14406</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14578">14578</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14753">14753</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14856">14856</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14862">14862</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14965">14965</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15074">15074</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15094">15094</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15218">15218</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15254">15254</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15373">15373</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15586">15586</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16745">16745</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17030">17030</jump>,
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17136">17136</jump></li>
+ <li>Support for and bundling of Xerces Java 2.3.</li>
+ <li>Support for and bundling of xml-apis.jar from the tck-jaxp-1_2_0
branch of xml-commons.
+ This version of the Java APIs for XML Processing successfully
passes the JAXP 1.1 and
+ JAXP 1.2 TCKs.</li>
+ <li>For a list of &xslt4j; commits, see [EMAIL PROTECTED] in the
+ <jump href="http://nagoya.apache.org/eyebrowse/index.html">Apache
mailing list archive index</jump>.</li>
+ </ul>
+ </s3>
<s3 title="Changes since &xslt4j; 2.4.0">
<ul>
<li>Performance fixes and enhancements to address the degradation of
performance between Xalan-Java
@@ -148,7 +202,7 @@
<jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13754">13754</jump>,
<jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13863">13863</jump>,
<jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13944">13944</jump>,
- <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14022">14022</jump></li>.
+ <jump
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14022">14022</jump></li>
<li>Support for and bundling of Xerces Java 2.2.</li>
<li>Support for and bundling of xml-apis.jar from the
factoryfinder-build of the RIVERCOURT1 branch of xml-commons. This version of
the Java
APIs for XML Processing successfully passes the JAXP 1.1 and JAXP 1.2
TCKs.</li>
@@ -291,7 +345,7 @@
<s3 title="Version of Xerces to use">
<p>The &xslt4j-current; has been tested with &xml4j-used;. &download;
For information about including &xml4j-jar; and xml-apis.jar on the system
class path, see <link idref="getstarted" anchor="classpath">Setting up the
system class path</link>.</p>
<p><em>Important</em> You may experience unpredictable anomalies if
your &xslt4j; and &xml4j; builds are not in synch. If you download an update to
&xslt4j;, check the release notes to determine which version of &xml4j; you
should use.</p>
- <note>You can use &xslt4j; with other XML parsers that implement the
<resource-ref idref="jaxp"/>. See
+ <note>You can use &xslt4j; with other XML parsers that implement the
<resource-ref idref="jaxp12"/>. See
<link idref="usagepatterns" anchor="plug">Plugging in the Transformer
and XML parser</link>.</note>
</s3>
</s2>
@@ -299,7 +353,7 @@
<s2 title="Build Notes">
<p>We provide two distributions: a binary distribution, and a source
distribution. See <link idref="getstarted" anchor="download">Downloading
what you need</link>. If you have downloaded the binary distribution, you
already have a build. If you downloaded the source
- distribution, you can use Ant to build &xslt4j;, including xalan.jar,
xalansamples.jar, xalanservlet.jar, the
+ distribution, you can use Ant to build &xslt4j;, including xalan.jar,
xalansamples.jar, xalanservlet.war, the
user documentation, and the Javadoc API documentation. You need the source
distribution to do builds. Keep in mind that if you have also
downloaded the binary distribution, any builds you run will overwrite that
binary distribution.</p>
<ul>
@@ -318,16 +372,16 @@
<p><em>Instructions for using Ant</em></p>
<ol>
<li>Set the JAVA_HOME environment variable to the JDK root
directory.<br/><br/>
- If you are using JDK 1.1.8, you must also put classes.zip in the JDK
bin directory on the classpath. You can use Ant
- with JDK 1.1.8 to compile and jar the &xslt4j; source files, but you
must have JDK 1.2.2 or higher to build the
- documentation.<br/><br/></li>
- <li>Depending on your environment, run the batch file (build.bat) or
shell file (build.sh) from the &xslt4j; root
- directory, optionally with arguments (see the table of targets
below).<br/><br/>
- The batch/shell file adds several JAR files to the classpath and
launches Ant with any arguments you provide. If you
- provide no target, Ant compiles the source files and rebuilds
xalan.jar (the "jar" target).</li>
+ JDK 1.2.2 or higher is required to build &xslt4j;. You must put
tools.jar from the JDK
+ bin directory on the classpath.<br/><br/></li>
+ <li>Depending on your environment, run the batch file (build.bat) or
shell file (build.sh)
+ from the &xslt4j; root directory, optionally with arguments (see the
table of targets below).<br/><br/>
+ The batch/shell file adds several JAR files to the classpath and
launches Ant with any arguments
+ you provide. If you provide no target, Ant compiles the source files
and rebuilds xalan.jar
+ (the "jar" target).</li>
</ol>
- <p>You can also set up your classpath manually (see build.bat or
build.sh for the details), and then run Ant as
- follows:<br/><br/>
+ <p>You can also set up your classpath manually (see build.bat or
build.sh for the details), and
+ then run Ant as follows:<br/><br/>
<code>java org.apache.tools.ant.Main <ref>target</ref></code><br/><br/>
where <ref>target</ref> is nothing (for the default target) or one of
the following.</p>
<table>
@@ -335,7 +389,7 @@
<tr><td>compile</td><td>compiles &xslt4j; in build/classes.</td></tr>
<tr><td>jar (the default)</td><td>creates xalan.jar in the build
directory</td></tr>
<tr><td>samples</td><td>compiles and jars the sample apps in
build/xalansamples.jar</td></tr>
- <tr><td>servlet</td><td>compiles and jars the sample servlet in
build/xalanservlet.war</td></tr>
+ <tr><td>servlet</td><td>compiles and jars the sample servlet in
build/xalanservlet.jar</td></tr>
<tr><td>docs</td><td>creates the HTML User's Guide in
build/docs</td></tr>
<tr><td>javadocs</td><td>generates the API documentation in
./build/docs/apidocs</td></tr>
<tr><td>dist</td><td>generates a complete distribution tree with zip
and tar.gz distribution files in build</td></tr>
@@ -349,7 +403,7 @@
Ant</link>.</p>
<p>If you want to do the build without Ant, keep the following in
mind:</p>
<ul>
- <li>Set the classpath to include the src directory, &xml4j-jar;,
bsf.jar, and bsfengines.jar.</li>
+ <li>Set the classpath to include the src directory, &xml4j-jar;, and
bsf.jar.</li>
<li>Use a Java compiler (such as the IBM Just-In-Time compiler or the
Sun javac) to compile all the .java files in the src
tree. </li>
<li>Use the Sun jar utility to store the resulting .class files in
xalan.jar</li>
@@ -357,9 +411,10 @@
</s3><anchor name="samples"/>
<s3 title="Rebuilding a sample application">
<p>If you modify a sample and want to recompile it, you can run the Java
compiler in the directory containing the
- example. Be sure xalan.jar, xml-apis.jar, and &xml4j-jar; are on the
classpath. To recompile (and run!) the class files in the
- Servlet subdirectory, the javax.servlet and javax.servlet.http packages
must also be on the classpath. Sun
- distributes these packages in the JSWDK 1.0.1 servlet.jar file.</p>
+ example. Be sure xalan.jar, xml-apis.jar, and &xml4j-jar; are on the
classpath. </p>
+ <p>To recompile and run the class files in the servlet subdirectory, the
javax.servlet and
+ javax.servlet.http packages must also be on the classpath. Sun
distributes these packages in
+ the JSWDK 1.0.1 servlet.jar file.</p>
<p>After recompiling a sample, you can use the Sun jar utility to place
your new .class files in
xalansamples.jar.</p>
<p>You can use Ant with the samples target to recompile the samples and
place the unpackaged class files in xalansamples.jar.
@@ -369,7 +424,7 @@
</s3><anchor name="doc"/>
<s3 title="Rebuilding the &xslt4j; documentation">
<p>&xslt4j; includes a number of XML source files, XSL stylesheets,
document type definition (DTD)
- files, entity relationship (ENT) files, graphics, and a JavaScript
file that provide the input for the Xalan
+ files, entity relationship (ENT) files, graphics, and a JavaScript
file that provide the input for the &xslt4j;
HTML User's Guide, and the overview and package-level documents used
during the generation of Javadoc.</p>
<p>To rebuild the documentation, you must use the StyleBook tool and
the JDK 1.2.2 java and javadoc
tools. StyleBook (which uses Xalan and Xerces) is in
stylebook-1.0-b2.jar. Some of the document definition files,
@@ -437,8 +492,10 @@
</s3>
</s2><anchor name="contact"/>
<s2 title="Getting in Touch">
- <p>Your feedback is more than welcome. Offers of help are even more so!
Perhaps you would like to take on an active role in the ongoing development,
testing, and documentation of &xslt4j;?</p>
-<p>Please email your comments, questions, suggestions, and offers to join
the Xalan team to <human-resource-ref idref="xalandev"/>.</p>
+ <p>Your feedback is more than welcome. Offers of help are even more so!
Perhaps you would like to
+ take on an active role in the ongoing development, testing, and
documentation of &xslt4j;?</p>
+<p>Please email your comments, questions, suggestions, and offers to join
the Xalan team
+to <human-resource-ref idref="xalandev"/>.</p>
</s2><anchor name="developer-list"/>
<s2 title="Developers">
<p>A list of some of people currently working on working on &xslt4j;:</p>
1.29 +200 -108 xml-xalan/java/xdocs/sources/xalan/extensionslib.xml
Index: extensionslib.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/extensionslib.xml,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- extensionslib.xml 27 Jan 2003 18:45:36 -0000 1.28
+++ extensionslib.xml 21 Feb 2003 20:10:08 -0000 1.29
@@ -68,19 +68,28 @@
<li><link anchor="pipedocument">PipeDocument</link></li>
<li><link anchor="evaluate">evaluate</link></li>
<li><link anchor="tokenize">tokenize</link></li>
-<li><link idref="extensions_xsltc">Extensions for XSLTC</link></li>
-<li>Examples: <link anchor="ex-redirect">Redirect</link>, <link
anchor="ex-nodeset">nodeset</link>, <link anchor="ex-sql">SQL
library</link></li>
-</ul><anchor name="intro"/>
+<li><link idref="extensions_xsltc">Extensions for &xslt4jc-short;</link></li>
+<li>Examples: <link anchor="ex-redirect">Redirect</link>, <link
anchor="ex-nodeset">nodeset</link>,
+<link anchor="ex-sql">SQL library</link></li>
+</ul>
+
+<note>Unless otherwise specified, the &xslt4j; extensions library discussed
in this section refers to
+the &xslt4j; Interpretive processor. See <link
idref="extensions_xsltc">Extensions for XSLTC</link> for
+more information.</note><br></br>
+
+<anchor name="intro"/>
<s2 title= "Introduction">
<p>Extension elements and functions provide a powerful mechanism
for extending and simplifying what you can do with an XLST processor like
-&xslt;. With input and contributions from the XML open-source developer
community, we are working on placing the most useful
-extensions in an extensions library distributed with &xslt4j;. If you have
ideas and/or contributions you would like to make, please email us at the
<human-resource-ref idref="xalandev"/>.</p>
+&xslt;. With input and contributions from the XML open-source developer
community, we are working on
+placing the most useful extensions in an extensions library distributed with
&xslt4j;. If you have
+ideas and/or contributions you would like to make, please email us at
+the <human-resource-ref idref="xalandev"/>.</p>
</s2><anchor name="exslt"/>
<s2 title="EXSLT extensions">
<p>&xslt4j; supports the <jump href="http://exslt.org/">EXSLT</jump>
initiative to provide a set of
-standard extension functions and elements to XSLT users. &xslt4j; includes
implementations for the following EXSLT
-extension modules:</p>
+standard extension functions and elements to XSLT users. &xslt4j; includes
implementations for the
+following EXSLT extension modules:</p>
<ul>
<li><jump href="apidocs/org/apache/xalan/lib/ExsltCommon.html">EXSLT common
functions</jump></li>
<li><jump href="apidocs/org/apache/xalan/lib/ExsltMath.html">EXSLT math
functions</jump></li>
@@ -88,30 +97,56 @@
<li><jump href="apidocs/org/apache/xalan/lib/ExsltDatetime.html">EXSLT
date-and-time functions</jump></li>
<li><jump href="apidocs/org/apache/xalan/lib/ExsltDynamic.html">EXSLT
dynamic functions</jump></li>
<li><jump href="apidocs/org/apache/xalan/lib/ExsltStrings.html">EXSLT string
functions</jump></li>
-<li>The EXSLT func:function and func:result elements (see <jump
href="http://www.exslt.org/func/elements/function/index.html">EXSLT -
func:function)</jump></li>
+<li>The EXSLT func:function and func:result elements (see
+<jump href="http://www.exslt.org/func/elements/function/index.html">EXSLT -
func:function)</jump></li>
</ul>
-<p>All EXSLT extensions use namespaces specified in the EXSLT specification.
For example, to use the EXSLT math functions, specify a namespace URI as
follows:</p>
+<p>All EXSLT extensions use namespaces specified in the EXSLT specification.
For example, to use the
+EXSLT math functions, specify a namespace URI as follows:</p>
<p> <code>xmlns:math="http://exslt.org/math"</code></p>
-<p>Anyone who would like to help by implementating other EXSLT extensions is
more than welcome. Please email us at the <human-resource-ref
idref="xalandev"/>.</p>
+<p>Anyone who would like to help by implementating other EXSLT extensions is
more than welcome. Please
+email us at the <human-resource-ref idref="xalandev"/>.</p>
</s2>
<anchor name="xalanns"/>
<s2 title="&xslt; namespace">
-<p>The &xslt; extensions are implemented in one of the classes under
org.apache.xalan.lib. The main extension class is <jump
href="apidocs/org/apache/xalan/lib/Extensions.html">org.apache.xalan.lib.Extensions</jump>.
Some extension
-functions (e.g. intersection, difference, etc.) used to be in this class are
now moved to the corresponding <link anchor="exslt">EXSLT</link> modules. All
&xslt; extensions use namespace URIs starting with:</p>
+<p>The &xslt; extensions are implemented in one of the classes under
org.apache.xalan.lib. The main
+extension class is <jump href="apidocs/org/apache/xalan/lib/Extensions.html">
+org.apache.xalan.lib.Extensions</jump>. Some extension
+functions (e.g. intersection, difference, etc.) used to be in this class are
now moved to the
+corresponding <link anchor="exslt">EXSLT</link> modules. All &xslt;
extensions use namespace URIs
+starting with:</p>
<p> <code>http://xml.apache.org/xalan</code></p>
-<p>If you are calling &xslt4j;-supplied extensions, we recommend that you
define the corresponding namespace in your stylesheet, and call the extension
using the namespace prefix that you have associated with that namespace. That
way, if we later reorganize how the &xslt4j;-supplied extensions are stored,
you won't have to modify your stylesheet.</p>
-<p>For an example that uses this namespace, see <link
anchor="ex-nodeset">Example with the nodeset extension function</link>.</p>
+<p>If you are calling &xslt4j;-supplied extensions, we recommend that you
define the corresponding
+namespace in your stylesheet, and call the extension using the namespace
prefix that you have associated
+with that namespace. That way, if we later reorganize how the
&xslt4j;-supplied extensions are stored,
+you won't have to modify your stylesheet.</p>
+<p>For an example that uses this namespace, see <link
anchor="ex-nodeset">Example with the nodeset
+extension function</link>.</p>
</s2><anchor name="redirect"/>
<s2 title= "Redirect">
-<p>A standard XSL transformation involves an XSL stylesheet, an XML source
tree, and the transformation result tree. The transformation sends the entire
result to a single <jump
href="apidocs/org/apache/trax/Result.html">org.apache.trax.Result</jump>
object.</p>
-<p>The namespace for the <jump
href="apidocs/org/apache/xalan/lib/Redirect.html">Redirect</jump> extension
is:</p>
+<p>A standard XSL transformation involves an XSL stylesheet, an XML source
tree, and the transformation
+result tree. The transformation sends the entire result to a single
+<jump
href="apidocs/org/apache/trax/Result.html">org.apache.trax.Result</jump>
object.</p>
+<p>The namespace for the <jump
href="apidocs/org/apache/xalan/lib/Redirect.html">Redirect</jump>
+extension is:</p>
<p> <code>http://xml.apache.org/xalan/redirect</code></p>
-<p>It supplies three extension elements that you can use to redirect
portions of your transformation output to multiple files: <open>,
<write>, and <close>. If you use the <write> element alone,
the extension opens a file, writes to it, and closes the file immediately. If
you want explicit control over the opening and closing of files, use
<write> in conjunction with the <open> and <close>
elements.</p>
-<p>The <open> and <write> elements include a file attribute
and/or a select attribute to designate the output file. The file attribute
takes a string, so you can use it to directly specify the output file name. The
select attribute takes an XPath expression, so you can use it to dynamically
generate the output file name. If you include both attributes, the Redirect
extension first evaluates the select attribute, and falls back to the file
attribute if the select attribute expression does not return a valid file
name.</p>
-<p>The <open> and <write> elements also support an append
attribute. If the append attribute is set to true or yes, then the result is
appended to the output file.</p>
+<p>It supplies three extension elements that you can use to redirect
portions of your transformation
+output to multiple files: <open>, <write>, and <close>. If
you use the <write>
+element alone, the extension opens a file, writes to it, and closes the file
immediately. If you want
+explicit control over the opening and closing of files, use <write> in
conjunction with
+the <open> and <close> elements.</p>
+<p>The <open> and <write> elements include a file attribute
and/or a select attribute to
+designate the output file. The file attribute takes a string, so you can use
it to directly specify
+the output file name. The select attribute takes an XPath expression, so you
can use it to dynamically
+generate the output file name. If you include both attributes, the Redirect
extension first evaluates
+the select attribute, and falls back to the file attribute if the select
attribute expression does
+not return a valid file name.</p>
+<p>The <open> and <write> elements also support an append
attribute. If the append attribute
+is set to true or yes, then the result is appended to the output file.</p>
<anchor name="ex-redirect"/>
<s3 title="Example with the Redirect extension">
-<p>Suppose you are outputting the bulk of your result tree to one file, but
you want to output the transformation of all <foo> elements and their
children to another file. The following example illustrates the basic structure
of the XML source:</p>
+<p>Suppose you are outputting the bulk of your result tree to one file, but
you want to output the
+transformation of all <foo> elements and their children to another
file. The following example
+illustrates the basic structure of the XML source:</p>
<source><?xml version="1.0"?>
<doc>
<foo file="foo.out">
@@ -171,16 +206,28 @@
Testing Redirect extension:
<foobar-out>foo subelement text node</foobar-out>
</foo-out></source>
-<p>For more information on using the Redirect extension to send output to
multiple files, examine the <link idref="samples"
anchor="ext1">SimpleRedirect</link> sample and see the <jump
href="apidocs/org/apache/xalan/lib/Redirect.html">Redirect</jump> class
Javadoc.</p>
+<p>For more information on using the Redirect extension to send output to
multiple files, examine
+the <link idref="samples" anchor="ext1">SimpleRedirect</link> sample and see
the
+<jump href="apidocs/org/apache/xalan/lib/Redirect.html">Redirect</jump>
class Javadoc.</p>
</s3></s2><anchor name="nodeset"/>
<s2 title= "nodeset">
-<p>Implemented in <jump
href="apidocs/org/apache/xalan/lib/Extensions.html">org.apache.xalan.lib.Extensions</jump>,<br/>
+<p>Implemented in <jump href="apidocs/org/apache/xalan/lib/Extensions.html">
+org.apache.xalan.lib.Extensions</jump>,<br/>
<code>nodeset (result-tree-fragment)</code> casts a result tree fragment
into a node-set.</p>
-<p>To use the nodeset extension, you can either use the <code>nodeset</code>
function in the namespace <code>xmlns:xalan="http://xml.apache.org"</code> or
the <link anchor="exslt">EXSLT</link> extension function <code>node-set</code>
in the namespace <code>xmlns:common="http://exslt.org/common"</code>.</p>
-<note>When you bind a variable to a template, rather than to the value
generated by a select expression, the data type of the variable is result tree
fragment. For more information, see <jump
href="http://www.w3.org/TR/xslt#section-Result-Tree-Fragments">Result Tree
Fragments</jump>.</note>
+<p>To use the nodeset extension, you can either use the <code>nodeset</code>
function in the
+namespace <code>xmlns:xalan="http://xml.apache.org"</code> or the <link
anchor="exslt">EXSLT</link>
+extension function <code>node-set</code> in the namespace
+<code>xmlns:common="http://exslt.org/common"</code>.</p>
+<note>When you bind a variable to a template, rather than to the value
generated by a select
+expression, the data type of the variable is result tree fragment. For more
information,
+see <jump
href="http://www.w3.org/TR/xslt#section-Result-Tree-Fragments">Result Tree
+Fragments</jump>.</note>
<anchor name="ex-nodeset"/>
<s3 title="Example with the nodeset extension function">
-<p>The following stylesheet uses the nodeset extension function to cast a
result tree fragment into a node-set that can then be navigated in standard
XPath manner. It uses the http://xml.apache.org/xalan namespace to provide
access to the nodeset() method in xml.apache.xalan.lib.Extensions.</p>
+<p>The following stylesheet uses the nodeset extension function to cast a
result tree fragment
+into a node-set that can then be navigated in standard XPath manner. It uses
the
+http://xml.apache.org/xalan namespace to provide access to the nodeset()
method in
+xml.apache.xalan.lib.Extensions.</p>
<source><?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
@@ -205,16 +252,20 @@
</out>
</xsl:template>
</xsl:stylesheet></source>
-<p>The output of running this stylesheet (with any XML input source) is a
comma-delimited list of the element names in the node-set<br/>
+<p>The output of running this stylesheet (with any XML input source) is a
comma-delimited list of
+the element names in the node-set<br/>
<code><out>elem1,elem1a,elem1b,elem2,elem2a</out></code></p>
-<note>For illustration purposes, the preceding stylesheet pays no attention
to the structure and content of the XML input document. Instead, it processes
the template (in the stylesheet) bound to the variable named rtf.</note>
+<note>For illustration purposes, the preceding stylesheet pays no attention
to the structure and
+content of the XML input document. Instead, it processes the template (in
the stylesheet) bound
+to the variable named rtf.</note>
</s3>
</s2>
<anchor name="nodeinfo"/>
<s2 title="NodeInfo">
-<p><jump
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>
provides extension elements that you can
-use to get information about the location of nodes in the source
document:</p>
+<p><jump
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>
provides
+extension elements that you can use to get information about the location of
nodes in the source
+document:</p>
<ul>
<li><link anchor="systemid">systemId</link></li>
<li><link anchor="publicid">publicId</link> (to be done)</li>
@@ -223,33 +274,43 @@
</ul>
<note>If you want to use the NodeInfo extension elements, you MUST set the
TransformerFactory
<link idref="features" anchor="source_location">source_location</link>
attribute to true.
-You can use the <link idref="commandline">command-line utility</link> -L
flag or the <jump
href="apidocs/javax/xml/transform/TransformerFactory.html#setAttribute(java.lang.String,
java.lang.Object)">TransformerFactory.setAttribute()</jump>
-method to set this attribute.</note>
+You can use the <link idref="commandline">command-line utility</link> -L
flag or the
+<jump
href="apidocs/javax/xml/transform/TransformerFactory.html#setAttribute(java.lang.String,
+java.lang.Object)">TransformerFactory.setAttribute()</jump> method to set
this attribute.</note>
<anchor name="systemid"/>
<s3 title="systemId">
-<p>Implemented in <jump
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,
+<p>Implemented in <jump href="apidocs/org/apache/xalan/lib/NodeInfo.html">
+org.apache.xalan.lib.NodeInfo</jump>,
<code>systemId()</code> returns the system ID for the current node, and
<code>systemId(node-set)</code> returns the system ID of the first node in
the node-set.</p>
</s3><anchor name="publicid"/>
<s3 title="publicId">
-<p><em>To be done.</em> Implemented in <jump
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,
+<p><em>To be done.</em> Implemented in <jump
href="apidocs/org/apache/xalan/lib/NodeInfo.html">
+org.apache.xalan.lib.NodeInfo</jump>,
<code>publicId()</code> will return the public ID for the current node, and
<code>publicId(node-set)</code> will return the public ID of the first node
in the node-set.</p>
</s3><anchor name="linenumber"/>
<s3 title="lineNumber">
-<p>Implemented in <jump
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,
+<p>Implemented in <jump href="apidocs/org/apache/xalan/lib/NodeInfo.html">
+org.apache.xalan.lib.NodeInfo</jump>,
<code>lineNumber()</code> returns the line number in the source document for
the current node, and
-<code>lineNumber(node-set)</code> returns the line number in the source
document for the first node in the node-set.</p>
-<note>This function returns -1 if the line number is not known (for example,
the source is a DOM Document).</note>
+<code>lineNumber(node-set)</code> returns the line number in the source
document for the first node
+in the node-set.</p>
+<note>This function returns -1 if the line number is not known (for example,
the source is a
+DOM Document).</note>
</s3><anchor name="columnnumber"/>
<s3 title="columnNumber">
-<p>Implemented in <jump
href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</jump>,
-<code>columnNumber()</code> returns the column number in the source document
for the current node, and
-<code>columnNumber(node-set)</code> returns the column number in the source
document for the first node in the node-set.</p>
-<note>This function returns -1 if the column number is not known (for
example, the source is a DOM Document).</note>
+<p>Implemented in <jump href="apidocs/org/apache/xalan/lib/NodeInfo.html">
+org.apache.xalan.lib.NodeInfo</jump>, <code>columnNumber()</code> returns
the column number in the
+source document for the current node, and
<code>columnNumber(node-set)</code> returns the column
+number in the source document for the first node in the node-set.</p>
+<note>This function returns -1 if the column number is not known (for
example, the source is a DOM
+Document).</note>
</s3></s2><anchor name="sql"/>
<s2 title= "SQL library">
-<note>For UML Diagrams of the SQL Library, see <jump
href="http://xml.apache.org/xalan-j/Xalan-SQL-Extension/DiagramIndex.html">SQL
Library UML Diagrams</jump>.</note>
+<note>For UML Diagrams of the SQL Library, see
+<jump
href="http://xml.apache.org/xalan-j/Xalan-SQL-Extension/DiagramIndex.html">SQL
Library
+UML Diagrams</jump>.</note>
<ul>
<li><link anchor="sqlconn">Setting up a connection</link></li>
<li><link anchor="sqlparam">Parameterized queries</link></li>
@@ -258,40 +319,56 @@
</ul>
<p>The namespace for the SQL extension is:</p>
<p> <code>http://xml.apache.org/xalan/sql</code></p>
-<p>The SQL extension provides extension functions for connecting to a JDBC
data source, executing a query,
-and working incrementally through a "streamable" result set. Streaming
(reuse of a single row node to traverse the result set) is the default mode of
operation. If you want unlimited access to the entire result set, you can cache
the query result set (1 row node for each row in the result set).</p>
-<p><em>If you use streaming mode (the default), you can only access row
elements one at a time moving forward through the result set. The use of XPath
expressions in your stylesheet, for example, that attempt to return nodes from
the result set in any other manner may produce unpredictable results.</em></p>
-<note>Many features of the SQL library, including support for connection
pools, parameterized queries, caching, and added support for extracting
connection information and query parameters from XML source documents exist
thanks to John Gentilin ([EMAIL PROTECTED]), who has also added a number of
<link idref="samples" anchor="sql">SQL library samples</link>.</note>
-<p><jump
href="apidocs/org/apache/xalan/lib/sql/XConnection.html">org.apache.xalan.lib.sql.XConnection</jump>
provides a number of extension functions that you can use in your
stylesheet.</p>
+<p>The SQL extension provides extension functions for connecting to a JDBC
data source, executing
+a query, and working incrementally through a "streamable" result set.
Streaming (reuse of a single
+row node to traverse the result set) is the default mode of operation. If
you want unlimited access
+to the entire result set, you can cache the query result set (1 row node for
each row in the result
+set).</p>
+<p><em>If you use streaming mode (the default), you can only access row
elements one at a time moving
+forward through the result set. The use of XPath expressions in your
stylesheet, for example, that
+attempt to return nodes from the result set in any other manner may produce
unpredictable
+results.</em></p>
+<note>Many features of the SQL library, including support for connection
pools, parameterized queries,
+caching, and added support for extracting connection information and query
parameters from XML source
+documents exist thanks to John Gentilin ([EMAIL PROTECTED]), who has also
added a number
+of <link idref="samples" anchor="sql">SQL library samples</link>.</note>
+<p><jump href="apidocs/org/apache/xalan/lib/sql/XConnection.html">
+org.apache.xalan.lib.sql.XConnection</jump> provides a number of extension
functions that you can
+use in your stylesheet.</p>
<ol>
- <li>new() -- Use one of the XConnection constructors to connect to a
data source, and return an XConnection
- object. You can use one of the constructors creates a connection pool
from which stylesheets can obtain connections
- to a datasource. To support connection pools, SQL library includes a
ConnectionPool interface and a implementation:
- DefaultConnectionPool. You can also provide your own ConnectionPool
implementation.<br/><br/></li>
- <li>query() -- Use the XConnection object query() method to return a
"streamable" result set in the form of a row-set
- node. Work your way through the row-set one row at a time. The same
row element is used over and over again, so you can
- begin "transforming" the row-set before the entire result set has
been returned.<br/><br/></li>
- <li>pquery(), addParameter(), addParameterFromElement(),
clearParameters() -- Use the XConnection pquery() method in
- conjunction with these other methods to set up and execute
parameterized queries.<br/><br/></li>
- <li>Use enableStreamingMode() to use a single row node to "stream"
through the result set, and disableStreamingMode()
- to cache the query result set. <br/><br/></li>
+ <li>new() -- Use one of the XConnection constructors to connect to a
data source, and return an
+ XConnection object. You can use one of the constructors creates a
connection pool from which
+ stylesheets can obtain connections to a datasource. To support
connection pools, SQL library
+ includes a ConnectionPool interface and a implementation:
DefaultConnectionPool. You can also
+ provide your own ConnectionPool implementation.<br/><br/></li>
+ <li>query() -- Use the XConnection object query() method to return a
"streamable" result set in
+ the form of a row-set node. Work your way through the row-set one row
at a time. The same row
+ element is used over and over again, so you can begin "transforming"
the row-set before the
+ entire result set has been returned.<br/><br/></li>
+ <li>pquery(), addParameter(), addParameterFromElement(),
clearParameters() -- Use the XConnection
+ pquery() method in conjunction with these other methods to set up and
execute parameterized
+ queries.<br/><br/></li>
+ <li>Use enableStreamingMode() to use a single row node to "stream"
through the result set, and
+ disableStreamingMode() to cache the query result set. <br/><br/></li>
<li>close() -- Use the XConnection object close() method to terminate
the connection.</li>
</ol>
- <p>The query() and pquery() extension functions return a Document node
that contains (as needed) an array of column-header elements,
- a single row element that is used repeatedly, and an array of col
elements. Each column-header element (one per column in
- the row-set) contains an attribute (ColumnAttribute) for each of the
column descriptors in the ResultSetMetaData object.
- Each col element contains a text node with a textual representation of
the value for that column in the current row.</p>
+ <p>The query() and pquery() extension functions return a Document node
that contains (as needed)
+ an array of column-header elements, a single row element that is used
repeatedly, and an array
+ of col elements. Each column-header element (one per column in the
row-set) contains an attribute
+ (ColumnAttribute) for each of the column descriptors in the
ResultSetMetaData object. Each col
+ element contains a text node with a textual representation of the value
for that column in the
+ current row.</p>
<anchor name="sqlconn"/>
<s3 title="Setting up a connection">
- <p>You can place connection information (JDBC driver, datasource URL,
and usually user ID and password) in stylesheets or
- in XML source documents.</p>
- <p>The following stylesheet fragment uses stylesheet parameters to
designate a JDBC driver and datasource. The default
- parameter values can be overridden with runtime parameter values.</p>
+ <p>You can place connection information (JDBC driver, datasource URL,
and usually user ID and
+ password) in stylesheets or in XML source documents.</p>
+ <p>The following stylesheet fragment uses stylesheet parameters to
designate a JDBC driver and
+ datasource. The default parameter values can be overridden with runtime
parameter values.</p>
<source><xsl:param name="driver"
select="'org.enhydra.instantdb.jdbc.idbDriver'"/>
<xsl:param name="datasource"
select="'jdbc:idb:../../instantdb/sample.prp'"/>
<xsl:param name="query" select="'SELECT * FROM import1'"/></source>
- <p>You can also obtain connection information from the XML source
document that you use for the transformationl. Suppose
- you have the following DBINFO nodeset in an XML document:</p>
+ <p>You can also obtain connection information from the XML source
document that you use for the
+ transformationl. Suppose you have the following DBINFO nodeset in an
XML document:</p>
<source><DBINFO>
<dbdriver>org.enhydra.instantdb.jdbc.idbDriver</dbdriver>
<dburl>jdbc:idb:../../instantdb/sample.prp</dburl>
@@ -306,7 +383,8 @@
<xsl:param name="cinfo" select="//DBINFO"/>
<xsl:variable name="db" select="sql:new($cinfo)"/>
....</source>
- <p>For an example of both approaches, see <link idref="samples"
anchor="basic-conn">Basic Connection</link> samples.</p>
+ <p>For an example of both approaches, see <link idref="samples"
anchor="basic-conn">Basic
+ Connection</link> samples.</p>
<p>You can also create a named connection pool that is maintained
external to &xslt4j;.</p>
<source>import org.apache.xalan.lib.sql.DefaultConnectionPool;
import org.apache.xalan.lib.sql.XConnectionPoolManager;
@@ -332,13 +410,15 @@
<p>For an example, see the <link idref="samples"
anchor="ext-conn">ExternalConnection</link> sample.</p>
</s3><anchor name="sqlparam"/>
<s3 title="Parameterized queries">
- <p>To define a parameterized query, use a SQL query string with a
question mark (?) for each parameter. You can provide
- the parameter values at runtime with stylesheet parameters or with
nodes in the XML source document. For each parameter,
- you should also designate the SQL data type.</p>
- <p>XConnection provides a number of addParameter() methods and an
addParameterFromElement() method that you can use
- as extension functions to pull in the parameter values (in the order
the parameters appear in the query). To
- execute the query and return the result set, call the pquery() method
as an extension function. There are two variations
- of the pquery() method. The one you should ordinarily use includes as
arguments the SQL query string and a string list
+ <p>To define a parameterized query, use a SQL query string with a
question mark (?) for each
+ parameter. You can provide
+ the parameter values at runtime with stylesheet parameters or with
nodes in the XML source document.
+ For each parameter, you should also designate the SQL data type.</p>
+ <p>XConnection provides a number of addParameter() methods and an
addParameterFromElement() method
+ that you can use as extension functions to pull in the parameter
values (in the order the
+ parameters appear in the query). To execute the query and return the
result set, call the pquery()
+ method as an extension function. There are two variations of the
pquery() method. The one you
+ should ordinarily use includes as arguments the SQL query string and a
string list
(delimited by the space, tab, or line feeds) of parameter types. For
example:</p>
<source><xsl:variable name="resultset"
select=sql:pquery($XConnectionObj,
@@ -403,22 +483,26 @@
</s2><anchor name="pipedocument"/>
<s2 title="pipeDocument">
- <p>Implemented in <jump
href="apidocs/org/apache/xalan/lib/PipeDocument.html">org.apache.xalan.lib.PipeDocument</jump>,<br/>
- the pipeDocument extension element pipes an XML document through a series
of one or more transformations. The output of
- each transformation is piped to the next transformation. The final
transofrmation creates a target file.</p>
+ <p>Implemented in <jump
href="apidocs/org/apache/xalan/lib/PipeDocument.html">
+ org.apache.xalan.lib.PipeDocument</jump>,<br/>
+ the pipeDocument extension element pipes an XML document through a series
of one or more
+ transformations. The output of each transformation is piped to the next
transformation. The
+ final transofrmation creates a target file.</p>
<p>The namespace for the pipeDocument extension is:</p>
<p> <code>http://xml.apache.org/xalan/PipeDocument</code></p>
- <p>Suppose, for example,you have a stylesheet that is processing a "book"
document with elements designating the
- documents to be transformed. This primary stylesheet generates a table of
contents for the book. For each source
- document it uses a pipeDocument extension element to pipe the document
through a series of one or more transformations.</p>
+ <p>Suppose, for example,you have a stylesheet that is processing a "book"
document with elements
+ designating the documents to be transformed. This primary stylesheet
generates a table of
+ contents for the book. For each source document it uses a pipeDocument
extension element to pipe
+ the document through a series of one or more transformations.</p>
<s3 title="Sample: generating a table of contents and an HTML
"book"">
<p>An XML "book" document contains a number of doc elements like the
following:<br/>
<code><doc source="sources/intro.xml" id="intro"
label="Introduction"></code></p>
<p>The source attribute identifies the document to be transformed, the
id is the output file name,
and the primary stylesheet places the label in the table-of-contents
link.</p>
- <p>The stylesheet declares the pipeDocument namespace, designates the
namespace prefix as an extension element prefix,
- and contains a parameter designating where the output files are to be
placed:</p>
+ <p>The stylesheet declares the pipeDocument namespace, designates the
namespace prefix as an
+ extension element prefix, and contains a parameter designating where the
output files are to
+ be placed:</p>
<source><xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:pipe="http://xml.apache.org/xalan/PipeDocument"
@@ -426,10 +510,11 @@
<xsl:param name="destdir" value="html/output">
...</source>
-<p>This stylesheet contains a template where each doc element is processed.
For each doc element, the stylesheet adds an
-entry to the table-of-contents document. The extension element pipes the
specified document through a series of two
-transformations, with an stylesheet input parameter for the first
transformation. The pipeDocument target attribute
-designates the output from the second transformation.</p>
+<p>This stylesheet contains a template where each doc element is processed.
For each doc element, the
+stylesheet adds an entry to the table-of-contents document. The extension
element pipes the specified
+document through a series of two transformations, with an stylesheet input
parameter for the first
+transformation. The pipeDocument target attribute designates the output from
the second
+transformation.</p>
<source><xsl:template match="doc">
<p>
@@ -448,20 +533,23 @@
<p>Notes:</p>
<ul>
<li>The base URI for the source attribute is the XML "book" document.</li>
- <li>The target attribute is taken as is (the base is the current user
directory from which this transformation is being run).</li>
+ <li>The target attribute is taken as is (the base is the current user
directory from which this
+ transformation is being run).</li>
<li>The stylsheet containg the extension element is the base URI for the
stylesheet hrefs.</li>
</ul>
</s3>
<s3 title="Variation: using pipeDocument in an empty stylesheet">
-<p>Suppose you want to pipe a document through a series of transformations.
You can use the pipeDocument extension element
-to perform this operation by placing the extension element in an otherwise
empty stylesheet.</p>
-<p>The following stylesheet is used to merge the &xslt; documents into a
book (the first transformation), and transform the book
-into a tree of formatting objects, which can then be used to generate a PDF
file. This transformation is invoked as follows:</p>
+<p>Suppose you want to pipe a document through a series of transformations.
You can use the pipeDocument
+extension element to perform this operation by placing the extension element
in an otherwise empty
+stylesheet.</p>
+<p>The following stylesheet is used to merge the &xslt; documents into a
book (the first transformation),
+and transform the book into a tree of formatting objects, which can then be
used to generate a PDF file.
+This transformation is invoked as follows:</p>
<p><code>java org.apache.xalan.xslt.Process -in printbook.xml</code><br/>
<code> -param source printbook.xml</code><br/>
<code> -param target xalanbook.fo</code></p>
-<p>There is no XML input document or output document for the primary
transformation, which does no more than invoke
-the extension element.</p>
+<p>There is no XML input document or output document for the primary
transformation, which does no more
+than invoke the extension element.</p>
<source><?xml version='1.0'?>
<xsl:stylesheet version="1.0"
@@ -488,24 +576,28 @@
</s3>
</s2><anchor name="evaluate"/>
<s2 title= "evaluate">
- <p>Implemented in <jump
href="apidocs/org/apache/xalan/lib/Extensions.html">org.apache.xalan.lib.Extensions</jump>,<br/>
-<code>evaluate (xpath-expression)</code> function returns the result of
evaluating the xpath-expression in the current
-XPath expression context (automatically passed in by the extension
mechanism).</p>
+ <p>Implemented in <jump
href="apidocs/org/apache/xalan/lib/Extensions.html">
+ org.apache.xalan.lib.Extensions</jump>,<br/>
+<code>evaluate (xpath-expression)</code> function returns the result of
evaluating the xpath-expression
+in the current XPath expression context (automatically passed in by the
extension mechanism).</p>
<p>Use the evaluation extension function when the value of the expression is
not known until run time.</p>
-<note>Although you can still use the evaluate extension function in the main
Extensions class, the preferred solution
-is to use the same function in the EXSLT dynamic package. This will make
your stylesheet more portable across XSLT
-processors that support EXSLT extensions.</note>
+<note>Although you can still use the evaluate extension function in the main
Extensions class, the
+preferred solution is to use the same function in the EXSLT dynamic package.
This will make your
+stylesheet more portable across XSLT processors that support EXSLT
extensions.</note>
</s2><anchor name="tokenize"/>
<s2 title="tokenize">
-<p>Implemented in <jump
href="apidocs/org/apache/xalan/lib/Extensions.html">org.apache.xalan.lib.Extensions</jump>,<br/>
+<p>Implemented in <jump href="apidocs/org/apache/xalan/lib/Extensions.html">
+org.apache.xalan.lib.Extensions</jump>,<br/>
<code>tokenize (tokenize-string, delimiters)</code><br/>
or<br/>
-<code>tokenize (tokenize-string)</code> function returns a node-set
containing one text node for each token in the tokenize-string.</p>
-<p>The delimiters determine which characters are used to divide the
tokenize-string into individual tokens. If you do not include
-the delimiters argument, the function uses tab (&#x09), linefeed
(&#x0A), return (&#x0D), and space (&#x20) as delimiters.
-If tokenize-string is an empty string or contains only delimiters, the
result is an empty node-set.</p>
-<note>Although you can still use the tokenize extension function in the main
Extensions class, the preferred solution
-is to use the same function in the EXSLT strings package. This will make
your stylesheet more portable across XSLT
-processors that support EXSLT extensions.</note>
+<code>tokenize (tokenize-string)</code> function returns a node-set
containing one text node for each
+token in the tokenize-string.</p>
+<p>The delimiters determine which characters are used to divide the
tokenize-string into individual
+tokens. If you do not include the delimiters argument, the function uses tab
(&#x09), linefeed
+(&#x0A), return (&#x0D), and space (&#x20) as delimiters. if
tokenize-string is an empty
+string or contains only delimiters, the result is an empty node-set.</p>
+<note>Although you can still use the tokenize extension function in the main
Extensions class, the
+preferred solution is to use the same function in the EXSLT strings package.
This will make your
+stylesheet more portable across XSLT processors that support EXSLT
extensions.</note>
</s2>
</s1>
1.53 +3 -0 xml-xalan/java/xdocs/sources/xalan/usagepatterns.xml
Index: usagepatterns.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/usagepatterns.xml,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- usagepatterns.xml 20 Feb 2003 18:49:17 -0000 1.52
+++ usagepatterns.xml 21 Feb 2003 20:10:08 -0000 1.53
@@ -77,6 +77,9 @@
<li><link anchor="debugging">Debugger interface</link></li>
</ul>
<p>See also: <link idref="features">Transform Features</link>.</p>
+<note>Unless otherwise specified, the usage discussed in this section refers
to
+the &xslt4j; Interpretive processor. See <link idref="xsltc_usage">Getting
Started Using
+XSLTC</link> for information on using the &xslt4j; Compiling
processor.</note><br></br>
<anchor name="basic"/>
<s2 title="Basic steps">
<ol>
1.24 +298 -100 xml-xalan/java/xdocs/sources/xalan/extensions.xml
Index: extensions.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/extensions.xml,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- extensions.xml 4 Feb 2003 20:36:17 -0000 1.23
+++ extensions.xml 21 Feb 2003 20:10:08 -0000 1.24
@@ -69,19 +69,52 @@
<li><link anchor="ext-functions">Using extension functions</link></li>
<li><link anchor="java-namespace">Alternative: using the abbreviated syntax
for extensions implemented in Java</link></li>
<li>Examples: <link anchor="ex-basic">basic JavaScript example</link>, <link
anchor="ex-java-namespace">using the java namespace</link>, <link
anchor="ex-java">using a Java Hashtable</link>, <link
anchor="ex-javascript">using a JavaScript array</link></li>
-</ul><anchor name="intro"/>
- <s2 title="Introduction">
- <p>For those situations where you would like to augment the functionality
of XSLT with calls to a procedural language, &xslt4j; supports the creation and
use of extension elements and extension functions. &xslt4j; also provides a
growing <link idref="extensionslib">extensions library</link> available for
your use. An extension (a collection of elements and functions) inhabits a
namespace, either a namespace you declare and designate as an extensions
namespace, or one of the predefined namespaces that &xslt4j; provides. For
information about XML namespaces, see <jump
href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML</jump>.</p>
-
-<p><em>Extension elements:</em> Unlike a literal result element, which the
stylesheet simply transfers to the result tree, an extension element performs
an action. For example, you can use the Redirect extension elements shipped
with &xslt4j; to redirect portions of your transformation output to one or more
files. Extension elements may contain attributes, text nodes, other elements,
basically any valid XML. Extension elements may perform quite sophisticated
actions, given that the extension routine (the implementation) has direct
access to the XSLT processor context object and to the element. In many cases
the implementation returns void or null; if it does return a value, that value
is placed in the transformation result tree.</p>
-
-<p><em>Extension functions:</em> You can think of extension functions as
extending the core library of functions that XPath provides. An extension
function passes arguments to the extension implementation and returns a value.
You can use extension functions to return values that XSLT can interact with
directly (node-set, result tree fragment, string, boolean, and number) as well
as values (of any type) that you pass in turn to other extension functions.
Extension functions written in Java can also access certain items in the XSLT
execution environment through an <jump
href="apidocs/org/apache/xalan/extensions/ExpressionContext.html">ExpressionContext</jump>
interface.</p>
-
-<p>XSLT extensions are specified in the <jump
href="http://www.w3.org/TR/xslt#extension">XSLT Recommendation</jump>. This
document focuses on the &xslt4j; implementation of those requirements, not on
XSLT extensions in general. For additional information on extensions, consult
the Recommendation or the other resources listed in <link idref="overview"
anchor="uptospeed">Getting up to speed with XSLT</link>.</p>
-</s2><anchor name="supported-lang"/>
+</ul>
+<note>Unless otherwise specified, the &xslt4j; extensions discussed in this
section refers to
+the &xslt4j; Interpretive processor. See <link
idref="extensions_xsltc">Extensions for &xslt4jc-short;</link> for
+more information.</note><br></br>
+<anchor name="intro"/>
+<s2 title="Introduction">
+ <p>For those situations where you would like to augment the functionality
of XSLT with calls to a
+ procedural language, &xslt4j; supports the creation and use of
extension elements and extension
+ functions. &xslt4j; also provides a growing <link
idref="extensionslib">extensions library</link>
+ available for your use. An extension (a collection of elements and
functions) inhabits a namespace,
+ either a namespace you declare and designate as an extensions
namespace, or one of the predefined
+ namespaces that &xslt4j; provides. For information about XML
namespaces, see
+ <jump href="http://www.w3.org/TR/REC-xml-names/">Namespaces in
XML</jump>.</p>
+ <p><em>Extension elements:</em> Unlike a literal result element, which
the stylesheet simply
+ transfers to the result tree, an extension element performs an action.
For example, you can use
+ the Redirect extension elements shipped with &xslt4j; to redirect
portions of your transformation
+ output to one or more files. Extension elements may contain attributes,
text nodes, other elements,
+ basically any valid XML. Extension elements may perform quite
sophisticated actions, given that
+ the extension routine (the implementation) has direct access to the
XSLT processor context object
+ and to the element. In many cases the implementation returns void or
null; if it does return a
+ value, that value is placed in the transformation result tree.</p>
+ <p><em>Extension functions:</em> You can think of extension functions as
extending the core library
+ of functions that XPath provides. An extension function passes
arguments to the extension
+ implementation and returns a value. You can use extension functions to
return values that XSLT
+ can interact with directly (node-set, result tree fragment, string,
boolean, and number) as well
+ as values (of any type) that you pass in turn to other extension
functions. Extension functions
+ written in Java can also access certain items in the XSLT execution
environment through an
+ <jump
href="apidocs/org/apache/xalan/extensions/ExpressionContext.html">ExpressionContext</jump>
+ interface.</p>
+ <p>XSLT extensions are specified in the <jump
href="http://www.w3.org/TR/xslt#extension">XSLT
+ Recommendation</jump>. This document focuses on the &xslt4j;
implementation of those
+ requirements, not on XSLT extensions in general. For additional
information on extensions,
+ consult the Recommendation or the other resources listed in <link
idref="overview"
+ anchor="uptospeed">Getting up to speed with XSLT</link>.</p>
+</s2>
+<anchor name="supported-lang"/>
<s2 title="Supported languages">
-<p>Extensions written in Java are directly supported by &xslt4j;. For
extensions written in languages other than Java, &xslt4j; uses the
<resource-ref idref="bsf"/>, an architecture for incorporating scripting into
Java applications and applets. BSF allows an application to take advantage of
scripting while being independent of any specific scripting language. To date,
we have tested extensions implemented in JavaScript. Other languages with BSF
support appear in the table below.</p>
-<p>BSF requires bsf.jar on the classpath. This JAR file is shipped with
&xslt4j; and is required only if you have extensions written in languages other
than Java. The additional JAR files or DLLs required to support extensions
written in other languages are listed in the table below. These files are
available from the sources indicated and are not shipped with &xslt4j;.</p>
+<p>Extensions written in Java are directly supported by &xslt4j;. For
extensions written in languages
+ other than Java, &xslt4j; uses the <resource-ref idref="bsf"/>, an
architecture for incorporating
+ scripting into Java applications and applets. BSF allows an application
to take advantage of
+ scripting while being independent of any specific scripting language. To
date, we have tested
+ extensions implemented in JavaScript. Other languages with BSF support
appear in the table below.</p>
+<p>BSF requires bsf.jar on the classpath. This JAR file is shipped with
&xslt4j; and is required
+ only if you have extensions written in languages other than Java. The
additional JAR files or DLLs
+ required to support extensions written in other languages are listed in
the table below. These files
+ are available from the sources indicated and are not shipped with
&xslt4j;.</p>
<table>
<tr>
<td><em>Language</em></td>
@@ -91,8 +124,7 @@
<tr>
<td>Mozilla Rhino (JavaScript)<br/><br/></td>
<td>1.5<br/><br/></td>
- <td>js.jar available from
- http://www.mozilla.org/rhino<br/><br/></td>
+ <td>js.jar available from http://www.mozilla.org/rhino<br/><br/></td>
</tr>
<tr>
<td>NetRexx<br/><br/></td>
@@ -129,24 +161,37 @@
</table>
</s2><anchor name="basic-pattern"/>
<s2 title="The basic pattern">
-<p>Let's examine a simple example. The stylesheet below uses an extension
element and an extension function to transform an element in the XML source
into a statement in the output indicating the date by which a customer can
expect a response to a given enquiry.</p>
-
-<p>The source element contains a numdays attribute. The extension element
contains a multiplier attribute, which is used to set a variable in the
extension. The extension function computes the deadline, that is the current
date plus numdays * multiplier. So for <deadline numdays="3"/> (in the
XML source) and <my-ext:timelapse multiplier="2"/> (in the stylesheet),
the extension computes a deadline 6 days from now, and the stylesheet template
transforms the deadline element into a string along the lines of
<code><p>We have logged your enquiry and will respond by April 29, 2000
12:07:16 PM EST.</p></code></p>
-<note>The extension function could include both numdays and multiplier as
arguments, thus bypassing the need for the extension element, but the purpose
here is to illustrate the usage pattern for extension elements.</note>
+<p>Let's examine a simple example. The stylesheet below uses an extension
element and an
+ extension function to transform an element in the XML source into a
statement in the output
+ indicating the date by which a customer can expect a response to a given
enquiry.</p>
+
+<p>The source element contains a numdays attribute. The extension element
contains a multiplier
+ attribute, which is used to set a variable in the extension. The
extension function computes the
+ deadline, that is the current date plus numdays * multiplier. So for
<deadline numdays="3"/>
+ (in the XML source) and <my-ext:timelapse multiplier="2"/> (in the
stylesheet), the
+ extension computes a deadline 6 days from now, and the stylesheet
template transforms the
+ deadline element into a string along the lines of <code><p>We have
logged your enquiry
+ and will respond by April 29, 2000 12:07:16 PM EST.</p></code></p>
+<note>The extension function could include both numdays and multiplier as
arguments, thus bypassing
+ the need for the extension element, but the purpose here is to illustrate
the usage pattern for
+ extension elements.</note>
<p>As you review this stylesheet, please note the following:</p>
<ol>
- <li>The declaration of the xalan namespace, which provides support
for the component and
- component/script elements:<br/><br/>
+ <li>The declaration of the xalan namespace, which provides support for the
component and
+ component/script elements:<br/><br/>
<code>xmlns:xalan="http://xml.apache.org/xalan"</code><br/><br/></li>
- <li>The declaration of a namespace for this extension:<br/><br/>
+ <li>The declaration of a namespace for this extension:<br/><br/>
<code>xmlns:my-ext="ext1"</code><br/><br/></li>
- <li>The designation of this namespace prefix as an extension prefix.
This causes any element in the namespace associated with this prefix to be
treated as an extension element rather than a literal result element.<br/><br/>
+ <li>The designation of this namespace prefix as an extension prefix. This
causes any element in the
+ namespace associated with this prefix to be treated as an extension
element rather than a literal
+ result element.<br/><br/>
<code>extension-element-prefixes="my-ext"</code><br/><br/></li>
- <li>The xalan:component with attributes designating the namespace
prefix and the elements and
+ <li>The xalan:component with attributes designating the namespace prefix
and the elements and
functions this extension provides.<br/><br/></li>
- <li>The xalan:script subelement with a JavaScript implementation of the
extension. For Java
+ <li>The xalan:script subelement with a JavaScript implementation of the
extension. For Java
extensions, the xalan:script element has a src attribute that you set
to identify the Java class.</li>
-</ol><anchor name="ex-basic"/>
+</ol>
+<anchor name="ex-basic"/>
<source><?xml version="1.0"?>
<!--Namespaces are global if you set them in the stylesheet element-->
<xsl:stylesheet
@@ -188,12 +233,21 @@
</xsl:stylesheet>
</source>
-</s2><anchor name="setup-runtime"/>
+</s2>
+<anchor name="setup-runtime"/>
<s2 title="Setting up the runtime environment">
-<p>To run the preceding example, bsf.jar and js.jar must be on the
classpath. Remember that bsf.jar must be on the classpath to run any extension
written in a language other than Java. For extensions implemented in a
scripting language, see the additional requirements in <link
anchor="supported-lang">Supported languages</link>.</p>
-</s2><anchor name="basic-syntax"/>
+<p>To run the preceding example, bsf.jar and js.jar must be on the
classpath. Remember that bsf.jar
+ must be on the classpath to run any extension written in a language other
than Java. For extensions
+ implemented in a scripting language, see the additional requirements in
+ <link anchor="supported-lang">Supported languages</link>.</p>
+</s2>
+<anchor name="basic-syntax"/>
<s2 title="Syntax">
-<p>You can always use the pattern illustrated above to set up and use
extension elements and extension functions. For extension elements and
functions implemented in Java, it is recommended that you use the abbreviated
syntax, described in <link anchor="java-namespace">Alternative: using the
abbreviated syntax for extensions implemented in Java</link>. Unless you are
using the abbreviated syntax, do the following:</p>
+<p>You can always use the pattern illustrated above to set up and use
extension elements and extension
+ functions. For extension elements and functions implemented in Java, it
is recommended that you use
+ the abbreviated syntax, described in <link
anchor="java-namespace">Alternative: using the abbreviated
+ syntax for extensions implemented in Java</link>. Unless you are using
the abbreviated syntax, do
+ the following:</p>
<s3 title="1. Declare the xalan namespace">
<p><br/><code>xmlns:xalan="http://xml.apache.org/xalan"</code></p>
<p>The xalan namespace provides support for the xalan:component element and
xalan:script subelement.</p>
@@ -201,11 +255,14 @@
</s3>
<s3 title="2. Declare a unique namespace for each extension prefix">
<p><br/><code>xmlns:<ref>prefix</ref>=<ref>URI</ref></code></p>
-<p>The <ref>prefix</ref> identifies the namespace, and <ref>URI</ref> is an
arbitrary (but unique) string that matches the value of the prefix attribute of
an xalan:component element in the stylesheet.<br/>
+<p>The <ref>prefix</ref> identifies the namespace, and <ref>URI</ref> is an
arbitrary (but unique)
+string that matches the value of the prefix attribute of an xalan:component
element in the
+stylesheet.<br/>
Example: <code>xmlns:ext1="xyz"</code><br/><br/></p>
</s3>
<s3 title="3. If you are using extension elements, designate the extension
element prefixes">
-<p><br/>This step is required only if you are using extension elements. If
you are using extension functions only, you can skip this step.</p>
+<p><br/>This step is required only if you are using extension elements. If
you are using extension
+functions only, you can skip this step.</p>
<p>In the stylesheet element, write:</p>
<p><code>extension-element-prefixes="<ref>prefix-1 prefix-2
...</ref>"</code></p>
<p>In a literal result element or extension element include the xsl
prefix:</p>
@@ -213,7 +270,8 @@
<p>Keep in mind that where you declare namespaces and designate extension
prefixes determines the scope of those namespaces.To make your extensions
available throughout the stylesheet, include these settings and attribute in
the stylesheet element.</p>
</s3>
<s3 title="4. (Optional) Exclude the extension namespace declaration from
the result tree">
-<p><br/>By default, namespace declarations are included in the
transformation output. To exclude namespaces from the output, use</p>
+<p><br/>By default, namespace declarations are included in the
transformation output. To exclude
+namespaces from the output, use</p>
<p><code>exclude-result-prefixes="<ref>prefix-1 prefix-2
...</ref>"</code></p>
<p>in the stylesheet element or</p>
<p><code>xsl:exclude-result-prefixes="<ref>prefix-1 prefix-2
...</ref>"</code></p>
@@ -226,20 +284,27 @@
<code> elements="<ref>elem-1 elem-2
...elem-n</ref>"></code><br/>
<code> <!--See xalan:script below--></code><br/>
<code></xalan:component></code></p>
-<p>where <ref>func-1 func-2 ... func-n</ref> and <ref>elem-1 elem-2 ...
elem-n</ref> designate the functions and elements the extension provides and
the stylesheet uses. You can use the function-available and element-available
functions to determine at run time whether a function or element designated in
the xalan:component is actually available.</p>
-<note>If the component is implemented in Java, the values of the functions
and elements attributes are ignored. The function-available and
element-available functions use reflection to examine the actual Java
methods.</note>
+<p>where <ref>func-1 func-2 ... func-n</ref> and <ref>elem-1 elem-2 ...
elem-n</ref> designate the
+functions and elements the extension provides and the stylesheet uses. You
can use the function-available
+and element-available functions to determine at run time whether a function
or element designated in the
+xalan:component is actually available.</p>
+<note>If the component is implemented in Java, the values of the functions
and elements attributes are
+ignored. The function-available and element-available functions use
reflection to examine the actual
+Java methods.</note>
</s3>
<anchor name="setup-script"/>
<s3 title="6. Set up the xalan:script element">
-<p><br/>In each xalan:component, you must include exactly one xalan:script
element. If the extension is implemented in JavaScript:</p>
+<p><br/>In each xalan:component, you must include exactly one xalan:script
element. If the extension
+is implemented in JavaScript:</p>
<p><code><xalan:script lang="javascript" ></code><br/>
<code> <!--The implementation script--></code><br/>
<code></xalan:script></code></p>
-<p>For other scripting languages supported by BSF, use the same approach as
for JavaScript.
+<p>For other scripting languages supported by BSF, use the same approach as
for JavaScript.
The src attribute is also supported in the xalan:script element. If it is
present, the script will
be loaded from the URL specified in the src attribute. Otherwise the script
is taken from the text child
of the xalan:script element.</p>
-<p>If the extension is implemented in Java, you have three choices for the
format of the src attribute in the xalan:script element.</p>
+<p>If the extension is implemented in Java, you have three choices for the
format of the src attribute
+in the xalan:script element.</p>
<p><code><xalan:script lang="javaclass"
src="xalan://<ref>FQCN</ref>"/></code>
<br/>where <ref>FQCN</ref> is the fully qualified class name.
<br/>Example: <code><xalan:script lang="javaclass"
src="xalan://java.util.Hashtable"/></code></p>
@@ -247,7 +312,8 @@
<br/>where <ref>PJPN</ref> is the beginning of or the complete name of a
java package.
<br/>Example: <code><xalan:script lang="javaclass"
src="java.util"/></code></p>
<p><code><xalan:script lang="javaclass"
src="http://xml.apache.org/xalan/java"/></code></p>
-<p>The different formats for the value of the src attribute when using Java
extensions are more fully explained in <link
anchor="java-namespace-declare">Declare the namespace</link>.</p>
+<p>The different formats for the value of the src attribute when using Java
extensions are more fully
+explained in <link anchor="java-namespace-declare">Declare the
namespace</link>.</p>
</s3>
<s3 title="Implicit DTD for xalan:component">
<source><!ELEMENT xalan:component (xalan:script)>
@@ -265,30 +331,54 @@
<s2 title="Using an extension element">
<p>Extension elements pass the extension two objects:</p>
<ul>
-<li><jump
href="apidocs/org/apache/xalan/extensions/XSLProcessorContext.html">org.apache.xalan.extensions.XSLProcessorContext</jump>,
which provides access to the XSL processor, the XML source tree, the
stylesheet tree, the current context node, and the current mode (if
any).<br/><br/></li>
-<li><jump
href="apidocs/org/apache/xalan/templates/ElemExtensionCall.html">org.apache.xalan.templates.ElemExtensionCall</jump>,
which provides the API for interacting with the extension element.</li>
+<li><jump
href="apidocs/org/apache/xalan/extensions/XSLProcessorContext.html">
+org.apache.xalan.extensions.XSLProcessorContext</jump>, which provides
access to the XSL processor,
+the XML source tree, the stylesheet tree, the current context node, and the
current mode (if any).
+<br/><br/></li>
+<li><jump href="apidocs/org/apache/xalan/templates/ElemExtensionCall.html">
+org.apache.xalan.templates.ElemExtensionCall</jump>, which provides the API
for interacting with
+the extension element.</li>
</ul>
-<p>You can use the ElemExtensionCall getAttribute(String name) method, for
example, to read element attributes in their raw form. Use the
getAttribute(String name, Node sourceNode, XSLTEngineImpl processor) method to
evaluate the attribute as an attribute value template. Note that the method
names are the same but the method signatures are different. For full details,
see the <jump
href="apidocs/org/apache/xalan/templates/ElemExtensionCall.html">Javadoc</jump>
for the ElemExtensionCall class.</p>
+<p>You can use the ElemExtensionCall getAttribute(String name) method, for
example, to read element
+attributes in their raw form. Use the getAttribute(String name, Node
sourceNode, XSLTEngineImpl
+processor) method to evaluate the attribute as an attribute value template.
Note that the method
+names are the same but the method signatures are different. For full
details, see the
+<jump
href="apidocs/org/apache/xalan/templates/ElemExtensionCall.html">Javadoc</jump>
for the
+ElemExtensionCall class.</p>
<s3 title="Implementing an extension element">
-<p>For each extension element in a namespace, the implementation must be a
Java method with the following signature, or the scripting language
equivalent:</p>
+<p>For each extension element in a namespace, the implementation must be a
Java method with the
+following signature, or the scripting language equivalent:</p>
<p><code><ref>Type
element</ref>(org.apache.xalan.extensions.XSLProcessorContext, </code><br/>
<code> org.apache.xalan.templates.ElemExtensionCall
extensionElement)</code></p>
-<p>where <ref>Type</ref> designates the return type and <ref>element</ref>
is the local part of the extension element name (the element name without the
namespace prefix). In the method signature, you may also use superclasses of
the indicated types.</p>
-<p>If the extension element is implemented in a loosely typed scripting
language, such as JavaScript, the arguments and return value are untyped.</p>
-<p><em>Caution:</em> The value returned by an extension element is placed in
the transformation result. If you are not interested in a return value, use a
public void Java method or return null from a scripting language function.</p>
+<p>where <ref>Type</ref> designates the return type and <ref>element</ref>
is the local part of the
+extension element name (the element name without the namespace prefix). In
the method signature, you
+may also use superclasses of the indicated types.</p>
+<p>If the extension element is implemented in a loosely typed scripting
language, such as JavaScript,
+the arguments and return value are untyped.</p>
+<p><em>Caution:</em> The value returned by an extension element is placed in
the transformation result.
+If you are not interested in a return value, use a public void Java method
or return null from a
+scripting language function.</p>
<p>Java example: <code>public void myElement</code><br/>
<code> (org.apache.xalan.extensions.XSLProcessorContext,
</code><br/>
<code> org.apache.xalan.templates.ElemExtensionCall
extensionElement)</code></p>
<p>JavaScript example: <code>function myElement(xslProcContext,
element)</code></p>
-<p>The <link idref="extensionslib" anchor="redirect">Redirect
extension</link> in the extensions library contains three extension
elements.</p>
+<p>The <link idref="extensionslib" anchor="redirect">Redirect
extension</link> in the extensions
+library contains three extension elements.</p>
</s3>
</s2><anchor name="ext-functions"/>
<s2 title="Using extension functions">
<p>Extension functions may include arguments of any type and return a value
of any type.</p>
-<p>XSLT recognizes five data types: node-set, result-tree-fragment, string,
boolean, and number. You can use XPath expressions to set variables with values
of these types. You can also pass literals for string, boolean, and number
arguments. If you want to pass an argument of a type that XSLT does not
recognize, use another extension function to return an object of that type. The
stylesheet that appears in <link anchor="format-date-stylesheet">Formatting a
date</link>, for example uses extension functions to return a Date object and a
SimpleDateFormat object, and then uses these objects to call another extension
function.</p>
+<p>XSLT recognizes five data types: node-set, result-tree-fragment, string,
boolean, and number. You
+can use XPath expressions to set variables with values of these types. You
can also pass literals for
+string, boolean, and number arguments. If you want to pass an argument of a
type that XSLT does not
+recognize, use another extension function to return an object of that type.
The stylesheet that appears
+in <link anchor="format-date-stylesheet">Formatting a date</link>, for
example uses extension functions
+to return a Date object and a SimpleDateFormat object, and then uses these
objects to call another
+extension function.</p>
<s3 title="Data type mapping and method selection">
-<p>When calling an extension function written in a language other than Java,
objects of the following Java classes will always be passed to the extension
function:</p>
+<p>When calling an extension function written in a language other than Java,
objects of the following
+Java classes will always be passed to the extension function:</p>
<table>
<tr>
<th>XSLT Type</th>
@@ -316,7 +406,8 @@
</tr>
</table>
<p>Any non-XSLT type is passed without conversion.</p>
-<p>When calling an extension function written in Java, the extension
function signature can specify any of the indicated Java types, as explained
below:</p>
+<p>When calling an extension function written in Java, the extension
function signature can specify
+any of the indicated Java types, as explained below:</p>
<table>
<tr>
<th>XSLT Type</th>
@@ -324,7 +415,9 @@
</tr>
<tr>
<td>Node-Set</td>
- <td>org.w3c.dom.traversal.NodeIterator, org.w3c.dom.NodeList,
org.w3c.dom.Node or its subclasses, java.lang.String, java.lang.Object, char,
[double, float, long, int, short, byte,] boolean</td>
+ <td>org.w3c.dom.traversal.NodeIterator, org.w3c.dom.NodeList,
org.w3c.dom.Node or its
+ subclasses, java.lang.String, java.lang.Object, char, [double,
float, long, int, short, byte,]
+ boolean</td>
</tr>
<tr>
<td>String</td>
@@ -336,30 +429,45 @@
</tr>
<tr>
<td>Number</td>
- <td>double, java.lang.Double, float, long, int, short,char, byte,
boolean, java.lang.String, java.lang.Object</td>
+ <td>double, java.lang.Double, float, long, int, short,char, byte,
boolean, java.lang.String,
+ java.lang.Object</td>
</tr>
<tr>
<td>Result Tree Fragment</td>
- <td>org.w3c.dom.traversal.NodeIterator, org.w3c.dom.NodeList,
org.w3c.dom.Node or its subclasses, java.lang.String, java.lang.Object, char,
[double, float, long, int, short, byte,] boolean</td>
+ <td>org.w3c.dom.traversal.NodeIterator, org.w3c.dom.NodeList,
org.w3c.dom.Node or its subclasses,
+ java.lang.String, java.lang.Object, char, [double, float, long,
int, short, byte,] boolean</td>
</tr>
<tr>
<td>Non-XSLT Type</td>
- <td>the native type or any of its superclasses, double, float, long,
int, short, char, byte, java.lang.String</td>
+ <td>the native type or any of its superclasses, double, float, long,
int, short, char, byte,
+ java.lang.String</td>
</tr>
</table>
<p>When calling extension functions written in Java, &xslt4j; selects the
method to call as follows:</p>
<ol>
- <li>&xslt4j; selects all methods whose name matches the extension function
name as specified in <link anchor="ext-func-calls">Extension function Java
calls</link>.</li>
+ <li>&xslt4j; selects all methods whose name matches the extension function
name as specified in
+ <link anchor="ext-func-calls">Extension function Java
calls</link>.</li>
<li>From this list of methods, &xslt4j; determines which methods are
<ref>qualified</ref>.</li>
- <li>Each qualified method is assigned a score based on the table shown
above. To assign the score to a given method, &xslt4j; examines each of the
XSLT argument types in the function invocation in the stylesheet. For each
argument, the appropriate row in the table above is selected. Then, the
corresponding Java parameter type in the method signature in the Java program
is scored. Types which appear earlier in the list are given a higher score.
That is, the list appears in order of scoring preference from highest to
lowest. Types shown in square brackets have equal priority.</li>
- <li>The method with the highest score is invoked after the arguments are
converted to the appropriate type. If more than one method has the highest
score, an exception is thrown.</li>
+ <li>Each qualified method is assigned a score based on the table shown
above. To assign the score
+ to a given method, &xslt4j; examines each of the XSLT argument types
in the function invocation
+ in the stylesheet. For each argument, the appropriate row in the table
above is selected. Then,
+ the corresponding Java parameter type in the method signature in the
Java program is scored.
+ Types which appear earlier in the list are given a higher score. That
is, the list appears in
+ order of scoring preference from highest to lowest. Types shown in
square brackets have equal
+ priority.</li>
+ <li>The method with the highest score is invoked after the arguments are
converted to the appropriate
+ type. If more than one method has the highest score, an exception is
thrown.</li>
</ol>
-<p>Any extension function written in Java can have a first parameter of type
<code>org.apache.xalan.extensions.ExpressionContext</code>. Any method with an
ExpressionContext as the first parameter will score higher than any method
which does not have an ExpressionContext as a first parameter.</p>
+<p>Any extension function written in Java can have a first parameter of
+type <code>org.apache.xalan.extensions.ExpressionContext</code>. Any method
with an
+ExpressionContext as the first parameter will score higher than any method
which does not have an
+ExpressionContext as a first parameter.</p>
</s3>
<anchor name="ext-func-retval"/>
<s3 title="Return values">
-<p>The &xslt4j; extension mechanism examines the class of the value returned
from a function and converts the value into an XSLT type according to the
following table:</p>
+<p>The &xslt4j; extension mechanism examines the class of the value returned
from a function and
+ converts the value into an XSLT type according to the following table:</p>
<table>
<tr>
<th>Java Types</th>
@@ -394,37 +502,64 @@
<td>Non-XSLT Type</td>
</tr>
</table>
- <p>Note that the above test is applied using <code>instanceof</code> so
that any subclasses of the classes listed above will be treated the same as the
listed superclass. For example, a <code>java.lang.Double</code> will be
treated the same as a <code>java.lang.Number</code> and will be converted to an
XSLT Number.</p>
- <note>The return value conversion can somtimes cause confusion. For
example, if your extension function returns an object that is a subclass of
NodeIterator, that object will be converted by &xslt4j; to an XSLT Node-Set.
If you later attempt to treat that object as a non-XSLT object of your original
class and try to invoke a method on that object, your method invocation will
fail.</note>
+ <p>Note that the above test is applied using <code>instanceof</code> so
that any subclasses of the
+ classes listed above will be treated the same as the listed superclass.
For example, a
+ <code>java.lang.Double</code> will be treated the same as a
<code>java.lang.Number</code> and
+ will be converted to an XSLT Number.</p>
+ <note>The return value conversion can somtimes cause confusion. For
example, if your
+ extension function returns an object that is a subclass of
NodeIterator, that object will be
+ converted by &xslt4j; to an XSLT Node-Set. If you later attempt to
treat that object as a
+ non-XSLT object of your original class and try to invoke a method on
that object, your method
+ invocation will fail.</note>
</s3>
<anchor name="ext-func-calls"/>
<s3 title="Extension function Java calls">
-<p>The technique for instantiating Java objects and calling Java methods
depends on the format of the extension namespace that was declared. See <link
anchor="java-namespace-declare">Declare the namespace</link> for the three
different formats of namespace declarations for Java extensions. For each
namespace format, the section below describes how to instantiate an object, how
to invoke an instance method, and how to invoke a static method. The sections
below explain, for each syntax, which methods are <ref>qualified</ref> for
method selection as described in the preceeding section.</p>
+<p>The technique for instantiating Java objects and calling Java methods
depends on the format of the
+ extension namespace that was declared. See <link
anchor="java-namespace-declare">Declare the
+ namespace</link> for the three different formats of namespace
declarations for Java extensions.
+ For each namespace format, the section below describes how to instantiate
an object, how to invoke
+ an instance method, and how to invoke a static method. The sections below
explain, for each syntax,
+ which methods are <ref>qualified</ref> for method selection as described
in the preceeding section.</p>
<s4 title="Class format namespace">
<p><br/><em>To create an instance of an object</em>:
<br/><code><ref>prefix</ref>:new (<ref>args</ref>)</code></p>
-<p>where <ref>prefix</ref> is the extension namespace prefix. A new instance
is to be created with the <ref>args</ref> constructor arguments (if any). All
constructor methods are qualified for method selection.
+<p>where <ref>prefix</ref> is the extension namespace prefix. A new instance
is to be created with
+ the <ref>args</ref> constructor arguments (if any). All constructor
methods are qualified for method
+ selection.
<br/>Example: <code><xsl:variable name="myType"</code>
<br/><code> select="my-class:new()"></code></p>
<p><em>To invoke an instance method on a specified object</em>:
<br/><code><ref>prefix</ref>:<ref>methodName</ref> (<ref>object</ref>,
<ref>args</ref>)</code></p>
-<p>where <ref>prefix</ref> is the extension namespace prefix and
<ref>methodName</ref> is the name of the method to invoke on <ref>object</ref>
with the <ref>args</ref> arguments. <ref>object</ref> must be an object of the
class indicated by the namespace declaration. Otherwise, the case shown
immediately below will apply. Only instance methods with the name
<ref>methodName</ref> are qualified methods. If a matching method is found,
<ref>object</ref> will be used to identify the object instance and
<ref>args</ref> will be passed to the invoked method.
+<p>where <ref>prefix</ref> is the extension namespace prefix and
<ref>methodName</ref> is the name of
+ the method to invoke on <ref>object</ref> with the <ref>args</ref>
arguments. <ref>object</ref> must
+ be an object of the class indicated by the namespace declaration.
Otherwise, the case shown
+ immediately below will apply. Only instance methods with the name
<ref>methodName</ref> are
+ qualified methods. If a matching method is found, <ref>object</ref> will
be used to identify the
+ object instance and <ref>args</ref> will be passed to the invoked method.
<br/>
Example: <code><xsl:variable name="new-pop"</code><br/>
<code> select="my-class:valueOf($myType,
string(@population))"></code></p>
<p><em>To invoke an instance method on a default object</em>:
<br/><code><ref>prefix</ref>:<ref>methodName</ref>
(<ref>args</ref>)</code></p>
-<p>where <ref>prefix</ref> is the extension namespace prefix and
<ref>methodName</ref> is the name of the method to invoke with the
<ref>args</ref> arguments. The first <ref>arg</ref>, if any, must not be an
object of the class indicated by the namespace declaration. Otherwise, the
case shown immediately above will apply. Only instance methods with the name
<ref>methodName</ref> are qualified methods. If a matching method is found, a
default instance of the class will be created if it does not already exist.
+<p>where <ref>prefix</ref> is the extension namespace prefix and
<ref>methodName</ref> is the name of
+the method to invoke with the <ref>args</ref> arguments. The first
<ref>arg</ref>, if any, must not be
+an object of the class indicated by the namespace declaration. Otherwise,
the case shown immediately
+above will apply. Only instance methods with the name <ref>methodName</ref>
are qualified methods. If
+a matching method is found, a default instance of the class will be created
if it does not already
+exist.
<br/>
Example: <code><xsl:variable name="new-pop"</code><br/>
<code> select="my-class:valueOf(string(@population))"></code></p>
<p><em>To invoke a static method</em>:
<br/><code><ref>prefix</ref>:<ref>methodName</ref>
(<ref>args</ref>)</code></p>
-<p>where <ref>prefix</ref> is the extension namespace prefix and
<ref>methodName</ref> is the name of the method to invoke with the
<ref>args</ref> arguments. Only static methods with the name
<ref>methodName</ref> are qualified methods. If a matching method is found,
<ref>args</ref> will be passed to the invoked static method.
+<p>where <ref>prefix</ref> is the extension namespace prefix and
<ref>methodName</ref> is the name of
+the method to invoke with the <ref>args</ref> arguments. Only static methods
with the name
+<ref>methodName</ref> are qualified methods. If a matching method is found,
<ref>args</ref> will
+be passed to the invoked static method.
<br/>
Example: <code><xsl:variable name="new-pop"</code><br/>
<code> select="my-class:printit(string(@population))"></code></p>
@@ -432,56 +567,86 @@
<s4 title="Package format namespace">
<p><br/><em>To create an instance of an object</em>:
<br/><code><ref>prefix</ref>:<ref>subpackage</ref>.<ref>class</ref>.new
(<ref>args</ref>)</code></p>
-<p>where <ref>prefix</ref> is the extension namespace prefix,
<ref>subpackage</ref> is the rest of the package name (the beginning of the
package name was in the namespace declaration), and <ref>class</ref> is the
name of the class. A new instance is to be created with the <ref>args</ref>
constructor arguments (if any). All constructor methods are qualified for
method selection.
+<p>where <ref>prefix</ref> is the extension namespace prefix,
<ref>subpackage</ref> is the rest of the
+package name (the beginning of the package name was in the namespace
declaration), and <ref>class</ref>
+is the name of the class. A new instance is to be created with the
<ref>args</ref> constructor
+arguments (if any). All constructor methods are qualified for method
selection.
<br/>Example: <code><xsl:variable name="myType"</code>
<br/><code> select="my-package:extclass.new()"></code></p>
<p><em>To invoke an instance method on a specified instance</em>:
<br/><code><ref>prefix</ref>:<ref>methodName</ref> (<ref>object</ref>,
<ref>args</ref>)</code></p>
-<p>where <ref>prefix</ref> is the extension namespace prefix and
<ref>methodName</ref> is the name of the method to invoke on <ref>object</ref>
with the <ref>args</ref> arguments. Only instance methods of the
<ref>object</ref> with the name <ref>methodName</ref> are qualified methods. If
a matching method is found, <ref>object</ref> will be used to identify the
object instance and <ref>args</ref> will be passed to the invoked method.
+<p>where <ref>prefix</ref> is the extension namespace prefix and
<ref>methodName</ref> is the name of
+the method to invoke on <ref>object</ref> with the <ref>args</ref>
arguments. Only instance methods of
+the <ref>object</ref> with the name <ref>methodName</ref> are qualified
methods. If a matching method
+is found, <ref>object</ref> will be used to identify the object instance and
<ref>args</ref> will be
+passed to the invoked method.
<br/>
Example: <code><xsl:variable name="new-pop"</code><br/>
<code> select="my-package:valueOf($myType,
string(@population))"></code></p>
<p><em>To invoke a static method</em>:
<br/><code><ref>prefix</ref>:<ref>subpackage</ref>.<ref>class</ref>.<ref>methodName</ref>
(<ref>args</ref>)</code></p>
-<p>where <ref>prefix</ref> is the extension namespace prefix,
<ref>subpackage</ref> is the rest of the package name (the beginning of the
package name was in the namespace declaration), <ref>class</ref> is the name of
the class, and <ref>methodName</ref> is the name of the method to invoke with
the <ref>args</ref> arguments. Only static methods with the name
<ref>methodName</ref> are qualified methods. If a matching method is found,
<ref>args</ref> will be passed to the invoked static method.
+<p>where <ref>prefix</ref> is the extension namespace prefix,
<ref>subpackage</ref> is the rest of
+the package name (the beginning of the package name was in the namespace
declaration), <ref>class</ref>
+is the name of the class, and <ref>methodName</ref> is the name of the
method to invoke with the
+<ref>args</ref> arguments. Only static methods with the name
<ref>methodName</ref> are qualified
+methods. If a matching method is found, <ref>args</ref> will be passed to
the invoked static method.
<br/>
Example: <code><xsl:variable name="new-pop"</code><br/>
<code> select="my-package:extclass.printit(string(@population))"></code></p>
-<note>Unlike the class format namespace, there is no concept of a default
object since the namespace declaration does not identify a unique class.</note>
+<note>Unlike the class format namespace, there is no concept of a default
object since the namespace
+declaration does not identify a unique class.</note>
</s4>
<s4 title="Java format namespace">
<p><br/><em>To create an instance of an object</em>:
<br/><code><ref>prefix</ref>:<ref>FQCN</ref>.new (<ref>args</ref>)</code></p>
-<p>where <ref>prefix</ref> is the extension namespace prefix for the Java
namespace and <ref>FQCN</ref> is the fully qualified class name of the class
whose constructor is to be called. A new instance is to be created with the
<ref>args</ref> constructor arguments (if any). All constructor methods are
qualified for method selection.
+<p>where <ref>prefix</ref> is the extension namespace prefix for the Java
namespace and <ref>FQCN</ref>
+is the fully qualified class name of the class whose constructor is to be
called. A new instance is to
+be created with the <ref>args</ref> constructor arguments (if any). All
constructor methods are
+qualified for method selection.
<br/>Example: <code><xsl:variable name="myHash"</code>
<br/><code> select="java:java.util.Hashtable.new()"></code></p>
<p><em>To invoke an instance method on a specified instance</em>:
<br/><code><ref>prefix</ref>:<ref>methodName</ref> (<ref>object</ref>,
<ref>args</ref>)</code></p>
-<p>where <ref>prefix</ref> is the extension namespace prefix and
<ref>methodName</ref> is the name of the method to invoke on <ref>object</ref>
with the <ref>args</ref> arguments. Only instance methods of the
<ref>object</ref> with the name <ref>methodName</ref> are qualified methods. If
a matching method is found, <ref>object</ref> will be used to identify the
object instance and <ref>args</ref> will be passed to the invoked method.
+<p>where <ref>prefix</ref> is the extension namespace prefix and
<ref>methodName</ref> is the name of
+the method to invoke on <ref>object</ref> with the <ref>args</ref>
arguments. Only instance methods of
+the <ref>object</ref> with the name <ref>methodName</ref> are qualified
methods. If a matching method
+is found, <ref>object</ref> will be used to identify the object instance and
<ref>args</ref> will be
+passed to the invoked method.
<br/>
Example: <code><xsl:variable name="new-pop"</code><br/>
<code> select="java:put($myHash,
string(@region), $newpop)"></code></p>
<p><em>To invoke a static method</em>:
<br/><code><ref>prefix</ref>:<ref>FQCN</ref>.<ref>methodName</ref>
(<ref>args</ref>)</code></p>
-<p>where <ref>prefix</ref> is the extension namespace prefix,
<ref>FQCN</ref> is the fully qualified class name of the class whose static
method is to be called, and <ref>methodName</ref> is the name of the method to
invoke with the <ref>args</ref> arguments. Only static methods with the name
<ref>methodName</ref> are qualified methods. If a matching method is found,
<ref>args</ref> will be passed to the invoked static method.
+<p>where <ref>prefix</ref> is the extension namespace prefix,
<ref>FQCN</ref> is the fully qualified
+class name of the class whose static method is to be called, and
<ref>methodName</ref> is the name of
+the method to invoke with the <ref>args</ref> arguments. Only static methods
with the name
+<ref>methodName</ref> are qualified methods. If a matching method is found,
<ref>args</ref> will be
+passed to the invoked static method.
<br/>
Example: <code><xsl:variable name="new-pop"</code><br/>
<code> select="java:java.lang.Integer.valueOf(string(@population))"></code></p>
-<note>Unlike the class format namespace, there is no concept of a default
object since the namespace declaration does not identify a unique class.</note>
+<note>Unlike the class format namespace, there is no concept of a default
object since the namespace
+declaration does not identify a unique class.</note>
</s4>
</s3>
<s3 title="Passing Nodes to java">
-<p>Please keep in mind that <em>all</em> LocationPath expressions return a
node-set, even if the expression only returns a single attribute or a text node
(node-sets with one member). You can use the XSLT string() function (as in the
syntax examples above) to convert a node-set value to string, and the number()
function to convert a node-set value to number (a double).</p>
+<p>Please keep in mind that <em>all</em> LocationPath expressions return a
node-set, even if the
+expression only returns a single attribute or a text node (node-sets with
one member). You can use
+the XSLT string() function (as in the syntax examples above) to convert a
node-set value to string,
+and the number() function to convert a node-set value to number (a
double).</p>
<p>If you want to pass a node-set to an extension function, set up a Java
method to accept an
-org.w3c.dom.NodeList (or an org.apache.xpath.NodeSet, which implements
NodeList, if you want to modify the nodes).</p>
-<p>Suppose, for example, you have a myExtensions.ProcessNodes class with the
following doSomething method:</p>
+org.w3c.dom.NodeList (or an org.apache.xpath.NodeSet, which implements
NodeList, if you want to modify
+the nodes).</p>
+<p>Suppose, for example, you have a myExtensions.ProcessNodes class with the
following doSomething
+method:</p>
<p><code>public static boolean doSomething(org.w3c.dom.NodeList
nList)</code></p>
-<p>Assuming you set up this extension in the node-ext namespace, any of the
following extension calls from a stylesheet are syntactically possible:</p>
+<p>Assuming you set up this extension in the node-ext namespace, any of the
following extension calls
+from a stylesheet are syntactically possible:</p>
<p><code><!--Process the current node--></code><br/>
<code><xsl:variable name="success"
select="node-ext:MyExtensions.ProcessNodes.doSomething(.)"/></code></p>
<p><code><!--Process all nodes in current context--></code><br/>
@@ -492,44 +657,72 @@
<code><xsl:variable name="success"
select="node-ext:MyExtensions.ProcessNodes.doSomething(foo/baz)"/></code></p>
<p><code><!--Process the/foo/baz and /bar/saz nodes --></code><br/>
<code><xsl:variable name="success"
select="node-ext:MyExtensions.ProcessNodes.doSomething(/foo/baz |
/bar/saz)"/></code></p>
-<p>The NodeList is in fact a list of references into the XML document, so
keep in mind that getNextSibling(), for example, gets you the next sibling in
the document, which may not be the next Node in the NodeList.</p>
+<p>The NodeList is in fact a list of references into the XML document, so
keep in mind that
+getNextSibling(), for example, gets you the next sibling in the document,
which may not be the next
+Node in the NodeList.</p>
</s3>
<s3 title="Implementing extension functions">
-<p>For each extension function in a namespace which is implemented in a
language other than Java, the implementation must include a method with the
following signature, or the scripting language equivalent:</p>
+<p>For each extension function in a namespace which is implemented in a
language other than Java, the
+implementation must include a method with the following signature, or the
scripting language
+equivalent:</p>
<p><code>public <ref> object function</ref>(<ref>args</ref>)</code></p>
-<p>where <ref>object</ref> is the return type, <ref>function</ref> is the
local part of the extension function name (the function name without the
namespace prefix), and <ref>args</ref> correspond to the arguments in the
function call.</p>
-<p>In addition, for extension functions implemented in Java, the
implementation may include either a Java method with the signature shown above
or one with the following signature:</p>
-<p><code>public <ref> object
function</ref>(org.apache.xalan.extensions.ExpressionContext,
<ref>args</ref>)</code></p>
+<p>where <ref>object</ref> is the return type, <ref>function</ref> is the
local part of the extension
+function name (the function name without the namespace prefix), and
<ref>args</ref> correspond to the
+arguments in the function call.</p>
+<p>In addition, for extension functions implemented in Java, the
implementation may include either a
+Java method with the signature shown above or one with the following
signature:</p>
+<p><code>public <ref> object
function</ref>(org.apache.xalan.extensions.ExpressionContext,
+<ref>args</ref>)</code></p>
</s3>
</s2><anchor name="java-namespace"/>
<s2 title="Alternative: using the abbreviated syntax for extensions
implemented in Java">
-<p>For extension functions and extension elements implemented in Java,
&xslt4j; permits an abbreviated syntax. When you use the abbreviated syntax,
you do not use an xalan:component to designate the functions.</p>
-<p>The abbreviated syntax supports the use of extension functions and
extension elements implemented in Java. You cannot use this syntax with
extensions implemented in JavaScript or another scripting language.</p>
+<p>For extension functions and extension elements implemented in Java,
&xslt4j; permits an abbreviated
+syntax. When you use the abbreviated syntax, you do not use an
xalan:component to designate the
+functions.</p>
+<p>The abbreviated syntax supports the use of extension functions and
extension elements implemented
+in Java. You cannot use this syntax with extensions implemented in
JavaScript or another scripting
+language.</p>
<anchor name="java-namespace-declare"/>
<s3 title="Declare the namespace">
-<p>Declare the namespace for your extensions using one of the following
three formats. The technique for invoking an extension for each format is
explained in <link anchor="ext-func-calls">Extension function Java
calls</link>.</p>
+<p>Declare the namespace for your extensions using one of the following
three formats. The
+technique for invoking an extension for each format is explained in
+<link anchor="ext-func-calls">Extension function Java calls</link>.</p>
<p><em>class format:</em>
<code>xmlns:my-class="xalan://<ref>FQCN</ref>"</code></p>
<p>where <ref>FQCN</ref> is the fully qualified class name.
<br/>Examples: <code>xmlns:my-class="xalan://java.util.Hashtable"</code>
-<br/> <code>xmlns:my-class="xalan://mypackage.myclass"</code></p>
+<br/>
+<code>xmlns:my-class="xalan://mypackage.myclass"</code></p>
<p><em>package format:</em>
<code>xmlns:my-class="xalan://<ref>PJPN</ref>"</code></p>
-<p>where <ref>PJPN</ref> is a partial java package name. That is, it is the
beginning of or the complete name of a java package.
+<p>where <ref>PJPN</ref> is a partial java package name. That is, it is the
beginning of or the
+complete name of a java package.
<br/>Examples: <code>xmlns:my-package="xalan://java.util"</code>
-<br/> <code>xmlns:my-package="xalan://mypackage"</code></p>
+<br/>
+<code>xmlns:my-package="xalan://mypackage"</code></p>
<p><em>Java format:</em>
<code>xmlns:java="http://xml.apache.org/xalan/java"</code></p>
-<note>The old namespace http://xml.apache.org/xslt/java is still supported
for backward compatibility.</note>
-<note>Although the namespace declarations for the class and package formats
are shown with the xalan:// prefix, the current implementation for those
formats will simply use the string to the right of the rightmost forward slash
as the Java class name. This format, however, is the preferred format for
extension namespace declarations.</note>
-<note>The class: prefix which was sometimes required in earlier versions of
&xslt4j; is no longer required.</note>
-<note>These formats are also available when coding the src attribute of the
xalan:script element as explained in <link anchor="setup-script">Set up the
xalan:script element</link>.</note>
+<note>The old namespace http://xml.apache.org/xslt/java is still supported
for backward compatibility.
+</note>
+<note>Although the namespace declarations for the class and package formats
are shown with the
+xalan:// prefix, the current implementation for those formats will simply
use the string to the right
+of the rightmost forward slash as the Java class name. This format, however,
is the preferred
+format for extension namespace declarations.</note>
+<note>The class: prefix which was sometimes required in earlier versions of
&xslt4j; is no longer
+required.</note>
+<note>These formats are also available when coding the src attribute of the
xalan:script element
+as explained in <link anchor="setup-script">Set up the xalan:script
element</link>.</note>
</s3>
<s3 title="Use the namespace when you make extension calls">
-<p>Use the declared prefix with the syntax described in <link
anchor="ext-func-calls">Extension function Java calls</link>.</p>
-<p>That is all. You do not include an xalan:component element. Using the
abbreviated syntax clearly involves less setup than using the
xalan:component/xalan:script approach.</p>
-<note>We recommend that, for extensions coded in Java, the abbreviated
syntax should always be used since the xalan:component/xalan:script constructs
add no functionality.</note>
-<note>The abbreviated syntax is supported in XSLTC, but the
xalan:component/xalan:script constructs are not.</note>
+<p>Use the declared prefix with the syntax described in <link
anchor="ext-func-calls">Extension
+function Java calls</link>.</p>
+<p>That is all. You do not include an xalan:component element. Using the
abbreviated syntax clearly
+involves less setup than using the xalan:component/xalan:script approach.</p>
+<note>We recommend that, for extensions coded in Java, the abbreviated
syntax should always be used
+since the xalan:component/xalan:script constructs add no
functionality.</note>
+<note>The abbreviated syntax is supported in &xslt4jc-short;, but the
xalan:component/xalan:script constructs
+are not.</note>
</s3><anchor name="ex-java-namespace"/>
<s3 title="Example: Formatting a date">
-<p>This example uses extension functions to call the SimpleDateFormat class
and the IntDate class. IntDate uses String arguments to set up a Date
object:</p>
+<p>This example uses extension functions to call the SimpleDateFormat class
and the IntDate class.
+IntDate uses String arguments to set up a Date object:</p>
<source>import java.util.Date;
import java.util.Calendar;
@@ -547,7 +740,9 @@
return c.getTime();
}
}</source>
-<p>The template transforms date elements with four attributes. For example,
it transforms <code><date format="EEEE, MMM dd, yyyy" year="2000" month="4"
day="27"/></code> into <p>Date: Thursday, April 27,
2000.</p>.</p>
+<p>The template transforms date elements with four attributes. For example,
it transforms
+<code><date format="EEEE, MMM dd, yyyy" year="2000" month="4"
day="27"/></code>
+into <p>Date: Thursday, April 27, 2000.</p>.</p>
<p>As you review this stylesheet, please keep the following in mind:</p>
<ul>
<li>The exclude-result-prefixes stylesheet attribute prevents the java
namespace declaration from
@@ -562,7 +757,8 @@
<li>The formatter variable holds a SimpleDateFormat object, and the date
variable holds a Date object.
XSLT does not understand either of these types, but they are used to
call the SimpleDateFormat format
method. In that call, $formatter is the object, and $date is the
argument. The syntax for calling
- Java constructors and methods is described above in <link
anchor="ext-func-calls">Extension function Java calls</link>.</li>
+ Java constructors and methods is described above in <link
anchor="ext-func-calls">Extension
+ function Java calls</link>.</li>
</ul><anchor name="format-date-stylesheet"/>
<source><?xml version="1.0"?>
<xsl:stylesheet
@@ -593,7 +789,9 @@
</s3>
</s2>
<s2 title="Examples: using Java and JavaScript to implement the same
extension">
-<p>This section contains two examples. The first example uses a Java
extension to transform a set of name elements into an alphabetical and
numbered list. The second example uses a JavaScript script to do the same. Both
examples include equivalent extension elements and an extension function.</p>
+<p>This section contains two examples. The first example uses a Java
extension to transform a set of
+name elements into an alphabetical and numbered list. The second example
uses a JavaScript script
+to do the same. Both examples include equivalent extension elements and an
extension function.</p>
<anchor name="ex-java"/>
<s3 title="Java implementation">
<p>MyCounter.java</p>
1.29 +32 -13 xml-xalan/java/xdocs/sources/xalan/whatsnew.xml
Index: whatsnew.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/whatsnew.xml,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- whatsnew.xml 27 Jan 2003 18:45:36 -0000 1.28
+++ whatsnew.xml 21 Feb 2003 20:10:08 -0000 1.29
@@ -58,18 +58,37 @@
-->
<s1 title="What's new in &xslt4j2;">
<ul>
- <li><link anchor="design">New design</link></li>
- <li><link anchor="dtm">Document Table Model (DTM)</link></li>
- </ul><anchor name="design"/>
- <s2 title="New Design">
- <p>&xslt4j2; represents a fundamental redesign of &xslt4j;. The primary
objective of this redesign is an easier-to-use, more understandable, and more
modular API that encourages wider participation in its ongoing development by
the open-source XML developer community, and that lends itself to "streaming,"
the production of transformation output while the input is still being
parsed.</p>
-<p>&xslt4j2; builds on <resource-ref idref="sax2"/>, <resource-ref
idref="dom2"/>, and the <resource-ref idref="jaxp"/>. For example, &xslt4j2;
incorporates the SAX parsing event model in its support for the incremental
production of transformation output. &xslt4j2; also implements the standard
TrAX API (see below) that enables you to code your XML applications without
reference to the internal details of a particular Transformer or XML parser.</p>
-<p>Given the scope of the redesign, the changes with respect to &xslt4j; 1
(no longer available) are global in nature. For an introduction to the
&xslt4j2; usage patterns, see <link idref="usagepatterns">Basic Usage
Patterns</link>.</p>
-<p>&xslt4j2; implements the <link idref="trax">TRaX (Transformation API for
XML)</link> interfaces. The product of extensive open-source collaboration by
members of the XML developer community, TrAX provides a conceptual framework
and a standard API for performing XML transformations. During its evolution,
the TrAX API has undergone several revisions. We believe this API has now
reached or is very close to final form. In November 2000, TrAX was incorporated
into <resource-ref idref="jsr063"/>, the Java API for XML Processing 1.1 ,
which has been published for public review (see <resource-ref
idref="jaxp11"/>). We strongly encourage you to utilize the TrAX framework when
you use &xslt4j2; to perform XML transformations.</p>
-<p>The basic organization of TrAX is quite simple: use a TransformerFactory
to process transformation instructions and generate a Transformer, with which
you can apply the processed transformation instructions to your XML Source,
producing a transformation Result. For more detail, see <link
idref="usagepatterns" anchor="basic">Basic steps</link>.</p>
-<p>As part of the Java API for XML Processing, TraX provides a stable
framework for plugging Transformers (like &xslt4j;) and XML parsers (like
&xml4j;) into your applications without tying yourself to the internal details
of those implementations. See <link idref="usagepatterns"
anchor="plug">Plugging in a Transformer and XML parser</link>.</p>
-</s2><anchor name="dtm"/>
-<s2 title="&xslt4j; DTM">
-<p>In place of the DOM object tree of nodes, the Document Table Model (DTM)
uses integer arrays and string pools to represent the structure and content of
the XML document to be transformed. The motivation behind this model is to
optimize performance and minimize storage. For more information, see <link
idref="dtm">DTM</link>.</p>
+ <li><link anchor="design">New design</link></li>
+</ul>
+
+<anchor name="design"/>
+<s2 title="New Design">
+<p>&xslt4j2; represents a fundamental redesign of &xslt4j;. The primary
objective of this redesign is
+ an easier-to-use, more understandable, and more modular API that
encourages wider participation in
+ its ongoing development by the open-source XML developer community, and
that lends itself to
+ "streaming," the production of transformation output while the input is
still being parsed.</p>
+<p>&xslt4j2; builds on <resource-ref idref="sax2"/>, <resource-ref
idref="dom2"/>, and the
+ <resource-ref idref="jaxp12"/>. For example, &xslt4j2; incorporates the
SAX parsing event model in
+ its support for the incremental production of transformation output.
&xslt4j2; also implements the
+ standard TrAX API (see below) that enables you to code your XML
applications without reference to
+ the internal details of a particular Transformer or XML parser.</p>
+<p>Given the scope of the redesign, the changes with respect to &xslt4j; 1
(no longer available) are
+ global in nature. For an introduction to the &xslt4j2; usage patterns,
see
+ <link idref="usagepatterns">Basic Usage Patterns</link>.</p>
+<p>&xslt4j2; implements the <link idref="trax">TRaX (Transformation API for
XML)</link> interfaces. The
+ product of extensive open-source collaboration by members of the XML
developer community, TrAX provides
+ a conceptual framework and a standard API for performing XML
transformations. In November 2000, TrAX
+ was incorporated into <resource-ref idref="jsr063"/>, the Java API for
+ XML Processing 1.2 (see <resource-ref idref="jaxp12"/>).
+ We strongly encourage you to utilize the TrAX framework when you use
&xslt4j2; to perform XML
+ transformations.</p>
+<p>The basic organization of TrAX is quite simple: use a TransformerFactory
to process transformation
+ instructions and generate a Transformer, with which you can apply the
processed transformation
+ instructions to your XML Source, producing a transformation Result. For
more detail, see
+ <link idref="usagepatterns" anchor="basic">Basic steps</link>.</p>
+<p>As part of the Java API for XML Processing, TraX provides a stable
framework for plugging
+ Transformers (like &xslt4j;) and XML parsers (like &xml4j;) into your
applications without tying
+ yourself to the internal details of those implementations. See
+ <link idref="usagepatterns" anchor="plug">Plugging in a Transformer and
XML parser</link>.</p>
</s2>
</s1>
1.7 +58 -40 xml-xalan/java/xdocs/sources/xalan/dtm.xml
Index: dtm.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/dtm.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- dtm.xml 27 Jan 2003 18:45:36 -0000 1.6
+++ dtm.xml 21 Feb 2003 20:10:08 -0000 1.7
@@ -60,34 +60,44 @@
<ul>
<li><link anchor="intro">Introduction</link></li>
<li><link anchor="settings">Performance settings</link></li>
-</ul><anchor name="intro"/>
+</ul>
+<anchor name="intro"/>
<s2 title="Introduction">
- <p>The Document Table Model (DTM) is an interface to a Document Model
designed specifically for the needs of our XPath and XSLT
- implementations. The motivation behind this model is to optimize
performance and minimize storage.</p>
- <p>Specifically, DTM avoids the overhead of instantiating the objects the
standard DOM requires to represent a tree of nodes.
- DTM uses unique integer "handles" to identify nodes, integer ID values to
represent URLs, local names, and expanded names, and
- integer index and length references to a string buffer to represent the
text value of each node.</p>
- <p>In general, the "read" APIs to DTM resemble those of the W3C Document
Object Model (<resource-ref idref="dom"/>) interface.
- However, in place of the DOM object tree of nodes, DTM uses integer arrays
and string pools to represent the structure and content
- of the XML document to be transformed. DTM also structures the document's
contents slightly differently, to better match the XPath
- data model; some details and constraints present in a standard DOM are
suppressed, and a few XPath-specific features are added.</p>
- <p>DTM is intended to be a read-only model, and so does not attempt to
replicate the DOM's write or create-node operations.</p>
- <p>The details of constructing a DTM vary depending on which
implementation of this API you are using. Two reference implementations are
- currently available:</p>
-<ul>
- <li>SAX2DTM (built via a SAX stream)</li>
- <li>DOM2DTM (which provides DTM access to an existing DOM)</li>
-</ul>
- <p>Both DTMs can be built incrementally (see <link
anchor="incremental">incremental transforms</link>). When operating
incrementally, the
- DTM allows the &xslt4j; processor to begin reading the DTM and performing
the transformation while the DTM is still being assembled
- (for example, while the parser is still parsing the XML source), and
attempts to do only as much work as is needed to support the
+ <p>The Document Table Model (DTM) is an interface to a Document Model
designed specifically for
+ the needs of our XPath and XSLT implementations. The motivation behind
this model is to optimize
+ performance and minimize storage.</p>
+ <p>Specifically, DTM avoids the overhead of instantiating the objects the
standard DOM requires to
+ represent a tree of nodes. DTM uses unique integer "handles" to identify
nodes, integer ID values
+ to represent URLs, local names, and expanded names, and integer index and
length references to a
+ string buffer to represent the text value of each node.</p>
+ <p>In general, the "read" APIs to DTM resemble those of the W3C Document
Object Model
+ (<resource-ref idref="dom"/>) interface. However, in place of the DOM
object tree of nodes, DTM
+ uses integer arrays and string pools to represent the structure and
content of the XML document to
+ be transformed. DTM also structures the document's contents slightly
differently, to better match
+ the XPath data model; some details and constraints present in a standard
DOM are suppressed, and a
+ few XPath-specific features are added.</p>
+ <p>DTM is intended to be a read-only model, and so does not attempt to
replicate the DOM's write or
+ create-node operations.</p>
+ <p>The details of constructing a DTM vary depending on which
implementation of this API you are
+ using. Two reference implementations are currently available:</p>
+ <ul>
+ <li>SAX2DTM (built via a SAX stream)</li>
+ <li>DOM2DTM (which provides DTM access to an existing DOM)</li>
+ </ul>
+ <p>Both DTMs can be built incrementally (see <link
anchor="incremental">incremental transforms</link>).
+ When operating incrementally, the DTM allows the &xslt4j; processor to
begin reading the DTM and
+ performing the transformation while the DTM is still being assembled (for
example, while the parser
+ is still parsing the XML source), and attempts to do only as much work as
is needed to support the
read requests actually made by the XPath or XSLT processor.</p>
- <p>For the convenience of user-written extensions, a proxy mechanism
presents the contents of the DTM as a read-only subset of the DOM.</p>
- </s2><anchor name="settings"/>
- <s2 title="DTM performance settings">
+ <p>For the convenience of user-written extensions, a proxy mechanism
presents the contents of the
+ DTM as a read-only subset of the DOM.</p>
+</s2>
+
+<anchor name="settings"/>
+<s2 title="DTM performance settings">
<p>&xslt4j; implements two DTM performance features that you can control
with the TransformerFactory
- <jump
href="apidocs/javax/xml/transform/TransformerFactory.html#setAttribute(java.lang.String,
java.lang.Object)">setAttribute(String name, Object value)</jump>
- method.</p>
+ <jump
href="apidocs/javax/xml/transform/TransformerFactory.html#setAttribute(java.lang.String,
+ java.lang.Object)">setAttribute(String name, Object value)</jump>
method.</p>
<table>
<tr>
<th>Attribute name (URL)</th>
@@ -106,19 +116,18 @@
</tr>
</table>
<p>Both of these DTM settings are described below.</p>
- <note>The DTM also provides a setting that you can use to track location
information for each node in the source document. See
- <link idref="features"
anchor="source_location">"http://apache.org/xalan/features/source_location"</link></note>
+
+ <p> </p>
<anchor name="incremental"/>
<s3 title="'http://xml.apache.org/xalan/features/incremental'">
- <p>Set this feature to true to enable incremental transformations. If set
to false (the default), the transform and the parse
- are performed on the same thread.</p>
- <note> When set to true: If the parser is Xerces, we perform an
-incremental transform on a single thread using the Xerces
- "parse on demand" feature. If the parser is not Xerces, we run the
-transform in one thread and the parse in another. Exception: if the
- parser is not Xerces and the XML source is a DOMSource, setting this
-feature to true has no effect.</note>
- <p>Example: setting incremental transforms to true:</p>
+ <p>Set this feature to true to enable incremental transformations. If set
to false (the default),
+ the transform and the parse are performed on the same thread.</p>
+ <note> When set to true: If the parser is Xerces, we perform an
incremental transform on a single
+ thread using the Xerces "parse on demand" feature. If the parser
is not Xerces, we run the
+ transform in one thread and the parse in another. Exception: if
the parser is not Xerces
+ and the XML source is a DOMSource, setting this feature to true
has no effect.</note>
+ <note> The incremental feature is not currently supported by the XSLT
Compiling processor, XSLTC.</note>
+ <p>Example: setting incremental transforms to true (for the XSLT
Interpretive processor):</p>
<source>javax.xml.transform.TransformerFactory tFactory =
javax.xml.transform.TransformerFactory.newInstance();
// setAttribute() takes a String and an Object.
@@ -126,10 +135,19 @@
("http://xml.apache.org/xalan/features/incremental",
java.lang.Boolean.TRUE);
...</source>
- </s3><anchor name="optimized"/>
+ </s3>
+
+ <anchor name="optimized"/>
<s3 title="'http://xml.apache.org/xalan/features/optimize'">
- <p>When set to true (the default), this feature enables optimizations
that may involve structural rewrites of the stylesheet.
- Any tool that requires direct access to the stylesheet structure should
set this feature to false.</p>
- </s3>
+ <p>When set to true (the default), this feature enables optimizations
that may involve structural
+ rewrites of the stylesheet. Any tool that requires direct access to
the stylesheet structure
+ should set this feature to false.</p>
+ </s3>
+</s2>
+
+<s2 title="DTM node location tracking setting">
+ <p>The DTM also provides a setting that you can use to track location
information for each node in
+ the source document. See <link idref="features"
+
anchor="source_location">"http://apache.org/xalan/features/source_location"</link></p>
</s2>
</s1>
1.4 +24 -25 xml-xalan/java/xdocs/sources/xalan/commandline_xsltc.xml
Index: commandline_xsltc.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/commandline_xsltc.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- commandline_xsltc.xml 27 Jan 2003 18:45:36 -0000 1.3
+++ commandline_xsltc.xml 21 Feb 2003 20:10:08 -0000 1.4
@@ -59,7 +59,7 @@
-->
-<s1 title="Command line options for XSLTC">
+<s1 title="Command line options for &xslt4jc-short;">
<ul>
<li><link anchor="options">Options</link></li>
<li><link anchor="examples">Examples</link></li>
@@ -69,25 +69,25 @@
<anchor name="options"/>
<s2 title="Options">
-<p>The <code>org.apache.xalan.xslt.Process</code> command line now supports
XSLTC for transformation. You can use
-the new <code>-XSLTC</code> option to enable the XSLTC support. The
xsltc.jar file must be on your CLASSPATH
-in order to use the <code>-XSLTC</code> option.</p>
+<p>The <code>org.apache.xalan.xslt.Process</code> command line now supports
&xslt4jc-short; for transformation.
+You can use the new <code>-XSLTC</code> option to enable the &xslt4jc-short;
support.
+The xsltc.jar file must be on your CLASSPATH in order to use the
<code>-XSLTC</code> option.</p>
<p>The following existing options can be used with -XSLTC:</p>
<p><code>-IN, -XSL, -OUT, -V, -EDUMP, -XML, -TEXT, -HTML, -PARAM, <br/>
-MEDIA, -FLAVOR, -DIAG, -URIRESOLVER, -ENTITYRESOLVER,<br/>
-CONTENTHANDLER</code></p>
-<p>The following existing options do not work with <code>-XSLTC</code>. If
any of them is used with <code>-XSLTC</code>,
-a message is printed and the option is ignored.</p>
+<p>The following existing options do not work with <code>-XSLTC</code>. If
any of them is used
+with <code>-XSLTC</code>, a message is printed and the option is ignored.</p>
<p><code>-QC, -TT, -TG, -TS, -TTC, -TCLASS, -L, -INCREMENTAL, <br/>
-NOOPTIMIMIZE, -RL</code></p>
<p>We also have a new set of options for <code>-XSLTC</code>. They are all
two letter options. The first
-letter is X and the second letter is the same as the corresponding option in
the XSLTC command line
+letter is X and the second letter is the same as the corresponding option in
the &xslt4jc-short; command line
<code>org.apache.xalan.xsltc.cmdline.Compile</code>.</p>
-<p>These new options can only be used with <code>-XSLTC</code>. If any of
them is used with the Xalan
-interpreter, a message is printed and the option is ignored.</p>
+<p>These new options can only be used with <code>-XSLTC</code>. If any of
them is used
+with the &xslt4ji;, a message is printed and the option is ignored.</p>
<p>Here is the list of the new options:</p>
<ul>
@@ -113,12 +113,12 @@
<anchor name="examples"/>
<s2 title="Examples">
-<p>You can just add the <code>-XSLTC</code> option to your existing option
list so that it will do the same
-thing as before, but using XSLTC.</p>
+<p>You can just add the <code>-XSLTC</code> option to your existing option
list so that it will do
+the same thing as before, but using &xslt4jc-short;.</p>
-<p>Here is a simple example on how to use XSLTC:</p>
+<p>Here is a simple example on how to use &xslt4jc-short;:</p>
<p>> <code>java org.apache.xalan.xslt.Process -in test.xml -xsl test.xsl
-xsltc</code></p>
-<p>XSLTC compiles the stylesheet on the fly and uses the bytecode in memory
to transform the input xml.
+<p>&xslt4jc-short; compiles the stylesheet on the fly and uses the bytecode
in memory to transform the input xml.
No translet class is generated in this simple usage pattern.</p>
<p>If you want to generate translet classes from the stylesheet, you can use
the <code>-XO</code> option:</p>
<p>> <code>java org.apache.xalan.xslt.Process -in test.xml -xsl test.xsl
-xsltc -xo</code></p>
@@ -126,8 +126,9 @@
<p>This example still uses the stylesheet for transformation, but it also
generates the
translet class "test.class".</p>
-<p>You can use the <code>-XJ, -XP</code> or <code>-XD</code> options to
further customize the translet generation behavior. Translets
-will be generated if any of the options <code>-XO, -XJ</code> or
<code>-XT</code> is used.</p>
+<p>You can use the <code>-XJ, -XP</code> or <code>-XD</code> options to
further customize the translet
+generation behavior. Translets will be generated if any of the options
<code>-XO, -XJ</code> or
+<code>-XT</code> is used.</p>
<p>> <code>java org.apache.xalan.xslt.Process -in test.xml -xsl test.xsl
-xsltc -xo newTranslet -xd temp -xp org.apache.test -xj translets.jar</code></p>
<p>The above command line uses the xsl for transformation. It also generates
translet classes in
@@ -143,7 +144,7 @@
<p>The translet is loaded from the specified destination directory or the
current directory, using
the specified translet name or the xsl base name, depending on whether the
<code>-XD</code> or
<code>-XO</code> option is used. The options <code>-XO, -XD, -XP</code> and
<code>-XJ</code>
-can be used with the <code>-XT</code> option to tell XSLTC how to find the
translet classes. The translets
+can be used with the <code>-XT</code> option to tell &xslt4jc-short; how to
find the translet classes. The translets
are directly read in as bytecode. You do not need to add the translet
directory or the jar file to your
classpath.</p>
<p>Example:</p>
@@ -166,7 +167,7 @@
<s2 title="Simple FAQs">
<p><em>Q:</em> If I use the <code>-XT</code> option, how can I tell if it is
using the translet or the stylesheet for transformation?</p>
-<p><em>A:</em> Use the <code>-XX</code> option. When XSLTC uses the translet
for transformation, you will see a debug
+<p><em>A:</em> Use the <code>-XX</code> option. When &xslt4jc-short; uses
the translet for transformation, you will see a debug
message like "Tranform using translet ..." or "Tranform using translet ...
from jar file ...".</p>
<p><em>Q:</em> I want to use a translet for transformation, and I don't have
the stylesheet.</p>
@@ -177,20 +178,18 @@
<p><em>Q:</em> I only want to compile the stylesheet. I don't want to do a
transformation.</p>
<p><em>A:</em> TrAX has no notion of compiling a stylesheet. However, you
can achieve the same effect by
-running a dummy transformation and tell XSLTC to save the translet class.
Example:</p>
+running a dummy transformation and tell &xslt4jc-short; to save the translet
class. Example:</p>
<p>> <code>java org.apache.xalan.xslt.Process -xsl test.xsl -xsltc
<br/>-xo</code></p>
<p>This command runs a transformation on an empty input and generates the
translet <code>test.class</code>.</p>
</s2>
<anchor name="trax"/>
<s2 title="Using the new options from TrAX">
+<p>You can use some of the new attributes in the
<code>TransformerFactoryImpl</code> class of &xslt4jc-short; to
+customize the translet behaviors from TrAX.</p>
-<p>If you use the TrAX interface for XSLTC, you could not tell it to use
translets before. It always compiled
-the xsl on the fly and used the bytecode in memory for transformation. Now
you can use some of
-the new attributes in XSLTC's <code>TransformerFactoryImpl</code> class to
customize the translet behaviors from TrAX.</p>
-
-<p>Here is the list of attributes in
<code>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</code> and their
-corresponding Process command line options:</p>
+<p>Here is the list of attributes in
<code>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</code>
+and their corresponding Process command line options:</p>
<table>
<tr>
@@ -253,7 +252,7 @@
<p>The following example shows you how to do the same thing from TrAX for
the question 2 in the FAQ.</p>
<source>
-// set the system property javax.xml.transform.TransformerFactory in order
to use XSLTC
+// set the system property javax.xml.transform.TransformerFactory in order
to use &xslt4jc-short;
String key = "javax.xml.transform.TransformerFactory";
String value = "org.apache.xalan.xsltc.trax.TransformerFactoryImpl";
Properties props = System.getProperties();
1.11 +1 -1 xml-xalan/java/xdocs/sources/xsltc.xml
Index: xsltc.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xsltc.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- xsltc.xml 19 Feb 2002 20:49:22 -0000 1.10
+++ xsltc.xml 21 Feb 2003 20:10:10 -0000 1.11
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!DOCTYPE book SYSTEM "sbk:/style/dtd/book.dtd">
-<book title="XSLTC Design" copyright="2002 The Apache Software Foundation">
+<book title="XSLTC Design" copyright="2003 The Apache Software Foundation">
<document id="index"
label="Overview"
1.59 +48 -38 xml-xalan/java/xdocs/sources/entities.ent
Index: entities.ent
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/entities.ent,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- entities.ent 6 Nov 2002 16:21:42 -0000 1.58
+++ entities.ent 21 Feb 2003 20:10:10 -0000 1.59
@@ -3,36 +3,42 @@
<!ENTITY xslt "Xalan">
<!ENTITY xslt4j "Xalan-Java">
<!ENTITY xslt4j2 "Xalan-Java 2">
-<!ENTITY xslt4j-dist "xalan-j_2_4_1">
+<!ENTITY xslt4j-dist "xalan-j_2_5_D1">
<!ENTITY xslt4j-dist-bin "&xslt4j-dist;-bin">
<!ENTITY xslt4j-dist-src "&xslt4j-dist;-src">
-<!ENTITY xslt4j-current "&xslt4j; version 2.4.1">
+<!ENTITY xslt4j-current "&xslt4j; version 2.5.D1">
<!ENTITY xslt4j-distdir "http://xml.apache.org/dist/xalan-j/">
+
+<!ENTITY xslt4j_longname "Apache Xalan Java">
+<!ENTITY xslt4ji "&xslt4j; Interpretive">
+<!ENTITY xslt4jc-short "XSLTC">
+<!ENTITY xslt4jc-long "&xslt4j; Compiled">
+
<!ENTITY xml4j "Xerces-Java">
<!ENTITY xml4j1 "Xerces-Java 1">
<!ENTITY xml4j2 "Xerces-Java 2">
-<!ENTITY xml4j-used "&xml4j; 2.2.0">
+<!ENTITY xml4j-used "&xml4j; 2.3.0">
<!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 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 xsltcwhatsnewhead '<li><link
anchor="xsltc">&xslt4jc-short;</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
+<!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">Using XSLTC</link>, <link
idref="readme" anchor="xsltcreleasenotes">XSLTC
- Release Notes</link>, and <jump
href="xsltc/index.html">XSLTC Design</link>.</p>
+ see <link idref="xsltc_usage">Using &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 XSLTC changes since XSLTC was incorporated
into &xslt4j;, see
- <link idref="xsltc_history">XSLTC software
changes</link>.</note>'>
+<!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">XSLTC</link>, see
- <link idref="xsltc_usage" anchor="classpath">Setting
the system classpath for XSLTC</link>.</p>'>
+<!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>'>
@@ -40,12 +46,14 @@
<ul>
<li><link
anchor="xsltc1">JAXPTransletOneTransformation</link></li>
<li><link
anchor="xsltc2">JAXPTransletMultipleTransformations</link></li>
- <li><link anchor="xsltcother">Other XSLTC
samples</link></li>
+ <li><link anchor="xsltcother">Other &xslt4jc-short;
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>
+ <p>You can use the TrAX/JAXP 1.2 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
&xslt4jc-short; 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>
@@ -60,49 +68,51 @@
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>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>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
+ <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>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>
+ <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>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>&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> <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>
- <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>The translet must be specified as a pure class name,
+ accessible through the Brazil-handler's classpath. For
+ example:</p>
<p><code> translet=mk054</code></p>
<p>The document must be specified as a valid URL. For
example:</p>
<p><code> 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>
+ <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>
+ <jump
href="http://java.sun.com/products/servlet/download.html">
+
http://java.sun.com/products/servlet/download.html</jump></code></p>
</s3>
</s2>'>
-
1.26 +5 -4 xml-xalan/java/xdocs/sources/xalan-jlocal.xml
Index: xalan-jlocal.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan-jlocal.xml,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- xalan-jlocal.xml 27 Jan 2003 18:45:35 -0000 1.25
+++ xalan-jlocal.xml 21 Feb 2003 20:10:10 -0000 1.26
@@ -58,24 +58,26 @@
* <http://www.apache.org/>.
-->
-<book title="Xalan XSL Transformer User's Guide" copyright="2002 The Apache
Software Foundation">
+<book title="Xalan XSL Transformer User's Guide" copyright="2003 The Apache
Software Foundation">
<resources source="sbk:/sources/xalan/resources.xml"/>
<document id="whatsnew" label="What's New" source="xalan/whatsnew.xml"/>
- <document id="dtm" label="DTM" source="xalan/dtm.xml"/>
- <document id="xsltc_usage" label="XSLTC Translets"
source="xalan/xsltc_usage.xml"/>
<separator/>
<document id="overview" label="Overview" source="xalan/overview.xml"/>
+ <document id="downloads" label="Downloads" source="xalan/downloads.xml"/>
<document id="getstarted" label="Getting Started"
source="xalan/getstarted.xml"/>
+ <document id="xsltc_usage" label="Using XSLTC"
source="xalan/xsltc_usage.xml"/>
<separator/>
<faqs id="faq" label="FAQs" source="xalan/faq.xml"/>
<separator/>
<document id="samples" label="Sample Apps" source="xalan/samples.xml"/>
<document id="commandline" label="Command Line"
source="xalan/commandline.xml"/>
+ <hidden id="commandline_xsltc" source="xalan/commandline_xsltc.xml"/>
<separator/>
<document id="usagepatterns" label="Usage Patterns"
source="xalan/usagepatterns.xml"/>
<document id="features" label="Features" source="xalan/features.xml"/>
<separator/>
<document id="trax" label="TrAX" source="xalan/trax.xml"/>
+ <document id="dtm" label="DTM" source="xalan/dtm.xml"/>
<external href="apidocs/index.html" label="API (Javadoc)"/>
<separator/>
<document id="extensions" label="Extensions"
source="xalan/extensions.xml"/>
@@ -85,7 +87,6 @@
<document id="readme" label="Release Notes" source="xalan/readme.xml"/>
<hidden id="history" source="xalan/history.xml"/>
<hidden id="xsltc_history" source="xalan/xsltc_history.xml"/>
- <hidden id="commandline_xsltc" source="xalan/commandline_xsltc.xml"/>
<separator/>
<external href="design/design2_0_0.html" label="Xalan 2 Design"/>
<external href="xsltc/index.html" label="XSLTC Design"/>
1.51 +6 -5 xml-xalan/java/xdocs/sources/xalan-jsite.xml
Index: xalan-jsite.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan-jsite.xml,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- xalan-jsite.xml 27 Jan 2003 18:45:35 -0000 1.50
+++ xalan-jsite.xml 21 Feb 2003 20:10:10 -0000 1.51
@@ -58,27 +58,29 @@
* <http://www.apache.org/>.
-->
-<book title="Xalan XSL Transformer User's Guide" copyright="2002 The Apache
Software Foundation">
+<book title="Xalan XSL Transformer User's Guide" copyright="2003 The Apache
Software Foundation">
<resources source="sbk:/sources/xalan/resources.xml"/>
<external href="../index.html" label="Home"/>
<separator/>
- <document id="index" label="Xalan-J 2.4.1" source="xalan/index.xml"/>
+ <document id="index" label="Xalan-J 2.5.D1" source="xalan/index.xml"/>
<document id="whatsnew" label="What's New" source="xalan/whatsnew.xml"/>
- <document id="dtm" label="DTM" source="xalan/dtm.xml"/>
- <document id="xsltc_usage" label="XSLTC Translets"
source="xalan/xsltc_usage.xml"/>
<separator/>
<document id="overview" label="Overview" source="xalan/overview.xml"/>
+ <document id="downloads" label="Downloads" source="xalan/downloads.xml"/>
<document id="getstarted" label="Getting Started"
source="xalan/getstarted.xml"/>
+ <document id="xsltc_usage" label="Using XSLTC"
source="xalan/xsltc_usage.xml"/>
<separator/>
<faqs id="faq" label="FAQs" source="xalan/faq.xml"/>
<separator/>
<document id="samples" label="Sample Apps" source="xalan/samples.xml"/>
<document id="commandline" label="Command Line"
source="xalan/commandline.xml"/>
+ <hidden id="commandline_xsltc" source="xalan/commandline_xsltc.xml"/>
<separator/>
<document id="usagepatterns" label="Usage Patterns"
source="xalan/usagepatterns.xml"/>
<document id="features" label="Features" source="xalan/features.xml"/>
<separator/>
<document id="trax" label="TrAX" source="xalan/trax.xml"/>
+ <document id="dtm" label="DTM" source="xalan/dtm.xml"/>
<external href="apidocs/index.html" label="API (Javadoc)"/>
<separator/>
<document id="extensions" label="Extensions"
source="xalan/extensions.xml"/>
@@ -89,7 +91,6 @@
<document id="builds" label="Xalan-Java Builds" source="xalan/builds.xml"/>
<hidden id="history" source="xalan/history.xml"/>
<hidden id="xsltc_history" source="xalan/xsltc_history.xml"/>
- <hidden id="commandline_xsltc" source="xalan/commandline_xsltc.xml"/>
<separator/>
<external href="design/design2_0_0.html" label="Xalan 2 Design"/>
<external href="xsltc/index.html" label="XSLTC Design"/>
1.17 +9 -4
xml-xalan/java/src/org/apache/xalan/xslt/EnvironmentCheck.java
Index: EnvironmentCheck.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xslt/EnvironmentCheck.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- EnvironmentCheck.java 30 Jan 2003 18:45:58 -0000 1.16
+++ EnvironmentCheck.java 21 Feb 2003 20:10:10 -0000 1.17
@@ -1264,6 +1264,7 @@
jarVersions.put(new Long(906248), "xalan.jar from xalan-j_2_3_1");
jarVersions.put(new Long(983377), "xalan.jar from xalan-j_2_4_D1");
jarVersions.put(new Long(997276), "xalan.jar from xalan-j_2_4_0");
+ jarVersions.put(new Long(1031036), "xalan.jar from xalan-j_2_4_1");
jarVersions.put(new Long(857171), "xalan.jar from lotusxsl-j_1_0_1");
jarVersions.put(new Long(802165), "xalan.jar from lotusxsl-j_2_0_0");
@@ -1280,6 +1281,8 @@
jarVersions.put(new Long(589915), "xsltc.jar from xalan-j_2_3_1");
jarVersions.put(new Long(1306667), "xsltc.jar from xalan-j_2_4_D1");
jarVersions.put(new Long(1328227), "xsltc.jar from xalan-j_2_4_0");
+ jarVersions.put(new Long(1344009), "xsltc.jar from xalan-j_2_4_1");
+ jarVersions.put(new Long(1348312), "xsltc.jar from xalan-j_2_5_D1");
jarVersions.put(new Long(1268634), "xsltc.jar-bundled from
xalan-j_2_3_0");
jarVersions.put(new Long(100196), "xml-apis.jar from xalan-j_2_2_0 or
xalan-j_2_3_D1");
@@ -1287,6 +1290,7 @@
jarVersions.put(new Long(109049), "xml-apis.jar from xalan-j_2_4_0 from
xml-commons RIVERCOURT1 branch");
jarVersions.put(new Long(109049), "xml-apis.jar from xalan-j_2_4_0,
lotusxsl-j_2_3_2 or lotusxsl-j_2_3_3 from xml-commons RIVERCOURT1");
jarVersions.put(new Long(113749), "xml-apis.jar from xalan-j_2_4_1,
lotusxsl-j_2_3_4 or lotusxsl-j_2_3_5 from factoryfinder-build of xml-commons
RIVERCOURT1");
+ jarVersions.put(new Long(124704), "xml-apis.jar from xalan-j_2_5_D1 from
from tck-jaxp-1_2_0 branch of xml-commons");
// If the below were more common I would update it to report
// errors better; but this is so old hardly anyone has it
jarVersions.put(new Long(424490), "xalan.jar from Xerces Tools releases
- ERROR:DO NOT USE!");
@@ -1319,6 +1323,7 @@
jarVersions.put(new Long(1174955), "xercesImpl.jar from lotusxsl-j_2_3_5
from XML4J-4_0_8");
jarVersions.put(new Long(1173922), "xercesImpl.jar from lotusxsl-j_2_3_6
from XML4J-4_0_9");
jarVersions.put(new Long(831828), "xercesImpl.jar from lotusxsl-j_2_4_0
from XML4J-4_1_1");
+ jarVersions.put(new Long(891817), "xercesImpl.jar from lotusxsl-j_2_4_0
from xerces-2_3");
jarVersions.put(new Long(37485), "xalanj1compat.jar from xalan-j_2_0_0");
jarVersions.put(new Long(38100), "xalanj1compat.jar from xalan-j_2_0_1");
@@ -1327,7 +1332,7 @@
jarVersions.put(new Long(21453), "xalanservlet.jar from xalan-j_2_0_1");
jarVersions.put(new Long(24826), "xalanservlet.jar from xalan-j_2_3_1 or
xalan-j_2_4_1 or lotusxsl-j_2_3_1 to lotusxsl-j-2_3_5");
jarVersions.put(new Long(24831), "xalanservlet.jar from xalan-j_2_4_1");
-
+
// For those who've downloaded JAXP from sun
jarVersions.put(new Long(5618), "jaxp.jar from jaxp1.0.1");
jarVersions.put(new Long(136133), "parser.jar from jaxp1.0.1");
1.53 +660 -1212 xml-xalan/java/commits.xml
Index: commits.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/commits.xml,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- commits.xml 31 Oct 2002 13:50:50 -0000 1.52
+++ commits.xml 21 Feb 2003 20:10:11 -0000 1.53
@@ -1,1690 +1,1138 @@
<?xml version="1.0" encoding="UTF-8"?>
<Commits>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/28</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerImpl.java</Modified>
-<Log>
-Keep track of parameters for built-in identity transform (needed for
-some TCK tests).
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/29</DateCommitted>
-<Modified> xml-xalan/java/xdocs/sources/xalan readme.xml</Modified>
-<Log>
-On behalf of Sarah McNamara, updated the developer list and list of changes
since Xalan Java 2.3.1
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/29</DateCommitted>
-<Modified> xml-xalan/java/xdocs/sources/xalan resources.xml</Modified>
-<Log>
-On behalf of Sarah McNamara, added resources for the new developers added to
readme.xml
-</Log>
-</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/29</DateCommitted>
-<Modified> xml-xalan/java/xdocs/sources/xalan index.xml</Modified>
-<Log>
-On behalf of Sarah McNamara, removed 'developers release' wording so that
this release is not flagged as such
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/29</DateCommitted>
-<Modified> xml-xalan/java/xdocs/sources/xalan history.xml</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/01</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib ExsltDynamic.java
ExsltStrings.java</Modified>
<Log>
-On behalf of Sarah McNamara, updated the core (non-xsltc) commit info for
Xalan Java 2.4.0
+For Bugzilla 14157. Correct namespace prefixes in EXSLT javadoc.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/29</DateCommitted>
-<Modified> xml-xalan/java/xdocs/sources/xalan xsltc_history.xml</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/01</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/utils
SystemIDResolver.java</Modified>
<Log>
-On behalf of Sarah McNamara, updated the xsltc commit info for Xalan Java
2.4.0
+Rework the SystemIDResolver class for Bugzilla 13651 and 13977.
+
+The getAbsoluteURI interfaces have been rewritten so that they always
+return a good absolute URI for a systemId string, no matter it is a
+URI or a local filesystem path. The path is resolved to be absolute
+whenever possible. We also do conversions from space to "%20" and
+backslash to forward slash to ensure that the returned URI is a
+well-formed URI. The URI might not be in a normalized form because
+normalization takes extra cycles.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/29</DateCommitted>
-<Modified> xml-xalan/java/xdocs/sources xalan-jsite.xml</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/01</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/utils URI.java</Modified>
<Log>
-On behalf of Sarah McNamara, added a link to the new Xalan Java Builds
information
+For Bugzilla 13977. Return a good absolute URI when the urlstring
+is in the form of "file:abc.xsl".
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/29</DateCommitted>
-<Modified> xml-xalan/java commits.xml</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/01</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/processor
TransformerFactoryImpl.java</Modified>
<Log>
-On behalf of Sarah McNamara, updated the list of commits to pick up the
modified file information correctly
+For Bugzilla 13651. Set the systemID to a good absolute URI for the
InputSource.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/29</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xslt
EnvironmentCheck.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/01</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/serialize
SerializerToXML.java</Modified>
<Log>
-On behalf of Sarah McNamara, added entries for the Xalan Java 2.4.0 packaged
jars
+Simplify the code for the new SystemIDResolver. One call to the
getAbsoluteURI
+interface should be enough.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/29</DateCommitted>
-<Modified> xml-xalan/java/bin xercesImpl.jar</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/01</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/compiler
OpMapVector.java</Modified>
<Log>
-Updated to xercesImpl.jar from Xerces-J-bin.2.0.1.zip (for upcoming Xalan-J
2.4.0 release).
+Patch for bugzilla #14178 - Long XPath expressions. The token queue was
+growing properly, but the operations map was missing the last element when
+it grew.
</Log>
</Commit>
<Commit category="xsltc">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/29</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerHandlerImpl.java TrAXFilter.java</Modified>
+<DateCommitted>2002/11/04</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java Util.java</Modified>
<Log>
-Fixed XSLTCs implementation of XMLFilter
+bug 14148 fixed, Morris Kwan patch
</Log>
</Commit>
<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/29</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TrAXFilter.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/04</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
MultiDOM.java</Modified>
<Log>
-added some check for parents of filter chain
+Fixed problem in AxisIterator.isReverse(). This patch fixes Bugzilla
+14112.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/30</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
xpath.cup</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/04</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/domapi
XPathNamespaceImpl.java</Modified>
<Log>
-Fix for Bugzilla 12125.
+Update XPathNamespaceImpl to be consistent with spec for
+getLocalName, getPrefix, getNamespaceURI, getNodeName, getNodeValue
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/08/30</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
EqualityExpr.java RelationalExpr.java
xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/04</DateCommitted>
+<Modified> xml-xalan/java/xdocs/sources xalan-jlocal.xml xalan-jsite.xml
xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml commandline.xml
extensions_xsltc.xml extensionslib.xml</Modified>
<Log>
-bug 12148 fixed, xpath pred and relational expr
+Added two new documents: Extensions for XSLTC and XSLTC options in the
+Process command line. Added the "XSLTC Exts" item to the main panel.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib/sql
DefaultConnectionPool.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/04</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib
ExsltDatetime.java</Modified>
<Log>
-Fixed Class loader Problem. Default Connection now uses context Classloader
+For Bugzilla 14237. Fix problems in the hour-in-day extension function.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib/sql
SQLDocument.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/05</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/compiler
OpMapVector.java</Modified>
<Log>
-Fixed problem where a query that returned zero rows would incorrectly return
a JDBC
-Exception. Note: This only occurs in streaming mode.
+Use actual length of array in call to arraycopy.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xml/dtm/ref
DTMNodeProxy.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/05</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/objects
XNumber.java</Modified>
<Log>
-Add a convenient interface getStringValue() which returns the
-string value of a node. It is used by the extension code
-to get a node value without hacking into the DTM.
+Applying Gordon Chiu's ([EMAIL PROTECTED]) patch for bugzilla #14241.
+Extra trailing 0 when calling XNumber.str().
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/templates
Constants.java</Modified>
+<DateCommitted>2002/11/05</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib
ExsltDynamic.java</Modified>
<Log>
-Add strings for new extension namespaces. This includes new EXSLT
-namespaces (dynamic and strings), namespaces for redirect, PipeDocument
-and SQL extensions and new namespace for the Java extension. For
-backward compatibility, the old Java namespace is still kept.
+Fix a problem in the max() function. Reuse the Document object to reduce
+memory usage.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/extensions
ExtensionNamespacesManager.java</Modified>
+<DateCommitted>2002/11/05</DateCommitted>
+<Modified> xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml
commandline.xml</Modified>
<Log>
-Register new extension namespaces, including two new EXSLT namespaces
-(dynamic and strings), namespaces for redirect, PipeDocument and SQL
-extensions and the new/old namespaces for Java extension.
+xdocs update for XSLTC options in Process command line.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib Extensions.java</Modified>
+<DateCommitted>2002/11/06</DateCommitted>
+<Modified> xml-xalan/java/xdocs/sources entities.ent xalan-jlocal.xml
xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan readme.xml
xsltc_constraints.xml xsltc_usage.xml</Modified>
<Log>
-Reorganize the extension functions for new EXSLT extensions and
-XSLTC integration. The implementation of some extension functions
-(intersection, difference, distinct, evaluate and tokenize) are
-moved to the corresponding EXSLT extension classes. We also put
-a note to say that using these extension functions in the
-Xalan namespace is deprecated. The signature of some extension
-functions are changed to facilitate the XSLTC integration.
+XSLTC xdocs update.
+Remove xsltc_constraints.xml. Move the "known problem" and "smart transformer
+switch" sections into xsltc_usage.xml.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib ExsltMath.java</Modified>
+<DateCommitted>2002/11/07</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib
ExsltDatetime.java</Modified>
<Log>
-The EXSLT math extension was rewritten for XSLTC integration. The
-signatures of the existing functions (max, min, highest and lowest)
-are changed. We use NodeList instead of NodeSet and NodeIterator
-in arguments and return types, because it is the only node list type
-recognized by XSLTC. We also got rid of the ExpressionContext
-arguments in these functions. We implemented the toNumber() and toString()
-interfaces as a replacement.
-
-I also implemented all of the remaining math functions in the EXSLT spec,
-e.g. constant, sin, random.
+For bugzilla 14324. Fix a few problems in datetime extension functions.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib ExsltSets.java</Modified>
+<DateCommitted>2002/11/07</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib
ExsltDatetime.java</Modified>
<Log>
-The signatures of the sets extension functions are changed for
-XSLTC integration. NodeList is used instead of NodeSet and NodeIterator
-in arguments and return types. The implementation of intersection,
-difference and distinct was moved from Extensions.java to this file.
+For bugzilla 14322. Fix problem in condition checking in getZoneStart().
</Log>
</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib Redirect.java</Modified>
+<Commit category="xsltc">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/07</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output
StreamHTMLOutput.java StreamOutput.java</Modified>
<Log>
-Add comments for the new namespace (http://xml.apache.org/xalan/redirect).
+Fix for Bugzilla 14229.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib
PipeDocument.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/08</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/transformer
ResultTreeHandler.java xml-xalan/java/src/org/apache/xalan/templates
ElemElement.java ElemTemplateElement.java</Modified>
<Log>
-Add comments for the new namespace
(http://xml.apache.org/xalan/PipeDocument).
+Committing Gordon Chiu's ([EMAIL PROTECTED]) patches for
+namespace bugs #13774,13775,13414
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib/sql
XConnection.java</Modified>
+<DateCommitted>2002/11/11</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/utils
SystemIDResolver.java</Modified>
<Log>
-Add comments for the new namespace (http://xml.apache.org/xalan/sql).
+Minor improvement to the getAbsoluteURIFromRelative() and getAbsoluteURI()
+interfaces. Reorganize the code to be more efficient. Return a slightly
+better result when the input string is an invalid URI.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib
ExsltDynamic.java</Modified>
+<DateCommitted>2002/11/11</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/dtm/ref
DTMNodeList.java</Modified>
<Log>
-Add the ExsltDynamic class which implements the EXSLT dynamic
-extension functions (max, min, sum, map, evaluate and closure).
-
-The implementation of evaluate is taken from Extensions.java.
-The Javadoc is copied from the relevant EXSLT page.
+For Bugzilla 14406. Make the interface getDTMIterator() public.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib
ExsltStrings.java</Modified>
+<DateCommitted>2002/11/11</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/objects
XNodeSet.java</Modified>
<Log>
-Implement the EXSLT strings extension functions (align,
-concat, padding, split and tokenize). The implementation
-of tokenize is taken from Extensions.java.
-
-The Javadoc is copied from the relevant EXSLT page. Three
-functions (decode-uri, encode-uri and replace) are missing
-due to ambiguous spec.
+For Bugzilla 14406. Handle the side-effect that creating a DTMNodeList
+will change the state of the iterator.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath/axes
SelfIteratorNoPredicate.java</Modified>
+<DateCommitted>2002/11/12</DateCommitted>
+<Modified> xml-xalan/java/xdocs/sources/xalan extensions_xsltc.xml</Modified>
<Log>
-For Bugzilla 11809 and 10643. Fix the nextNode() interface so that
-it returns DTM.NULL if the m_foundLast flag is true.
+Fix problems in the XSLTC redirect sample. This sample was copied from
+xsltc_constraints.xml. It works with XSLTC, but not using a good syntax.
+It is better to change "xsl:version" to "version" and add a "extension-
+element-prefixes" attribute.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/templates
ElemExtensionCall.java</Modified>
+<DateCommitted>2002/11/13</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath
ExtensionsProvider.java</Modified>
<Log>
-For Bugzilla 11073. Fix an extension namespace problem.
+For bugzilla 14236. Add a new interface to pass the XPath
+extension function up to Xalan.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/06</DateCommitted>
+<DateCommitted>2002/11/13</DateCommitted>
<Modified> xml-xalan/java/src/org/apache/xpath/functions
FuncExtFunction.java</Modified>
<Log>
-For Bugzilla 11743 and 12298. Fix argument handling in
-extension functions. Arguments now have non-null parents
-and they will be visited by the XPathVisitor.
+For bugzilla 14236. Pass the XPath extension function object to the
+extension provider.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/09</DateCommitted>
-<Modified> xml-xalan/java KEYS</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/13</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/extensions
ExtensionHandler.java ExtensionHandlerExsltFunction.java
ExtensionHandlerGeneral.java ExtensionHandlerJavaClass.java
ExtensionHandlerJavaPackage.java ExtensionsTable.java
xml-xalan/java/src/org/apache/xalan/templates ElemExsltFuncResult.java
ElemExsltFunction.java xml-xalan/java/src/org/apache/xalan/transformer
TransformerImpl.java</Modified>
<Log>
-I had to get a new key after a hard drive crash. This time, I backed it up!
+For bugzilla 14236 and 14244. Cleanup in the extension handling code to make
+EXSLT func:function and func:result work correctly.
+
+New interfaces are added in ExtensionProvider, ExtensionsTable and
+ExtensionHandler to pass the XPath extension function up to the extension
+handler. In the case of an EXSLT function, we need to find out the frame
+size of the caller template and use that to reset the frame bottom of
+the variable stack. This prevents the local variables in the callee
+from overwriting the variables in the caller. Also change the way to
+handle the return result of the function to fix the problem in 14244.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/09</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline
Transform.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/13</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/axes PredicatedNodeTest.java
OneStepIterator.java</Modified>
<Log>
-Change committed on behalf of Igor Hersht: added -DIAG option similar to that
-supported by org.apache.xalan.xslt.Process class (for bug 12261).
-
-Also (on my own behalf) changed calculation of average transform time and
-throughput rate for -n option to use floating-point division, rather than
-integer division; latter yielded meaningless results.
+Committing Gordon Chiu's ([EMAIL PROTECTED]) patches for bugzilla #14365,
14368.
+Fixes for processing of last() function.
</Log>
</Commit>
<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/10</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output
OutputBuffer.java StreamHTMLOutput.java StreamOutput.java StreamTextOutput.java
StreamXMLOutput.java StringOutputBuffer.java WriterOutputBuffer.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/14</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
DOMWSFilter.java</Modified>
<Log>
-New buffering system for stream output.
+file DOMWSFilter.java was initially added on branch XSLTC_DTM.
</Log>
</Commit>
<Commit category="xsltc">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/10</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
NodeCounter.java</Modified>
+<DateCommitted>2002/11/18</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime
SAXAdapter.java</Modified>
<Log>
-Support for Greek alphabet in xsl:number.
+Forward namespace() event as startPrefixMapping() to the DOM builder. TODO:
+additional logic is needed to emit the endPrefixMapping() event. This patch
+fixes namespace141.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/11</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output
WriterOutputBuffer.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/22</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/processor
StylesheetHandler.java</Modified>
<Log>
-Set a larger buffer size for Solaris.
+In response to Simon Kitching's ([EMAIL PROTECTED]) bug report #14578,
moved synchronized
+block from init method to static initializer to avoid race conditions.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/11</DateCommitted>
-<Modified> xml-xalan/java build.xml</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/22</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java
Encodings.properties xml-xalan/java/samples/ApplyXPath ApplyXPath.java
xml-xalan/java/samples/ApplyXPathDOM ApplyXPathDOM.java
xml-xalan/java/samples/CompiledJAXP Transform.java xml-xalan/java/samples/trax
Examples.java xml-xalan/java/samples/UseStylesheetParam
UseStylesheetParam.java</Modified>
<Log>
-Copy the LICENSE and README files to the bin directory for the source
distribution.
-These files are needed by the xsltc.jar target.
+Committing Gordon Chiu's ([EMAIL PROTECTED]) patch for encoding issues
+with serializer, samples and test harness. (Bugzilla #14753)
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/11</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/transformer
TransformerIdentityImpl.java</Modified>
+<DateCommitted>2002/11/25</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java
Extensions.java</Modified>
<Log>
-Throw an IllegalArgumentException in the setErrorListener() interface
-if the error listener is null.
+Fix possible thread contention issue by putting
+a lock on the Document object before using it.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/11</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/extensions
MethodResolver.java</Modified>
+<DateCommitted>2002/11/25</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/templates
OutputProperties.java</Modified>
<Log>
-For Bugzilla 9731. Convert an empty NodeList to a null Node.
+Commit Ramesh Mandava's ([EMAIL PROTECTED]) patch to allow xalan to read
+property files without opening upcontainer permissions when Xalan is used as
+part of a secure container, such as J2EE RI.
+
+The change makes use of the PrivilegedAction interface in JDK 1.2+. It was
+written with JDK 1.1.8 compatibility in mind so that it will do the same
+thing as before in JDK 1.1.8.
</Log>
</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/13</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/templates
OutputProperties.java xml-xalan/java/src/org/apache/xalan/transformer
TransformerImpl.java</Modified>
+<Commit category="xsltc">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/26</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java
Sort.java xml-xalan/java/src/org/apache/xalan/xsltc/dom
NodeSortRecord.java</Modified>
<Log>
-For Bugzilla 12379. Transformer.setOutputProperties() should throw
-IllegalArgumentException if the property is invalid.
+
+Changed the NodeSortRecord class to hold non-static references to
+instances of java.text.Collator and java.util.Locale. Updated the
+bytecode generation for NodeSortRecord subclasses to access the new
+variables correctly. When a stylesheet specifies a different language
+in xsl:sort, the protected references in NodeSortRecord will be
+updated by the subclass' constructor.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/13</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/processor
XSLTAttributeDef.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/27</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/axes
NodeSequence.java</Modified>
<Log>
-For Bugzilla 12127. Throw a TransformerException if a prefix cannot
-be resolved to a URI insteading of throwing a NullPointerException.
+Patch for bugzilla #14862. When NodeSequence wraps a mutable nodeset
+use the wrapped nodeset in getLength() method.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/13</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/processor
XSLTAttributeDef.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/11/27</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java
xml-xalan/java/src/org/apache/xpath/objects XNodeSet.java</Modified>
<Log>
-Correct a problem in the previous patch.
+The is a better patch for bugzilla #14862 and more consistent with code in
xslt20 branch.
</Log>
</Commit>
<Commit category="xsltc">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/14</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java
SyntaxTreeNode.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
ResultTreeType.java xml-xalan/java/src/org/apache/xalan/xsltc/dom
DOMImpl.java</Modified>
+<DateCommitted>2002/12/03</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime
DefaultSAXOutputHandler.java TextOutput.java</Modified>
<Log>
-Set different initial sizes for DOMImpl arrays. The new values result
-in better performance for the average case.
+ Added deprecation comments for DefaultSAXOutputHandler and TextOutput.
+ The class xsltc.runtime.output.TransletOutputHandlerFactory
+ should be used instead. See xsltc.cmdline.Transform for an example.
</Log>
</Commit>
-<Commit category="xsltc">
+<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/15</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler xpath.cup
xml-xalan/java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java</Modified>
+<DateCommitted>2002/12/03</DateCommitted>
+<Modified> xml-xalan/java/samples/CompiledServlet CompileServlet.java
TransformServlet.java</Modified>
<Log>
-Optimized evaluation of //RelativeLocationPath expressions.
+Updated sample to use non-deprecated API.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib
ExsltDatetime.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/03</DateCommitted>
+<Modified> xml-xalan/java/samples/CompiledApplet TransformApplet.java
xml-xalan/java/samples/CompiledBrazil TransformHandler.java
xml-xalan/java/samples/CompiledEJB TransformBean.java</Modified>
<Log>
-Javadoc correction.
+Updated samples to use non-deprecated API.
</Log>
</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib Extensions.java</Modified>
+<Commit category="xsltc">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/04</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc CollatorFactory.java
xml-xalan/java/src/org/apache/xalan/xsltc/dom CollatorFactoryBase.java
NodeSortRecord.java NodeSortRecordFactory.java</Modified>
<Log>
-Make the tokenize extension function different from the one in the
-EXSLT strings extension. Reuse the Document object to reduce
-memory consumption.
+Patch provided by W. Eliot Kimber to support user-defined collators. A
+class implementing the org.apache.xalan.xsltc.CollatorFactory interface
+can be specified from the command line by setting the property:
+
+ org.apache.xalan.xsltc.COLLATOR_FACTORY
+
+The class org.apache.xalan.xsltc.dom.CollatorFactoryBase will be used
+by default.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib
ExsltStrings.java</Modified>
+<DateCommitted>2002/12/04</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/processor
TransformerFactoryImpl.java</Modified>
<Log>
-Make the tokenize function conformed with the EXSLT spec. Reuse
-the Document object to reduce memory usage.
+Performance fix
+Move the call to newTemplateHandler() to be after DOMSource processing.
+DOMSource creates another template handler in the processFromNode() method.
+The newTemplateHandler() call initializes the schema, which is expensive.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath/axes RTFIterator.java
xml-xalan/java/src/org/apache/xpath/objects XRTreeFrag.java</Modified>
+<DateCommitted>2002/12/04</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm
DOM2DTM.java</Modified>
<Log>
-For Bugzilla 11341. Let RTFIterator extend NodeSetDTM so that it is the kind
-of DTMIterator expected by DTMNodeList. This also fixes the problem in
-testcase JavaBugzilla3722.
+Performance fix
+Reuse the node name in the preceding statement.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/processor
ProcessorExsltFunction.java XSLTSchema.java</Modified>
+<DateCommitted>2002/12/04</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/serialize
Encodings.java</Modified>
<Log>
-For Bugzilla 12077. Fixed problem with func:function in included stylesheet.
-Add exsltFunction to the templateElements list so that we can detect the
error where
-func:function is embedded in another (e.g. xsl:variable) element.
+Commit Gordon Chiu's ([EMAIL PROTECTED]) patch for performance improvement
+in the Encodings class. The convertJava2MimeEncoding() and getLastPrintable()
+methods can be called many times. The old code walks through a big array and
+do String comparison to find a match. A Hashtable is now used to speed up
+this processing.
</Log>
</Commit>
-<Commit category="xsltc">
+<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
ObjectType.java</Modified>
+<DateCommitted>2002/12/04</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/objects
XBoolean.java</Modified>
<Log>
-For XSLTC extension integration. Support creating ObjectType from a Class
-object. Add an additional field to store the Class.
+For Bugzilla 15074. Return a java Boolean type object in object(),
+so that it can be recognized by extension functions.
</Log>
</Commit>
<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
BooleanType.java IntType.java NodeSetType.java NodeType.java RealType.java
ResultTreeType.java StringType.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/05</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
DOMImpl.java</Modified>
<Log>
-For XSLTC extension integration. Add more translation rules required by
-extensions. Specifically, all types can be translated to a generic Java
Object.
-Numeric types can be translated to their corresponding Java types (e.g. Real
to
-java.lang.Double). Node, NodeSet and ResultTree can be translated to a Java
String.
+ Patch for Bugzilla 15094. Fixed method to compute limit in a Descendant
+iterator; old method was (very) buggy.
</Log>
</Commit>
-<Commit category="xsltc">
+<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java</Modified>
+<DateCommitted>2002/12/05</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/templates
ElemVariable.java</Modified>
<Log>
-Support the append attribute in the redirect/output extension.
+Commit the patch from Arun Yadav([EMAIL PROTECTED]) to fix Bugzilla 15089.
+Don't add the func:result element to the variable table because it does not
have
+a name.
</Log>
</Commit>
-<Commit category="xsltc">
+<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime
BasisLibrary.java</Modified>
+<DateCommitted>2002/12/06</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/axes AxesWalker.java
ChildTestIterator.java MatchPatternIterator.java OneStepIterator.java
ReverseAxesWalker.java</Modified>
<Log>
-For XSLTC extension integration. Implement the object-type extension
-function in the EXSLT commons package. Change the behavior of the
-nodeList2Iterator interface so that it will do a deep copy on the argument
-NodeList, i.e. if a Node in the NodeList is an Element, it will not only
-copy the Node itself, but also copy all children and attributes. This is
-required to get any extension function that returns a NodeList to work in
-XSLTC.
+Fix the memory leak problem in Bug 6075.
+In the detach() method, null out the fields in the iterators that will
+be reassigned a value upon the next usage. This change fixes the problem
+that the iterators in the IteratorPool can indirectly reference the
+TransformerImpl object.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
TransletOutput.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/09</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/serialize
SerializerToXML.java</Modified>
<Log>
-Support the append attribute in the output extension element, so that
-it behavior is more like redirect:write.
+Patch for bugzilla 14965, with tweak from Art W ([EMAIL PROTECTED]).
+Handle empty comment case.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
Constants.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/10</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/templates
ElemForEach.java</Modified>
<Log>
-Add a constant string for the redirect namespace.
+Patch for bugzilla 15254.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
CastExpr.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/11</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/dtm/ref
DTMNodeList.java</Modified>
<Log>
-For extension integration. Allow numeric types to be casted to
-Object type.
+Applying Arun Yadav's ([EMAIL PROTECTED]) patch for bugzilla #15218.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
Parser.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/11</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/dtm DTMIterator.java
xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeIterator.java
xml-xalan/java/src/org/apache/xpath NodeSetDTM.java</Modified>
<Log>
-For extension integration. Add the objectType extension function to the
-Symbol Table. Maps the redirect:write element to the TransletOutPut class.
+Just tidying up the javadoc in the previousNode and nextNode methods
+and making sure we're testing against DTM.NULL instead of -1.
</Log>
</Commit>
<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
xpath.cup</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/17</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Compile.java
xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java StepPattern.java
xpath.cup xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output
StreamHTMLOutput.java StreamOutput.java StreamTextOutput.java
StreamXMLOutput.java</Modified>
<Log>
-For extension integration. The nodeset extension function can be used as
-node-set in the http://exslt.org/common namespace.
+Changes:
+ - Fixed matching problem reported by Ivelin Ivanov (Cocoon).
+ - Added support for namespaces when output is HTML.
+ - Set new version of XSLTC to be 1.4.0.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/16</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
FunctionCall.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/17</DateCommitted>
+<Modified> xml-xalan/java/samples/trax Examples.java</Modified>
<Log>
-Changes for Java extension and EXSLT extension support.
-For Java extension:
-- support 3 different namespace formats (Java, class and package).
-- fix a bunch of type translation problems
-- fix problems in class/method matching algorithm
-
-For EXSLT extension:
-- support the math, set, strings and datetime extension
-- support using the nodeset extension in 3 different ways (xsltc, xalan and
EXSLT commons)
-- support the object-type extension in EXSLT commons as a native XSLTC
function
-- Maps the redirect:write element to XSLTC's output element
-- extension function name translation (e.g. node-set to nodeSet)
+Fixing encodings issues with samples.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/17</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
xpath.cup</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/17</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/dtm/ref
DTMDefaultBase.java</Modified>
<Log>
-Additional optimizations in expansion of '//'.
+Migrating an improvement in memory usage from the XSLTC_DTM branch:
+
+Reduced the initial sizes of SuballocatedIntVectors used for m_dtmIdent and
+namespace management. In both cases default size SuballocatedIntVectors were
+being used, which entails a block size of 2048. For m_dtmIdent, that value
+would only overflow into a second block for a document with 2048*65536 nodes.
+Using a smaller size improves DTM build time for smaller documents, without
+penalizing most larger documents.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/17</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline
Transform.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/17</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm
SAX2DTM.java</Modified>
<Log>
-Removed "-DIAG" option as it is similar to "-n 1". XSLTC's command line
-options are single letters, so -DIAG does not really fit in the synopsis.
-Morris K. is working on an extension for Xalan's Process class to allow
-the compilation and execution of translets (once that work is completed
-the -DIAG option will be available for XSLTC too).
+Patch for bugzilla 4858.
+Reduces SAX2DTM memory usage by dropping m_locator after parsing is
complete. Value of m_locator.getSystemId() is cached.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/17</DateCommitted>
-<Modified> xml-xalan/java/bin xml-apis.jar xml-xalan/java/src
xml-commons-src.tar.gz</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/20</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib/sql
SQLDocument.java</Modified>
<Log>
-New version of xml-apis.jar taken from xml-commons with tag:
-factoryfinder-build. It contains the JAXP FactoryFinder patch and some
-SAX file updates.
+Fixed spelling mistake for DEFINITELYWRITABLE
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/17</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Compile.java
xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
ErrorMessages.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/20</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib/sql
DTMDocument.java</Modified>
<Log>
-Change default policy for template inlining.
+Fixed handling of Node text when an Element Node is selected
+Code provided by [EMAIL PROTECTED]
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/17</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/20</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib/sql
DefaultConnectionPool.java</Modified>
<Log>
-Replaced attribute "disable-inlining" by attribute "enable-inlining".
+Added in missing code for disable pool
+Code provided by [EMAIL PROTECTED]
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/18</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/res
XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/xslt
Process.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/20</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib/sql
DTMDocument.java</Modified>
<Log>
-XSLTC support - phase 1
-
-Add the -XSLTC option to enable transforming using XSLTC
-
-The following existing options do not work in XSLTC mode:
--TT
--TG
--TS
--TTC
--QC
--L
--INCREMENTAL
--NOOPTIMIZE
--RL
-
-If any of these options is used with -XSLTC, a message is printed
-and the option is ignored. All other existing options (e.g. -flavor,
--text, etc.) can be used with -XSLTC.
-
-In phase 2, we are going to migrate the XSLTC specific options in the
-XSLTC command lines (Compile and Transform) to the Process command line.
-One of the new features would be generating translet class files from
-the xsl.
+Fixed minor bug with for loop in getNodeData. Removed
+direct access to child node array
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/19</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib ExsltDynamic.java
ExsltMath.java ExsltStrings.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2002/12/20</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib/sql
DefaultConnectionPool.java</Modified>
<Log>
-Extension work. A few Javadoc correction. Fix problems in math:max and
math:min.
+Fixed createConnection method for JDK1.4
+Tested with 1.4.1
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/19</DateCommitted>
+<DateCommitted>2002/12/22</DateCommitted>
<Modified> xml-xalan/java/src/org/apache/xpath/objects
XRTreeFragSelectWrapper.java</Modified>
<Log>
-For Bugzilla 6181. Change the execute() interface to return the result
-of executing the select expression.
+For Bugzilla 15373. Change the execute() method to always return a XString
+object. Also change the type to CLASS_STRING.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/20</DateCommitted>
-<Modified> xml-xalan/java/bin xercesImpl.jar</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/09</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath/objects XNumber.java
XStringForFSB.java</Modified>
<Log>
-Updating to latest xercesImpl.jar, which contains org.w3c.dom.xpath
interfaces.
+Patch for bugzilla 14300.
+Corrected algorithm for converting strings to numbers as it was failing on
very large or very small numbers.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/20</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath/domapi
XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNSResolverImpl.java
XPathResultImpl.java xml-xalan/java/src/org/apache/xpath/res
XPATHErrorResources.java XPATHErrorResources.properties</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/10</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/processor
ProcessorImport.java ProcessorInclude.java StylesheetHandler.java
XSLTAttributeDef.java xml-xalan/java/src/org/apache/xalan/res XSLMessages.java
XSLTErrorResources_de.java XSLTErrorResources_en.java
XSLTErrorResources_es.java XSLTErrorResources.java XSLTErrorResources_fr.java
XSLTErrorResources_it.java XSLTErrorResources_ja.java
XSLTErrorResources_ko.java XSLTErrorResources_sv.java
XSLTErrorResources_zh_CN.java XSLTErrorResources_zh_TW.java
xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java
FuncDocument.java FuncFormatNumb.java
xml-xalan/java/src/org/apache/xalan/transformer MsgMgr.java
xml-xalan/java/src/org/apache/xml/utils UnImplNode.java
xml-xalan/java/src/org/apache/xml/utils/res XResourceBundleBase.java
XResources_de.java XResources_es.java XResources_fr.java XResources_it.java
XResources_ko.java XResources_sv.java XResources_zh_CN.java
XResources_zh_TW.java xml-xalan/java/src/org/apache/xpath Expression.java
XPath.java xml-xalan/java/src/org/apache/xpath/compiler Compiler.java
OpMap.java XPathParser.java xml-xalan/java/src/org/apache/xpath/objects
XObject.java xml-xalan/java/src/org/apache/xpath/res
XPATHErrorResources_de.java XPATHErrorResources_en.java
XPATHErrorResources_es.java XPATHErrorResources_fr.java
XPATHErrorResources_it.java XPATHErrorResources_ja.java
XPATHErrorResources_ko.java XPATHErrorResources_sv.java
XPATHErrorResources_zh_CN.java XPATHErrorResources_zh_TW.java
XPATHErrorResources.java</Modified>
<Log>
-Prototype implementation of DOM L3 XPath Specification.
+Changes from Ramesh Mandava ([EMAIL PROTECTED]) to move to using
+ListResourceBundles for Xalan-J Interpretive messages, along with localized
+versions of those messages.
+
+In addition, message keys are now meaningful strings, rather than numeric.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/20</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/serialize
SerializerToXML.java</Modified>
+<DateCommitted>2003/01/10</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/templates
OutputProperties.java</Modified>
<Log>
-Committing Gordon Chiu's ([EMAIL PROTECTED]) patch for bugzilla #6927.
+Committing Gordon Chiu's patch for bugzilla #6157. Multiple xsl:output
+statements should now be merged correctly.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/21</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
DOMAdapter.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/11</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/templates
OutputProperties.java</Modified>
<Log>
-Lazy computation of mappings and reverse mappings.
+Small cleanup regarding bugzilla 6157.
+Removed m_propertiesLevels field as it's no longer required.
</Log>
</Commit>
<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/21</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
DOMImpl.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/11</DateCommitted>
+<Modified> xml-xalan/java/xdocs/sources/xsltc
xsltc_performance.xml</Modified>
<Log>
-(1) Synchronize access to static variable.
-(2) Pre-allocate static objects for attribute and element types.
+Fixing mispellings in xsltc_performance.xml (bugzilla 15591).
+Changes will appear when the site is re-generated.
+
+Mispellings originally reported by Rob Tougher ([EMAIL PROTECTED]).
</Log>
</Commit>
<Commit category="xsltc">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/21</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
DOMImpl.java</Modified>
-<Log>
-Changed setting to speed up DOM building process.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/23</DateCommitted>
-<Modified> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml
xsltc_usage.xml</Modified>
+<DateCommitted>2003/01/13</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
CompilerContext.java</Modified>
<Log>
-compile -n option changed so inlining is now the default
+file CompilerContext.java was initially added on branch xslt20.
</Log>
</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/23</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib ExsltBase.java
ExsltDynamic.java ExsltMath.java ExsltSets.java ExsltStrings.java</Modified>
+<Commit category="xsltc">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/13</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
CompilerContextImpl.java</Modified>
<Log>
-Extension cleanup.
-Add an ExsltBase class as the super class for other EXSLT implementation
-classes, so that the toString() and toNumber() interfaces can be easily
-reused by all the subclasses without duplicating code.
+file CompilerContextImpl.java was initially added on branch xslt20.
</Log>
</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/23</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath DOMHelper.java</Modified>
+<Commit category="xsltc">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/13</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
StaticContext.java</Modified>
<Log>
-The isNodeTheSame(node1, node2) interface should return true if node1==node2.
+file StaticContext.java was initially added on branch xslt20.
</Log>
</Commit>
<Commit category="xsltc">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/23</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java</Modified>
+<DateCommitted>2003/01/13</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
StaticContextImpl.java</Modified>
<Log>
-Return a fresh XMLReader for each call to getXMLReader(). Returning the
-same instance is incorrect in multi-threaded apps where a single
-transformer factory is shared by all threads.
+file StaticContextImpl.java was initially added on branch xslt20.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/23</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
DOM2TO.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/14</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/dtm DTMManager.java
FactoryFinder.java SecuritySupport.java SecuritySupport12.java</Modified>
<Log>
-For Bugzilla 12924. Add handling code for DocumentType Node.
+Committing changes in response to bugzilla #12481.
+Before this commit, DTMManager.newInstance cached the found class
+in the cases where the class was identified in jaxp.properties or the class
path.
+There were some problems with this:
+
+1. It was not thread-safe because access to the static field foundFactory was
+ not synchronized.
+2. We weren't caching the class when we defaulted to the fallback class (this
+ was the original issue in the bug report.)
+3. We weren't using the AccessController class available in JDK1.2 to control
+ access to priviliged resources (eg. system properties, files).
+4. DTMManager would never be specified in jaxp.properties because it's
+ not part of the JAXP specification.
+5. We aren't using context class loaders.
+
+So, I have made the following changes:
+
+1. Taken the FactoryFinder, SecuritySupport and SecuritySupport12 classes
+from the JAXP subdirectories (in xml-commons) and used them as the basis
+for the lookup of the DTMManager class. This gives us the AccessController
+code.
+
+2. Removed the context class loader support and added a cache for
+ the found class (which gets used if the system property is not set.)
+ If we want context class loader support in the future (which we probably)
+ do, then we will need to revisit this to see if caching the class loader
and the
+ class would work.
+
+3. Synchronized access to the found class.
+
+4. Instead of looking in jaxp.properties, look in xalan.properties (a xalan
+ specific configuration file) which can be placed in
<$JAVA_HOME>/jre/lib.
+
+Possible issues:
+
+1. In general, using a cache means that the class will not change,
+ regardless of changes to xalan.properties or the class loader.
</Log>
</Commit>
-<Commit category="xsltc">
+<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/23</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
SAX2DOM.java</Modified>
+<DateCommitted>2003/01/22</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/res XMLErrorResources_de.java
XMLErrorResources_en.java XMLErrorResources_es.java XMLErrorResources_fr.java
XMLErrorResources_it.java XMLErrorResources_ja.java XMLErrorResources_ko.java
XMLErrorResources_sv.java XMLErrorResources_zh_CN.java
XMLErrorResources_zh_TW.java XMLErrorResources.java XMLMessages.java</Modified>
<Log>
-For Bugzilla 12924. In constructor SAX2DOM(Node), the Node might not always
-be a Document. Add additional handling code so that SAX2DOM can work with a
-non-Document root.
+DTM Separation -- New message files
+Move the error messages used by DTM classes from Xalan and XPath
+down to org.apache.xml.res. Created XMLErrorResources files for
+all locales. The XMLMessages class is introduced to handle error
+resources at this level. If a DTM interface needs to issue an error
+message, it will use the new XMLMessages class rather than the
+XSLMessages class in org.apache.xalan.res.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/23</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java
xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java
XSLTErrorResources.properties</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/22</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/utils Constants.java
DOM2Helper.java DOMHelper.java DOMOrder.java
ThreadControllerWrapper.java</Modified>
<Log>
-Patch for bugzilla #10384. There's still a problem with attribseterr08 which
-is covered in bugzilla #3969.
+DTM Separation - new files in org.apache.xml.utils
+Move the classes DOMOrder, DOMHelper and DOM2Helper from XPath to xml.utils.
+Add a new Constants class to hold the constants used by XPath.
+The ThreadControllerWrapper class is a container for the nested class
+ThreadController which was originally in
org.apache.xalan.transformer.TransformerImpl.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/23</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/dom3/xpath
XPathEvaluator.java XPathException.java XPathExpression.java
XPathNamespace.java XPathNSResolver.java XPathResult.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/22</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/dtm DTMException.java
DTMManager.java xml-xalan/java/src/org/apache/xml/dtm/ref ChunkedIntArray.java
CoroutineManager.java DTMDefaultBase.java DTMDefaultBaseIterators.java
DTMDefaultBaseTraversers.java DTMManagerDefault.java
IncrementalSAXSource_Filter.java IncrementalSAXSource_Xerces.java
xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2RTFDTM.java
xml-xalan/java/src/org/apache/xml/utils AttList.java DefaultErrorHandler.java
DOMBuilder.java ListingErrorHandler.java ObjectPool.java
PrefixResolverDefault.java QName.java TreeWalker.java UnImplNode.java
URI.java</Modified>
<Log>
-Since Xerces has decided not to build the org.w3c.dom.xpath interfaces into
-XercesImpl I have created a temporary home for these interfaces, until
-the specification becomes a recommendation.
+DTM Separation -- patches for files under org.apache.xml
+1. Replace all invocations of XSLMessages.createMessage() by
+XMLMessages.createXMLMessage().
+
+2. Replace XSLTErrorResources by XMLErrorResources.
+
+3. In IncrementalSAXSource_Filter, use ThreadControllerWrapper.runThread()
+rather than calling TransformerImpl.runTransformThread().
+
+4. In SAX2DTM, use a setter method to set the source location property.
+Remove the field access to
org.apache.xalan.processor.TransformerFactoryImpl.m_source_location.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/23</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath/domapi
XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNSResolverImpl.java
XPathResultImpl.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/22</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath DOM2Helper.java
DOMHelper.java DOMOrder.java</Modified>
<Log>
-Updating import statements to use the interfaces in the temporary
org.apache.xalan.dom3.xpath package.
+DTM Separation - remove old files in XPath
+DOMOrder, DOMHelper and DOM2Helper are now in org.apache.xml.utils.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/24</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java
XSLTErrorResources.properties</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/22</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xpath NodeSet.java
XPathContext.java xml-xalan/java/src/org/apache/xpath/functions FuncId.java
FuncSum.java xml-xalan/java/src/org/apache/xpath/objects XNodeSet.java
XRTreeFragSelectWrapper.java xml-xalan/java/src/org/apache/xpath/res
XPATHErrorResources_de.java XPATHErrorResources_es.java
XPATHErrorResources_fr.java XPATHErrorResources_it.java
XPATHErrorResources_ja.java XPATHErrorResources_ko.java
XPATHErrorResources_sv.java XPATHErrorResources_zh_CN.java
XPATHErrorResources_zh_TW.java XPATHErrorResources.java
XPATHMessages.java</Modified>
<Log>
-Added some new error message strings.
+DTM Separation -- changes in org.apache.xpath
+1. Change the import path for DOMHelper and DOM2Helper
+2. Move 8 errror messages from XPATHErrorResources to XMLErrorResources
+3. Create a new XPATHMessages class to handle error resources at
+the XPath level.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/25</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/transformer
ResultTreeHandler.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/22</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/lib ExsltSets.java
xml-xalan/java/src/org/apache/xalan/processor ProcessorInclude.java
StylesheetHandler.java TransformerFactoryImpl.java
xml-xalan/java/src/org/apache/xalan/res XSLMessages.java
XSLTErrorResources_de.java XSLTErrorResources.java XSLTErrorResources_es.java
XSLTErrorResources_fr.java XSLTErrorResources_it.java
XSLTErrorResources_ja.java XSLTErrorResources_ko.java
XSLTErrorResources_sv.java XSLTErrorResources_zh_CN.java
XSLTErrorResources_zh_TW.java xml-xalan/java/src/org/apache/xalan/serialize
SerializerToXML.java xml-xalan/java/src/org/apache/xalan/templates
Constants.java xml-xalan/java/src/org/apache/xalan/transformer MsgMgr.java
TransformerIdentityImpl.java TransformerImpl.java
TreeWalker2Result.java</Modified>
<Log>
-Patch for bugzilla #4344. The testcases, copyerr04-07 were already
-working correctly in that when an attempt was made to add an attribute
-after child elements, or before an element was produced, the attribute was
-ignored. However, Dave M. said that a warning was also needed. So,
-I have added a warning message for these cases. Also, similar behaviour
-was being seen for testcases attribset19,35,36 and attribseterr08. This
-was being handled in ElemAttribute.execute, but I've commented out the
-code there since it will get caught in ResultTreeHandler.execute in the
-same place the copyerr tests get handled.
-
-The negative testcases, copyerr04-07, attribset08 should be moved
-to the positive bucket (possibly with a few tweaks) since they all run to
-completion.
+DTM Separation -- changes in org.apache.xalan
+1. Change the paths to DOMHelper and DOM2Helper
+2. Remove the m_XSLMessages field from a few classes.
+Use the static methods instead.
+3. In TransformerFactoryImpl, whenever the source location attribute
+is set, call the setter method in SAX2DTM to set the same attribute.
+4. XSLMessages now extends from XPATHMessages. The common interfaces
+are moved to XMLMessages.
+5. Move 53 error messages from XSLTErrorResources to XMLErrorResources.
+6. Move some of the constants from org.apache.xalan.templates.Constants
+to org.apache.xml.utils.Constants.
+7. Move the nested class ThreadControler in TransformerImpl to
+org.apache.xml.utils.ThreadControllerWrapper.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/25</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java
xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties</Modified>
+<DateCommitted>2003/01/23</DateCommitted>
+<Modified> xml-xalan/java/samples/UseStylesheetParam UseStylesheetParam.java
xml-xalan/java/samples/extensions/sql/ext-connection ExternalConnection.java
xml-xalan/java/samples/SimpleTransform SimpleTransform.java
xml-xalan/java/samples/Validate ValidateXMLInput.java</Modified>
<Log>
-Patch for bugzilla #4344.
+Updating license in some samples.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/25</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/transformer
ResultTreeHandler.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/23</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/res
XSLTErrorResources_de.java XSLTErrorResources_es.java
XSLTErrorResources_fr.java XSLTErrorResources_it.java XSLTErrorResources.java
XSLTErrorResources_ja.java XSLTErrorResources_ko.java
XSLTErrorResources_sv.java XSLTErrorResources_zh_CN.java
XSLTErrorResources_zh_TW.java</Modified>
<Log>
-Gordon Chiu's ([EMAIL PROTECTED]) patch for bugzilla #8473. Thanks also
-to Brian Minchau ([EMAIL PROTECTED]) for the analysis of this bug.
+Correction to the message number.
</Log>
</Commit>
<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/25</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/24</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
FunctionCall.java</Modified>
<Log>
-Use a thread variable to cache an XMLReader.
+For Bugzilla 16386. Add rules for object type matching.
</Log>
</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/26</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath/functions
FunctionMultiArgs.java</Modified>
+<Commit category="xsltc">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/24</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
ForEachGroup.java</Modified>
<Log>
-For Bugzilla 7161. Add a public accessor to return the argument array.
+file ForEachGroup.java was initially added on branch xslt20.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/26</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
FunctionAvailableCall.java FunctionCall.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/24</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/utils
FastStringBuffer.java</Modified>
<Log>
-EXtension work. Make function-available work with external Java and EXSLT
-extension functions.
+Fix for Bugzilla bug 10053. Before, a blank was emitted for any chunk that
+began with whitespace after non-whitespace characters had been seen. Also
made
+some performance improvements to sendNormalizedSAXcharacters.
</Log>
</Commit>
-<Commit category="xsltc">
+<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/26</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
FunctionAvailableCall.java</Modified>
+<DateCommitted>2003/01/24</DateCommitted>
+<Modified> xml-xalan/java build.xml</Modified>
<Log>
-Handle dots in the local part, e.g.
-xmlns:ext="http://xml.apache.org/xalan/java/java.lang
-function-available('ext:Thread.currentThread') return true.
+Commit the patch from Sarah Mcnamara ([EMAIL PROTECTED]) to remove
+the compat target.
</Log>
</Commit>
<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/26</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
FunctionAvailableCall.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/24</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
AnalyzeString.java</Modified>
<Log>
-Minor cleanup in class name handling.
+file AnalyzeString.java was initially added on branch xslt20.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/27</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath XPathContext.java
xml-xalan/java/src/org/apache/xalan/extensions ExpressionContext.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/27</DateCommitted>
+<Modified> xml-xalan/java/bin xml-apis.jar xml-xalan/java/src
xml-commons-src.tar.gz</Modified>
<Log>
-For Bugzilla 10414. Provide a getErrorListener() interface in the
ExpressionContext.
+Committing xml-apis bin and source based off new tck-jaxp-1_2_0 branch
+of xml-commons.
</Log>
</Commit>
-<Commit category="core">
+<Commit category="xsltc">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/27</DateCommitted>
-<Modified> xml-xalan/java/samples/AppletXMLtoHTML client.html</Modified>
+<DateCommitted>2003/01/27</DateCommitted>
+<Modified> xml-xalan/java build.xml License xml-xalan/java/bin
xercesImpl.LICENSE.txt xml-apis.LICENSE.txt xml-xalan/java/samples/ApplyXPath
ApplyXPath.java xml-xalan/java/samples/ApplyXPathDOM ApplyXPathDOM.java
xml-xalan/java/samples/CompiledApplet TransformApplet.java
xml-xalan/java/samples/CompiledBrazil TransformHandler.java
xml-xalan/java/samples/CompiledEJB TransformBean.java TransformHome.java
TransformRemote.java TransformServlet.java xml-xalan/java/samples/CompiledJAXP
Compile.java Transform.java xml-xalan/java/samples/CompiledServlet
CompileServlet.java TransformServlet.java xml-xalan/java/samples/DOM2DOM
DOM2DOM.java xml-xalan/java/samples/Pipe Pipe.java
xml-xalan/java/samples/SAX2SAX SAX2SAX.java
xml-xalan/java/samples/SimpleTransform SimpleTransform.java
xml-xalan/java/samples/Trace Trace.java xml-xalan/java/samples/UseStylesheetPI
UseStylesheetPI.java xml-xalan/java/samples/extensions IntDate.java
MyCounter.java xml-xalan/java/samples/extensions/sql/ext-connection
ExternalConnection.java xml-xalan/java/samples/servlet ApplyXSLT.java
ApplyXSLTException.java ApplyXSLTListener.java ApplyXSLTProperties.java
DefaultApplyXSLTProperties.java SimpleXSLTServlet.java
UseStylesheetParamServlet.java XSLTServletWithParams.java
xml-xalan/java/samples/UseStylesheetParam UseStylesheetParam.java
xml-xalan/java/samples/UseXMLFilters UseXMLFilters.java
xml-xalan/java/samples/Validate Validate.java ValidateXMLInput.java
xml-xalan/java/samples/servlet ApplyXSLT.java ApplyXSLTException.java
ApplyXSLTListener.java ApplyXSLTProperties.java DefaultApplyXSLTProperties.java
SimpleXSLTServlet.java UseStylesheetParamServlet.java
XSLTServletWithParams.java xml-xalan/java/samples/translets
JAXPTransletMultipleTransformations.java JAXPTransletOneTransformation.java
xml-xalan/java/samples/trax ExampleContentHandler.java Examples.java
xml-xalan/java/src/org/apache/xalan Version.java
xml-xalan/java/src/org/apache/xalan/client XSLTProcessorApplet.java
xml-xalan/java/src/org/apache/xalan/extensions ExpressionContext.java
ExpressionVisitor.java ExtensionHandler.java ExtensionHandlerExsltFunction.java
ExtensionHandlerGeneral.java ExtensionHandlerJava.java
ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java
ExtensionNamespacesManager.java ExtensionNamespaceSupport.java
ExtensionsTable.java MethodResolver.java XSLProcessorContext.java
xml-xalan/java/src/org/apache/xalan/lib ExsltBase.java ExsltCommon.java
ExsltDatetime.java ExsltDynamic.java ExsltMath.java ExsltSets.java
ExsltStrings.java Extensions.java NodeInfo.java PipeDocument.java Redirect.java
xml-xalan/java/src/org/apache/xalan/lib/sql ConnectionPool.java
ConnectionPoolManager.java DefaultConnectionPool.java DTMDocument.java
ObjectArray.java PooledConnection.java QueryParameter.java SQLDocument.java
SQLErrorDocument.java XConnection.java
xml-xalan/java/src/org/apache/xalan/processor ProcessorAttributeSet.java
ProcessorCharacters.java ProcessorDecimalFormat.java
ProcessorExsltFuncResult.java ProcessorExsltFunction.java
ProcessorGlobalParamDecl.java ProcessorGlobalVariableDecl.java
ProcessorImport.java ProcessorInclude.java ProcessorKey.java ProcessorLRE.java
ProcessorNamespaceAlias.java ProcessorOutputElem.java
ProcessorPreserveSpace.java ProcessorStripSpace.java
ProcessorStylesheetDoc.java ProcessorStylesheetElement.java
ProcessorTemplate.java ProcessorTemplateElem.java ProcessorText.java
ProcessorUnknown.java StopParseException.java StylesheetHandler.java
StylesheetPIHandler.java TransformerFactoryImpl.java WhitespaceInfoPaths.java
XSLProcessorVersion.java XSLTAttributeDef.java XSLTElementDef.java
XSLTElementProcessor.java XSLTSchema.java
xml-xalan/java/src/org/apache/xalan/res XSLMessages.java
XSLTErrorResources_de.java XSLTErrorResources_en.java
XSLTErrorResources_es.java XSLTErrorResources.java XSLTErrorResources_fr.java
XSLTErrorResources_it.java XSLTErrorResources_ja.java
XSLTErrorResources_ko.java XSLTErrorResources_sv.java
XSLTErrorResources_zh_CN.java XSLTErrorResources_zh_TW.java
xml-xalan/java/src/org/apache/xalan/serialize CharInfo.java DOMSerializer.java
ElemDesc.java EncodingInfo.java Encodings.java Method.java Serializer.java
SerializerFactory.java SerializerToHTML.java SerializerToText.java
SerializerToXML.java WriterToASCI.java WriterToUTF8.java
WriterToUTF8Buffered.java xml-xalan/java/src/org/apache/xalan/templates
AbsPathChecker.java AVT.java AVTPart.java AVTPartSimple.java AVTPartXPath.java
Constants.java DecimalFormatProperties.java ElemApplyImport.java
ElemApplyTemplates.java ElemAttribute.java ElemAttributeSet.java
ElemCallTemplate.java ElemChoose.java ElemComment.java ElemCopy.java
ElemCopyOf.java ElemElement.java ElemEmpty.java ElemExsltFuncResult.java
ElemExsltFunction.java ElemExtensionCall.java ElemExtensionDecl.java
ElemExtensionScript.java ElemFallback.java ElemForEach.java ElemIf.java
ElemLiteralResult.java ElemMessage.java ElemNumber.java ElemOtherwise.java
ElemParam.java ElemPI.java ElemSort.java ElemTemplate.java
ElemTemplateElement.java ElemText.java ElemTextLiteral.java ElemUnknown.java
ElemUse.java ElemValueOf.java ElemVariable.java ElemVariablePsuedo.java
ElemWhen.java ElemWithParam.java FuncDocument.java FuncFormatNumb.java
FuncKey.java KeyDeclaration.java NamespaceAlias.java OutputProperties.java
RedundentExprEliminator.java Stylesheet.java StylesheetComposed.java
StylesheetRoot.java TemplateList.java TemplateSubPatternAssociation.java
VarNameCollector.java WhiteSpaceInfo.java XMLNSDecl.java XSLTVisitable.java
XSLTVisitor.java XUnresolvedVariable.java XUnresolvedVariableSimple.java
xml-xalan/java/src/org/apache/xalan/trace EndSelectionEvent.java
GenerateEvent.java PrintTraceListener.java SelectionEvent.java
TraceListener.java TraceListenerEx.java TraceListenerEx2.java TraceManager.java
TracerEvent.java xml-xalan/java/src/org/apache/xalan/transformer
ClonerToResultTree.java Counter.java CountersTable.java DecimalToRoman.java
KeyIterator.java KeyManager.java KeyRefIterator.java KeyTable.java MsgMgr.java
NodeSorter.java NodeSortKey.java NumeratorFormatter.java QueuedEvents.java
ResultNameSpace.java ResultTreeHandler.java SerializerSwitcher.java
StackGuard.java TransformerClient.java TransformerHandlerImpl.java
TransformerIdentityImpl.java TransformerImpl.java TransformSnapshot.java
TransformSnapshotImpl.java TransformState.java TrAXFilter.java
TreeWalker2Result.java XalanProperties.java XSLInfiniteLoopException.java
xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java Process.java
xml-xalan/java/src/org/apache/xalan/xsltc CollatorFactory.java DOM.java
DOMCache.java NodeIterator.java ProcessorVersion.java StripFilter.java
Translet.java TransletException.java TransletOutputHandler.java
xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Compile.java Transform.java
xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/getopt GetOpt.java
GetOptsException.java IllegalArgumentException.java MissingOptArgException.java
xml-xalan/java/src/org/apache/xalan/xsltc/compiler AbsoluteLocationPath.java
AbsolutePathPattern.java AlternativePattern.java AncestorPattern.java
ApplyImports.java ApplyTemplates.java ArgumentList.java Attribute.java
AttributeSet.java AttributeValue.java AttributeValueTemplate.java
BinOpExpr.java BooleanCall.java BooleanExpr.java CallTemplate.java
CastExpr.java CeilingCall.java Choose.java Closure.java Comment.java
CompilerException.java ConcatCall.java Constants.java ContainsCall.java
Copy.java CopyOf.java CurrentCall.java DecimalFormatting.java DocumentCall.java
ElementAvailableCall.java EqualityExpr.java Expression.java Fallback.java
FilteredAbsoluteLocationPath.java FilterExpr.java FilterParentPath.java
FloorCall.java FlowList.java ForEach.java FormatNumberCall.java
ForwardPositionExpr.java FunctionAvailableCall.java FunctionCall.java
GenerateIdCall.java IdKeyPattern.java IdPattern.java If.java
IllegalCharException.java Import.java Include.java Instruction.java
IntExpr.java Key.java KeyCall.java KeyPattern.java LangCall.java LastCall.java
LiteralAttribute.java LiteralElement.java LiteralExpr.java LocalNameCall.java
LocationPathPattern.java LogicalExpr.java Message.java Mode.java NameBase.java
NameCall.java NamespaceAlias.java NamespaceUriCall.java NodeTest.java
NotCall.java Number.java NumberCall.java Otherwise.java Output.java Param.java
ParameterRef.java ParentLocationPath.java ParentPattern.java Parser.java
Pattern.java PositionCall.java Predicate.java ProcessingInstruction.java
ProcessingInstructionPattern.java QName.java RealExpr.java RelationalExpr.java
RelativeLocationPath.java RelativePathPattern.java RoundCall.java
SimpleAttributeValue.java Sort.java SourceLoader.java StartsWithCall.java
Step.java StepPattern.java StringCall.java StringLengthCall.java
Stylesheet.java SymbolTable.java SyntaxTreeNode.java Template.java TestSeq.java
Text.java TopLevelElement.java TransletOutput.java UnaryOpExpr.java
UnionPathExpr.java UnparsedEntityUriCall.java UnresolvedRef.java
UnsupportedElement.java UseAttributeSets.java ValueOf.java Variable.java
VariableBase.java VariableRef.java VariableRefBase.java When.java
Whitespace.java WithParam.java xpath.cup xpath.lex XslAttribute.java
XslElement.java XSLTC.java
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
AttributeSetMethodGenerator.java BooleanType.java ClassGenerator.java
CompareGenerator.java ErrorMessages_no.java ErrorMessages.java ErrorMsg.java
FilterGenerator.java IntType.java MatchGenerator.java MethodGenerator.java
MethodType.java MultiHashtable.java NamedMethodGenerator.java
NodeCounterGenerator.java NodeSetType.java NodeSortRecordFactGenerator.java
NodeSortRecordGenerator.java NodeType.java NumberType.java ObjectType.java
RealType.java ReferenceType.java ResultTreeType.java RtMethodGenerator.java
SlotAllocator.java StringStack.java StringType.java TestGenerator.java
Type.java TypeCheckError.java Util.java VoidType.java
xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java
AttributeList.java Attributes.java BasisLibrary.java Constants.java
DefaultSAXOutputHandler.java ErrorMessages_no.java ErrorMessages.java
Hashtable.java MessageHandler.java Node.java Operators.java Parameter.java
SAXAdapter.java StringValueHandler.java TextOutput.java TransletLoader.java
TransletOutputBase.java
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBase.java
OutputBuffer.java SAXHTMLOutput.java SAXOutput.java SAXTextOutput.java
SAXXMLOutput.java StreamHTMLOutput.java StreamOutput.java StreamTextOutput.java
StreamUnknownOutput.java StreamXMLOutput.java StringOutputBuffer.java
TransletOutputHandlerFactory.java WriterOutputBuffer.java
xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2SAX.java DOM2TO.java
OutputSettings.java SAX2DOM.java SAX2TO.java SmartTransformerFactoryImpl.java
TemplatesHandlerImpl.java TemplatesImpl.java TransformerFactoryImpl.java
TransformerHandlerImpl.java TransformerImpl.java TrAXFilter.java Util.java
XSLTCSource.java xml-xalan/java/src/org/apache/xalan/xsltc/util
IntegerArray.java JavaCupRedirect.java xml-xalan/java/src/org/apache/xml/dtm
Axis.java DTM.java DTMAxisIterator.java DTMAxisTraverser.java
DTMConfigurationException.java DTMDOMException.java DTMException.java
DTMFilter.java DTMIterator.java DTMManager.java DTMWSFilter.java
FactoryFinder.java SecuritySupport.java SecuritySupport12.java
xml-xalan/java/src/org/apache/xml/dtm/ref ChunkedIntArray.java
CoroutineManager.java CoroutineParser.java CustomStringPool.java
DTMAxisIteratorBase.java DTMDefaultBase.java DTMDefaultBaseIterators.java
DTMDefaultBaseTraversers.java DTMDocumentImpl.java DTMManagerDefault.java
DTMNamedNodeMap.java DTMNodeIterator.java DTMNodeList.java DTMNodeProxy.java
DTMSafeStringPool.java DTMStringPool.java DTMTreeWalker.java
ExpandedNameTable.java IncrementalSAXSource_Filter.java
IncrementalSAXSource_Xerces.java IncrementalSAXSource.java NodeLocator.java
xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
DOM2DTMdefaultNamespaceDeclarationNode.java
xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2RTFDTM.java
xml-xalan/java/src/org/apache/xml/res XMLErrorResources_de.java
XMLErrorResources_en.java XMLErrorResources_es.java XMLErrorResources_fr.java
XMLErrorResources_it.java XMLErrorResources_ja.java XMLErrorResources_ko.java
XMLErrorResources_sv.java XMLErrorResources_zh_CN.java
XMLErrorResources_zh_TW.java XMLErrorResources.java XMLMessages.java
xml-xalan/java/src/org/apache/xml/utils AttList.java BoolStack.java
CharKey.java Constants.java DefaultErrorHandler.java DOM2Helper.java
DOMBuilder.java DOMHelper.java DOMOrder.java ElemDesc.java
FastStringBuffer.java Hashtree2Node.java IntStack.java IntVector.java
ListingErrorHandler.java MutableAttrListImpl.java NameSpace.java
NamespaceSupport2.java NodeConsumer.java NodeVector.java NSInfo.java
ObjectPool.java ObjectStack.java ObjectVector.java PrefixResolver.java
PrefixResolverDefault.java QName.java RawCharacterHandler.java
SAXSourceLocator.java SerializableLocatorImpl.java StringBufferPool.java
StringToIntTable.java StringToStringTable.java StringToStringTableVector.java
StringVector.java SuballocatedByteVector.java SuballocatedIntVector.java
SystemIDResolver.java ThreadControllerWrapper.java TreeWalker.java Trie.java
UnImplNode.java URI.java WrappedRuntimeException.java WrongParserException.java
XMLChar.java XMLCharacterRecognizer.java XMLString.java XMLStringFactory.java
xml-xalan/java/src/org/apache/xml/utils/res XResourceBundle.java
XResourceBundleBase.java XResources_cy.java XResources_de.java
XResources_el.java XResources_en.java XResources_es.java XResources_fr.java
XResources_he.java XResources_hy.java XResources_it.java
XResources_ja_JP_A.java XResources_ja_JP_HA.java XResources_ja_JP_HI.java
XResources_ja_JP_I.java XResources_ka.java XResources_ko.java
XResources_sv.java XResources_zh_CN.java XResources_zh_TW.java
xml-xalan/java/src/org/apache/xml/utils/synthetic Class.java JavaUtils.java
SynthesisException.java TestDriver.java
xml-xalan/java/src/org/apache/xml/utils/synthetic/reflection Constructor.java
EntryPoint.java Field.java Member.java Method.java
xml-xalan/java/src/org/apache/xpath Arg.java CachedXPathAPI.java
Expression.java ExpressionNode.java ExpressionOwner.java
ExtensionsProvider.java FoundIndex.java NodeSet.java NodeSetDTM.java
SourceTree.java SourceTreeManager.java VariableStack.java
WhitespaceStrippingElementMatcher.java XPath.java XPathAPI.java
XPathContext.java XPathException.java XPathFactory.java
XPathProcessorException.java XPathVisitable.java XPathVisitor.java
xml-xalan/java/src/org/apache/xpath/axes AttributeIterator.java AxesWalker.java
BasicTestIterator.java ChildIterator.java ChildTestIterator.java
ContextNodeList.java DescendantIterator.java FilterExprIterator.java
FilterExprIteratorSimple.java FilterExprWalker.java
HasPositionalPredChecker.java IteratorPool.java LocPathIterator.java
MatchPatternIterator.java NodeSequence.java OneStepIterator.java
OneStepIteratorForward.java PathComponent.java PredicatedNodeTest.java
ReverseAxesWalker.java RTFIterator.java SelfIteratorNoPredicate.java
SubContextList.java UnionChildIterator.java UnionPathIterator.java
WalkerFactory.java WalkingIterator.java WalkingIteratorSorted.java
xml-xalan/java/src/org/apache/xpath/compiler Compiler.java FuncLoader.java
FunctionTable.java Keywords.java Lexer.java OpCodes.java OpMap.java
OpMapVector.java PsuedoNames.java XPathDumper.java XPathParser.java
xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java
XPathExpressionImpl.java XPathNamespaceImpl.java XPathNSResolverImpl.java
XPathResultImpl.java xml-xalan/java/src/org/apache/xpath/functions
FuncBoolean.java FuncCeiling.java FuncConcat.java FuncContains.java
FuncCount.java FuncCurrent.java FuncDoclocation.java
FuncExtElementAvailable.java FuncExtFunction.java FuncExtFunctionAvailable.java
FuncFalse.java FuncFloor.java FuncGenerateId.java FuncId.java FuncLang.java
FuncLast.java FuncLocalPart.java FuncNamespace.java FuncNormalizeSpace.java
FuncNot.java FuncNumber.java FuncPosition.java FuncQname.java FuncRound.java
FuncStartsWith.java FuncString.java FuncStringLength.java FuncSubstring.java
FuncSubstringAfter.java FuncSubstringBefore.java FuncSum.java
FuncSystemProperty.java Function.java Function2Args.java Function3Args.java
FunctionDef1Arg.java FunctionMultiArgs.java FunctionOneArg.java
FuncTranslate.java FuncTrue.java FuncUnparsedEntityURI.java
WrongNumberArgsException.java xml-xalan/java/src/org/apache/xpath/objects
XBoolean.java XBooleanStatic.java XMLStringFactoryImpl.java XNodeSet.java
XNodeSetForDOM.java XNull.java XNumber.java XObject.java XObjectFactory.java
XRTreeFrag.java XRTreeFragSelectWrapper.java XString.java XStringForChars.java
XStringForFSB.java xml-xalan/java/src/org/apache/xpath/operations And.java
Bool.java Div.java Equals.java Gt.java Gte.java Lt.java Lte.java Minus.java
Mod.java Mult.java Neg.java NotEquals.java Number.java Operation.java Or.java
Plus.java Quo.java String.java UnaryOperation.java Variable.java
VariableSafeAbsRef.java xml-xalan/java/src/org/apache/xpath/patterns
ContextMatchStepPattern.java FunctionPattern.java NodeTest.java
NodeTestFilter.java StepPattern.java UnionPattern.java
xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources_de.java
XPATHErrorResources_en.java XPATHErrorResources_es.java
XPATHErrorResources_fr.java XPATHErrorResources_it.java
XPATHErrorResources_ja.java XPATHErrorResources.java
XPATHErrorResources_ko.java XPATHErrorResources_sv.java
XPATHErrorResources_zh_CN.java XPATHErrorResources_zh_TW.java
XPATHMessages.java xml-xalan/java/xdocs/sources xalandesign.xml
xalan-jlocal.xml xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan builds.xml
commandline_xsltc.xml commandline.xml dtm.xml extensions_xsltc.xml
extensions.xml extensionslib.xml faq.xml features.xml getstarted.xml
history.xml index.xml overview.xml readme.xml samples.xml trax.xml
usagepatterns.xml whatsnew.xml xsltc_history.xml xsltc_usage.xml
xml-xalan/java/xdocs/sources/xsltc index.xml xsl_choose_design.xml
xsl_comment_design.xml xsl_if_design.xml xsl_include_design.xml
xsl_key_design.xml xsl_lang_design.xml xsl_sort_design.xml
xsl_unparsed_design.xml xsl_variable_design.xml xsl_whitespace_design.xml
xsltc_compiler.xml xsltc_dom.xml xsltc_iterators.xml xsltc_namespace.xml
xsltc_native_api.xml xsltc_overview.xml xsltc_performance.xml
xsltc_predicates.xml xsltc_runtime.xml xsltc_trax_api.xml
xsltc_trax.xml</Modified>
<Log>
-For bugzilla 13059. Fix typo width"0" to width="0".
+Commit the copyright patches from Sarah Mcnamara ([EMAIL PROTECTED]).
</Log>
</Commit>
-<Commit category="xsltc">
+<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/27</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
ErrorMsg.java TypeCheckError.java xml-xalan/java/src/org/apache/xalan/xsltc/dom
DocumentCache.java DOMImpl.java DTDMonitor.java
xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java
TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/getopt
GetOpt.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Include.java
TransletOutput.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime
BasisLibrary.java</Modified>
+<DateCommitted>2003/01/30</DateCommitted>
+<Modified> xml-xalan/java/samples/CompiledApplet TransformApplet.java
xml-xalan/java/samples/CompiledBrazil TransformHandler.java
xml-xalan/java/samples/CompiledEJB TransformBean.java TransformHome.java
TransformRemote.java TransformServlet.java xml-xalan/java/samples/CompiledJAXP
Compile.java Transform.java xml-xalan/java/samples/CompiledServlet
CompileServlet.java TransformServlet.java xml-xalan/java/samples/translets
JAXPTransletMultipleTransformations.java
JAXPTransletOneTransformation.java</Modified>
<Log>
-Committing changes from Gordon Chiu ([EMAIL PROTECTED]), with some tweaks
from
-me, to move some hard-coded XSLTC messages into the compiler and run-time
-ErrorMessages classes, as appropriate.
+Changes to minimize set of classes imported.
</Log>
</Commit>
-<Commit category="xsltc">
+<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/27</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
ErrorMessages.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime
ErrorMessages.java</Modified>
+<DateCommitted>2003/01/30</DateCommitted>
+<Modified> xml-xalan/java todo.xsl</Modified>
<Log>
-Committing changes from Gordon Chiu ([EMAIL PROTECTED]), with some tweaks
from
-me, to move some hard-coded XSLTC messages into the compiler and run-time
-ErrorMessages classes, as appropriate.
-
-Also, added copious comments to assist anyone who might translate these
-resources in the future.
+Added support for distinguishing between active and past developers. The
+latter will have an attribute on the "person" tag named "status" whose value
+equals "emeritus".
</Log>
</Commit>
-<Commit category="xsltc">
+<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/27</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
ErrorMsg.java</Modified>
+<DateCommitted>2003/01/30</DateCommitted>
+<Modified> xml-xalan/java xsltc_todo.xml</Modified>
<Log>
-Removed a duplicate error message number I inadvertently entered.
+Changed two developers to have 'emeritus' status.
</Log>
</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/27</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime
BasisLibrary.java</Modified>
+<Commit category="core">
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/30</DateCommitted>
+<Modified> xml-xalan/java/samples/ApplyXPath ApplyXPath.java
xml-xalan/java/samples/DOM2DOM DOM2DOM.java xml-xalan/java/samples/Pipe
Pipe.java xml-xalan/java/samples/SAX2SAX SAX2SAX.java
xml-xalan/java/samples/SimpleTransform SimpleTransform.java
xml-xalan/java/samples/Trace Trace.java
xml-xalan/java/samples/UseStylesheetParam UseStylesheetParam.java
xml-xalan/java/samples/UseStylesheetPI UseStylesheetPI.java
xml-xalan/java/samples/UseXMLFilters UseXMLFilters.java
xml-xalan/java/samples/Validate Validate.java ValidateXMLInput.java
xml-xalan/java/samples/extensions IntDate.java xml-xalan/java/samples/trax
ExampleContentHandler.java Examples.java</Modified>
<Log>
-bugzilla 12813 fixed
+Patch from Sarah Mcnamara ([EMAIL PROTECTED]) to remove
+unused imports in samples.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/30</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/res
XSLTErrorResources.properties</Modified>
+<DateCommitted>2003/01/30</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/client
XSLTProcessorApplet.java xml-xalan/java/src/org/apache/xalan/extensions
ExpressionContext.java ExpressionVisitor.java ExtensionHandler.java
ExtensionHandlerExsltFunction.java ExtensionHandlerGeneral.java
ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java
ExtensionNamespacesManager.java ExtensionNamespaceSupport.java
ExtensionsTable.java MethodResolver.java XSLProcessorContext.java
xml-xalan/java/src/org/apache/xalan/lib ExsltBase.java ExsltCommon.java
ExsltDatetime.java ExsltDynamic.java ExsltMath.java ExsltSets.java
ExsltStrings.java Extensions.java NodeInfo.java PipeDocument.java Redirect.java
xml-xalan/java/src/org/apache/xalan/lib/sql ConnectionPool.java
ConnectionPoolManager.java DTMDocument.java DefaultConnectionPool.java
PooledConnection.java SQLDocument.java SQLErrorDocument.java XConnection.java
xml-xalan/java/src/org/apache/xalan/processor ProcessorAttributeSet.java
ProcessorCharacters.java ProcessorDecimalFormat.java
ProcessorExsltFuncResult.java ProcessorExsltFunction.java
ProcessorGlobalParamDecl.java ProcessorGlobalVariableDecl.java
ProcessorImport.java ProcessorInclude.java ProcessorKey.java ProcessorLRE.java
ProcessorNamespaceAlias.java ProcessorOutputElem.java
ProcessorPreserveSpace.java ProcessorStripSpace.java
ProcessorStylesheetElement.java ProcessorTemplate.java
ProcessorTemplateElem.java ProcessorText.java ProcessorUnknown.java
StylesheetHandler.java StylesheetPIHandler.java TransformerFactoryImpl.java
WhitespaceInfoPaths.java XSLTAttributeDef.java XSLTElementDef.java
XSLTElementProcessor.java XSLTSchema.java
xml-xalan/java/src/org/apache/xalan/res XSLMessages.java
XSLTErrorResources.java XSLTErrorResources_de.java XSLTErrorResources_es.java
XSLTErrorResources_fr.java XSLTErrorResources_it.java
XSLTErrorResources_ja.java XSLTErrorResources_ko.java
XSLTErrorResources_sv.java XSLTErrorResources_zh_CN.java
XSLTErrorResources_zh_TW.java xml-xalan/java/src/org/apache/xalan/serialize
CharInfo.java Encodings.java Serializer.java SerializerFactory.java
SerializerToHTML.java SerializerToText.java SerializerToXML.java
WriterToASCI.java WriterToUTF8.java WriterToUTF8Buffered.java
xml-xalan/java/src/org/apache/xalan/templates AVT.java AVTPart.java
AVTPartSimple.java AVTPartXPath.java Constants.java
DecimalFormatProperties.java ElemApplyImport.java ElemApplyTemplates.java
ElemAttribute.java ElemAttributeSet.java ElemCallTemplate.java ElemChoose.java
ElemComment.java ElemCopy.java ElemCopyOf.java ElemElement.java ElemEmpty.java
ElemExsltFuncResult.java ElemExsltFunction.java ElemExtensionCall.java
ElemExtensionDecl.java ElemFallback.java ElemForEach.java ElemIf.java
ElemLiteralResult.java ElemMessage.java ElemNumber.java ElemOtherwise.java
ElemPI.java ElemParam.java ElemSort.java ElemTemplate.java
ElemTemplateElement.java ElemText.java ElemTextLiteral.java ElemUnknown.java
ElemUse.java ElemValueOf.java ElemVariable.java ElemVariablePsuedo.java
ElemWhen.java ElemWithParam.java FuncDocument.java FuncFormatNumb.java
FuncKey.java KeyDeclaration.java OutputProperties.java
RedundentExprEliminator.java Stylesheet.java StylesheetComposed.java
StylesheetRoot.java TemplateList.java TemplateSubPatternAssociation.java
XSLTVisitor.java XUnresolvedVariable.java XUnresolvedVariableSimple.java
xml-xalan/java/src/org/apache/xalan/trace EndSelectionEvent.java
GenerateEvent.java PrintTraceListener.java SelectionEvent.java
TraceListener.java TraceManager.java TracerEvent.java
xml-xalan/java/src/org/apache/xalan/transformer ClonerToResultTree.java
Counter.java CountersTable.java KeyIterator.java KeyManager.java
KeyRefIterator.java KeyTable.java MsgMgr.java NodeSorter.java NodeSortKey.java
NumeratorFormatter.java QueuedEvents.java ResultTreeHandler.java
SerializerSwitcher.java StackGuard.java TransformSnapshotImpl.java
TransformState.java TrAXFilter.java TransformerHandlerImpl.java
TransformerIdentityImpl.java TransformerImpl.java TreeWalker2Result.java
xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java Process.java
xml-xalan/java/src/org/apache/xalan/xsltc DOMCache.java StripFilter.java
TransletOutputHandler.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline
Compile.java Transform.java
xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/getopt GetOpt.java
IllegalArgumentException.java MissingOptArgException.java
xml-xalan/java/src/org/apache/xalan/xsltc/compiler AbsoluteLocationPath.java
AbsolutePathPattern.java AlternativePattern.java AncestorPattern.java
ApplyImports.java ApplyTemplates.java Attribute.java AttributeSet.java
AttributeValue.java AttributeValueTemplate.java BinOpExpr.java BooleanCall.java
BooleanExpr.java CallTemplate.java CastExpr.java CeilingCall.java Choose.java
Comment.java ConcatCall.java ContainsCall.java Copy.java CopyOf.java
CurrentCall.java DecimalFormatting.java DocumentCall.java
ElementAvailableCall.java EqualityExpr.java Expression.java Fallback.java
FilteredAbsoluteLocationPath.java FilterExpr.java FilterParentPath.java
FloorCall.java FlowList.java ForEach.java FormatNumberCall.java
ForwardPositionExpr.java FunctionAvailableCall.java FunctionCall.java
GenerateIdCall.java IdKeyPattern.java IdPattern.java If.java Import.java
Include.java Instruction.java IntExpr.java Key.java KeyCall.java LangCall.java
LastCall.java LiteralAttribute.java LiteralElement.java LiteralExpr.java
LocalNameCall.java LocationPathPattern.java LogicalExpr.java Message.java
Mode.java NameBase.java NameCall.java NamespaceAlias.java NamespaceUriCall.java
NotCall.java Number.java NumberCall.java Otherwise.java Output.java Param.java
ParameterRef.java ParentLocationPath.java ParentPattern.java Parser.java
Pattern.java PositionCall.java Predicate.java ProcessingInstruction.java
ProcessingInstructionPattern.java RealExpr.java RelationalExpr.java
RoundCall.java SimpleAttributeValue.java Sort.java StartsWithCall.java
Step.java StepPattern.java StringCall.java StringLengthCall.java
Stylesheet.java SymbolTable.java SyntaxTreeNode.java Template.java TestSeq.java
Text.java TopLevelElement.java TransletOutput.java UnaryOpExpr.java
UnionPathExpr.java UnparsedEntityUriCall.java UnresolvedRef.java
UnsupportedElement.java UseAttributeSets.java ValueOf.java Variable.java
VariableBase.java VariableRef.java VariableRefBase.java When.java
Whitespace.java WithParam.java XslAttribute.java XslElement.java XSLTC.java
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
AttributeSetMethodGenerator.java BooleanType.java ClassGenerator.java
CompareGenerator.java ErrorMessages_no.java ErrorMessages.java ErrorMsg.java
FilterGenerator.java IntType.java MatchGenerator.java MethodGenerator.java
MultiHashtable.java NamedMethodGenerator.java NodeCounterGenerator.java
NodeSetType.java NodeSortRecordFactGenerator.java NodeSortRecordGenerator.java
NodeType.java NumberType.java ObjectType.java RealType.java ReferenceType.java
ResultTreeType.java RtMethodGenerator.java SlotAllocator.java StringType.java
TestGenerator.java Type.java Util.java VoidType.java
xml-xalan/java/src/org/apache/xalan/xsltc/dom AnyNodeCounter.java BitArray.java
CurrentNodeListFilter.java CurrentNodeListIterator.java DocumentCache.java
DOMAdapter.java DOMBuilder.java DOMImpl.java DTDMonitor.java
DupFilterIterator.java FilteredStepIterator.java KeyIndex.java
LoadDocument.java MultiDOM.java MultipleNodeCounter.java NodeCounter.java
NodeSortRecord.java NthIterator.java SingleNodeCounter.java
SortingIterator.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java AttributeList.java Attributes.java BasisLibrary.java
DefaultSAXOutputHandler.java ErrorMessages_no.java ErrorMessages.java
Hashtable.java SAXAdapter.java StringValueHandler.java TextOutput.java
TransletLoader.java TransletOutputBase.java
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBase.java
SAXHTMLOutput.java SAXOutput.java SAXTextOutput.java SAXXMLOutput.java
StreamHTMLOutput.java StreamOutput.java StreamTextOutput.java
StreamUnknownOutput.java StreamXMLOutput.java StringOutputBuffer.java
TransletOutputHandlerFactory.java WriterOutputBuffer.java
xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2SAX.java DOM2TO.java
OutputSettings.java SAX2DOM.java SAX2TO.java SmartTransformerFactoryImpl.java
TemplatesHandlerImpl.java TemplatesImpl.java TransformerFactoryImpl.java
TransformerHandlerImpl.java TransformerImpl.java TrAXFilter.java Util.java
XSLTCSource.java xml-xalan/java/src/org/apache/xml/dtm DTM.java
DTMException.java DTMManager.java FactoryFinder.java SecuritySupport.java
SecuritySupport12.java xml-xalan/java/src/org/apache/xml/dtm/ref
ChunkedIntArray.java CoroutineManager.java CoroutineParser.java
CustomStringPool.java DTMAxisIteratorBase.java DTMDefaultBase.java
DTMDefaultBaseIterators.java DTMDefaultBaseTraversers.java DTMDocumentImpl.java
DTMManagerDefault.java DTMNamedNodeMap.java DTMNodeIterator.java
DTMNodeList.java DTMNodeProxy.java DTMSafeStringPool.java DTMStringPool.java
DTMTreeWalker.java ExpandedNameTable.java IncrementalSAXSource_Filter.java
IncrementalSAXSource_Xerces.java IncrementalSAXSource.java
xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
DOM2DTMdefaultNamespaceDeclarationNode.java
xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2RTFDTM.java
xml-xalan/java/src/org/apache/xml/res XMLErrorResources.java XMLMessages.java
xml-xalan/java/src/org/apache/xml/utils AttList.java BoolStack.java
DefaultErrorHandler.java DOM2Helper.java DOMBuilder.java DOMHelper.java
Hashtree2Node.java ListingErrorHandler.java MutableAttrListImpl.java
ObjectPool.java PrefixResolverDefault.java QName.java SAXSourceLocator.java
SystemIDResolver.java TreeWalker.java UnImplNode.java
xml-xalan/java/src/org/apache/xml/utils/res XResourceBundle.java
XResources_cy.java XResources_de.java XResources_el.java XResources_en.java
XResources_es.java XResources_fr.java XResources_he.java XResources_hy.java
XResources_it.java XResources_ja_JP_A.java XResources_ja_JP_HA.java
XResources_ja_JP_HI.java XResources_ja_JP_I.java XResources_ka.java
XResources_ko.java XResources_sv.java XResources_zh_CN.java
XResources_zh_TW.java xml-xalan/java/src/org/apache/xml/utils/synthetic
Class.java TestDriver.java
xml-xalan/java/src/org/apache/xml/utils/synthetic/reflection Constructor.java
EntryPoint.java Method.java xml-xalan/java/src/org/apache/xpath
CachedXPathAPI.java Expression.java ExtensionsProvider.java NodeSet.java
NodeSetDTM.java SourceTree.java SourceTreeManager.java VariableStack.java
WhitespaceStrippingElementMatcher.java XPath.java XPathAPI.java
XPathContext.java XPathException.java XPathFactory.java XPathVisitor.java
xml-xalan/java/src/org/apache/xpath/axes AttributeIterator.java AxesWalker.java
BasicTestIterator.java ChildIterator.java ChildTestIterator.java
DescendantIterator.java FilterExprIterator.java FilterExprIteratorSimple.java
FilterExprWalker.java IteratorPool.java LocPathIterator.java
MatchPatternIterator.java NodeSequence.java OneStepIterator.java
OneStepIteratorForward.java PredicatedNodeTest.java ReverseAxesWalker.java
RTFIterator.java SelfIteratorNoPredicate.java SubContextList.java
UnionPathIterator.java WalkerFactory.java WalkingIterator.java
WalkingIteratorSorted.java xml-xalan/java/src/org/apache/xpath/compiler
Compiler.java FuncLoader.java XPathDumper.java XPathParser.java
xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java
XPathExpressionImpl.java XPathNamespaceImpl.java XPathResultImpl.java
xml-xalan/java/src/org/apache/xpath/functions FuncBoolean.java FuncCeiling.java
FuncConcat.java FuncContains.java FuncCount.java FuncCurrent.java
FuncDoclocation.java FuncExtElementAvailable.java FuncExtFunction.java
FuncExtFunctionAvailable.java FuncFalse.java FuncFloor.java FuncGenerateId.java
FuncId.java FuncLang.java FuncLast.java FuncLocalPart.java FuncNamespace.java
FuncNormalizeSpace.java FuncNot.java FuncNumber.java FuncPosition.java
FuncQname.java FuncRound.java FuncStartsWith.java FuncString.java
FuncStringLength.java FuncSubstring.java FuncSubstringAfter.java
FuncSubstringBefore.java FuncSum.java FuncSystemProperty.java Function.java
Function2Args.java Function3Args.java FunctionDef1Arg.java
FunctionMultiArgs.java FunctionOneArg.java FuncTranslate.java FuncTrue.java
FuncUnparsedEntityURI.java xml-xalan/java/src/org/apache/xpath/objects
XBoolean.java XBooleanStatic.java XMLStringFactoryImpl.java XNodeSet.java
XNodeSetForDOM.java XNull.java XNumber.java XObject.java XObjectFactory.java
XRTreeFrag.java XRTreeFragSelectWrapper.java XString.java XStringForChars.java
XStringForFSB.java xml-xalan/java/src/org/apache/xpath/operations And.java
Bool.java Div.java Equals.java Gt.java Gte.java Lt.java Lte.java Minus.java
Mod.java Mult.java Neg.java NotEquals.java Number.java Operation.java Or.java
Plus.java Quo.java UnaryOperation.java Variable.java VariableSafeAbsRef.java
xml-xalan/java/src/org/apache/xpath/patterns ContextMatchStepPattern.java
FunctionPattern.java NodeTest.java StepPattern.java UnionPattern.java
xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources_de.java
XPATHErrorResources_es.java XPATHErrorResources_fr.java
XPATHErrorResources_it.java XPATHErrorResources_ja.java
XPATHErrorResources_ko.java XPATHErrorResources_sv.java
XPATHErrorResources_zh_CN.java XPATHErrorResources_zh_TW.java
XPATHErrorResources.java XPATHMessages.java</Modified>
<Log>
-Messages for new options in the Process command line.
+Patch from Sarah Mcnamara ([EMAIL PROTECTED]) to remove
+unused imports in java source.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/30</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xslt Process.java</Modified>
-<Log>
-XSLTC support in the Process command line - phase 2
-Migrate the options from the XSLTC command line (Compile and Transform)
-to the Process command line. The following new options are added:
-
--XO [translet_name] (specify translate class name)
--XD destination_directory (specify destination directory)
--XJ jar_name (put translet into jar file)
--XP package_prefix (specify package name prefix)
--XN (enable template inlining)
--XX (additional debug messages)
--XT (use translet to transform if possible)
-
-The new options can only be used with the -XSLTC option. The options are
-passed to XSLTC via the standard TRAX API -
TransformerFactory.setAttribute().
-Process does not directly communicate with XSLTC.
-
-The usage instructions are also re-organized. The options are divided into
-three categories (command options, Options for Xalan and Options for XSLTC).
A
-pager is used when displaying the usage instructions so that you can see them
-page by page.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/30</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
ErrorMessages.java ErrorMsg.java</Modified>
-<Log>
-Add debug messages for -XX option in the Process command line. These messages
-tell the user whether they are transforming using XSLTC.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/30</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
Util.java</Modified>
-<Log>
-Fix problems in the baseName() interface so that it can handle system ids
like
-file:abc.xsl and file:///c:\test\abc.xsl.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/30</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
XSLTC.java</Modified>
-<Log>
-XSLTC support in the Process command line - phase 2
-Add two new output types:
-- BYTEARRAY_AND_FILE_OUTPUT: return a byte array and generate the translet
class
-- BYTEARRAY_AND_JAR_OUTPUT: return a byte array and generate the jar file
-
-Add a new compile() interface which accepts the output type as the third
-parameter. Use different Vectors to store bytecodes and JavaClass objects.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/30</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
Util.java</Modified>
-<Log>
-Add a wrapper for the noExtName() method in compiler.util.Util.
-The transformerFactoryImpl class makes use of it.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/30</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TemplatesHandlerImpl.java</Modified>
-<Log>
-The member name _defaultTransletName in TransformerFactoryImpl
-has been changed to _transletName.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/09/30</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java</Modified>
-<Log>
-XSLTC support in the Process command line - phase 2
-Most of the changes appear in this class. The changes not only allow you
-to use the new XSLTC options in the Process command line. It also give
-you the ability to customize the XSLTC behavior using the standard TRAX API.
-Previously, the XSLTC TRAX API is not aware of translets. You cannot tell it
-to use translets for do transformations. Now you can customize the XSLTC
bevaior
-using the new attributes. For example, the following code will allow you
-to use translets for transformations when the translet is newer than the xsl.
-
-TransformerFactory tf;
-tf.setAttribute("auto-translet", "true");
-Templates templates = tf.newTemplates(xslSource);
-
-The following attributes are added:
-Attributes Corresponding Process command line options
-use-translet
-translet-name -XO
-destination-directory -XD
-package-name -XP
-jar-name -XJ
-auto-translet -XT
-
-Four of the new attributes (translet-name, destination-directory,
package-name and
-jar-name) are transient. They only apply to the next newTemplates() or
newTransformer()
-call. Their values are reset to the default after the call.
-
-There is also a makefile like feature when you set the "auto-translet"
attribute. It will
-use the translet to do transformation when the translet is newer than the
xsl. If the xsl
-is modified, it will use the xsl to transform and regenerate the translet.
-
-Unlike the XSLTC Transform command line, the new code will NOT use the
existing
-ClassLoader to load the translet or jar file. It directly reads the file
content into a
-byte array. This makes the Process command line capable of loading the
translet from
-any directory the xsl file might be in or any user specified destination
directory, without
-the need on the user to add that directory to the CLASSPATH first.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/01</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/res
XSLTErrorResources.properties
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java
xml-xalan/java/src/org/apache/xalan/xsltc/runtime ErrorMessages.java
xml-xalan/java/src/org/apache/xpath/res
XPATHErrorResources.properties</Modified>
-<Log>
-Added and fixed up some additional translation guidelines.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/01</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TemplatesHandlerImpl.java TransformerFactoryImpl.java</Modified>
-<Log>
-Multi-thread protection for the new attributes.
-The four transient attributes are now stored in ThreadLocal objects to
prevent
-multi-thread contention problems. This ensures that each thread will have a
-different copy of the attributes and no collision issue will occur.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/01</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java</Modified>
-<Log>
-Change the four attributes to be instance variables and remove
-the ThreadLocal protection. TransformerFactory is not guaranteed
-to be thread-safe. We will leave the synchronization issues up
-to the user if they want to use one TransformerFactory in multiple
-threads.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/03</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath/functions
FuncExtFunction.java</Modified>
-<Log>
-Use Vector.elementAt() instead of Vector.get(). The latter is not available
-in JDK 1.1.8. Add two argument accessor methods for Bugzilla 8939.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/03</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/templates Constants.java
ElemTemplateElement.java output_html.properties output_text.properties
output_xml.properties OutputProperties.java</Modified>
-<Log>
-Use one namespace for all extensions (Bugzilla 9959)
-Use the new namespace uri "http://xml.apache.org/xalan" instead of
-"http://xml.apache.org/xslt" for xsl:output extension attributes.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/03</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/processor ProcessorLRE.java
XSLTElementDef.java XSLTSchema.java</Modified>
-<Log>
-Use one namespace for all extensions (Bugzilla 9959)
-Use the new namespace uri "http://xml.apache.org/xalan" for
-the component and script extension elements. We maintain
-backward compatibility so that using the old uri
-"http://xml.apache.org/xslt" still works.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/03</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/extensions
ExtensionHandlerJavaPackage.java</Modified>
-<Log>
-Minor Javadoc update to use the new namespace uri.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/03</DateCommitted>
-<Modified> xml-xalan/java/samples/extensions 1-redir.xsl 2-basicJscript.xsl
3-java-namespace.xsl 4-numlistJava.xsl 5-numlistJscript.xsl
6-sqllib-instantdb.xsl</Modified>
+<DateCommitted>2003/01/31</DateCommitted>
+<Modified> xml-xalan/java/bin xercesImpl.jar</Modified>
<Log>
-Update the extension samples to use the new namespace.
+Check in new XercesImpl (2.3.0 + patch).
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/04</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib ExsltMath.java</Modified>
+<DateCommitted>2003/01/31</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xml/dtm/ref
ExtendedType.java</Modified>
<Log>
-Minor fix for math:max().
+file ExtendedType.java was initially added on branch XSLTC_DTM.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/04</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/processor
StylesheetHandler.java</Modified>
-<Log>
-For Bugzilla 13106. Visit the XPath expressions created for match patterns.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/04</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
Param.java</Modified>
-<Log>
-The default type of a <xsl:param> should be result tree.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/04</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
FunctionCall.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/01/31</DateCommitted>
+<Modified> xml-xalan/java todo.xsl</Modified>
<Log>
-Fix a problem in class namespace format and also cleanup the indentation.
+Removed current project name from list of past developers, as it might not be
+pertinent.
</Log>
</Commit>
<Commit category="xsltc">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/06</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
Param.java</Modified>
-<Log>
-Set default type of parameters to be reference. The type of a parameter
-cannot be determined statically in XSLT 1.0.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/07</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath/axes DescendantIterator.java
UnionPathIterator.java WalkerFactory.java
xml-xalan/java/src/org/apache/xpath/compiler Compiler.java Lexer.java
OpMap.java XPathParser.java</Modified>
-<Log>
-Patch for bugzilla #5046.
-
-The token queue and operations map can now grow to accomodate really
-large XPath expressions. Starting sizes of the data structures remain set
-at the size in the current code.
-
-I created new classes org.apache.xml.utils.ObjectVector (based on
org.apache.xml.utils.IntVector)
-and org.apache.xpath.compiler.OpMapVector to store the token queue
-and operations map.
-
-This patch is essentially a stop gap until the new parser (xslt20 branch) is
integrated.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/07</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xml/utils ObjectVector.java
xml-xalan/java/src/org/apache/xpath/compiler OpMapVector.java</Modified>
-<Log>
-Patch for bugzilla #5046.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/07</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath/compiler OpMap.java</Modified>
-<Log>
-Cleaning up import statements.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/07</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xml/utils IntStack.java
IntVector.java ObjectStack.java ObjectVector.java
xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java
ElemForEach.java xml-xalan/java/src/org/apache/xalan/transformer
StackGuard.java TransformerImpl.java TransformSnapshotImpl.java
xml-xalan/java/src/org/apache/xpath XPathContext.java</Modified>
+<DateCommitted>2003/02/03</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerImpl.java</Modified>
<Log>
-Commiting Gordon Chiu's ([EMAIL PROTECTED]) patch for bugzilla#8175.
-
-IntStack's and ObjectStack's are now used in place of fixed length arrays,
so that users
-should not run into limitations based on array sizes. The initial size of
the arrays has
-been set to current array sizes, so the user's experience should not change
much, except
-in the cases where they were running into the size limitation.
-
-No performance analysis has been done to determine an optimal initial
-size for the stacks.
+Committing a patch contributed by Prakash Sridharan ([EMAIL PROTECTED]).
+Messages displayed using xsl:message are now reported to an ErrorListener
+registered in a Transformer instance. The warning() callback is used for
+this purpose.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/07</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/transformer
TransformerImpl.java</Modified>
-<Log>
-Committing Igor Hersht's ([EMAIL PROTECTED]) patch for bugzilla #10176.
-
-Also, removing testcase position102 from the excludes list for the smoketest
-since it now runs.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/08</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc DOM.java
xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java
Constants.java ForEach.java LastCall.java Parser.java PositionCall.java
Step.java xml-xalan/java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java
CurrentNodeListIterator.java DOMAdapter.java DOMImpl.java
DupFilterIterator.java FilteredStepIterator.java FilterIterator.java
ForwardPositionIterator.java KeyIndex.java MatchingIterator.java MultiDOM.java
NodeIteratorBase.java NthIterator.java ReverseIterator.java StepIterator.java
xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java</Modified>
+<DateCommitted>2003/02/03</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/trace
PrintTraceListener.java</Modified>
<Log>
-(1) Eliminated the need for a ReverseIterator.
-(2) Added a ForwardPositionIterator as a temporary solution for some
-cases.
-(3) Added several javadoc-type comments.
-(4) Fixed a number of cloneIterator() implementations that were broken.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/08</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
ForwardPositionExpr.java</Modified>
-<Log>
-Expression wrapper to compute positions properly.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/09</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output
OutputBase.java StreamXMLOutput.java</Modified>
-<Log>
-Fix for Bugzilla 13304.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/09</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
UnionIterator.java</Modified>
-<Log>
-bug fix 12644, Santiago found that the clone iterator was doing a shallow
copy
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/14</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Key.java
KeyCall.java xml-xalan/java/src/org/apache/xalan/xsltc/dom KeyIndex.java
xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java</Modified>
-<Log>
-(1) Fixed some dynamic typing problems with idkeys. Values are now properly
-converted to strings before they are compared.
-(2) Eliminated the use of BitArrays in KeyIndex (better space efficiency).
-(3) All idkey tests now pass with flavor=stream (the 6 failures that are
-reported are due to the use of a different algorithm to generate ids).
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/15</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java
Parser.java</Modified>
-<Log>
-bug fix 13550, for multiple <xsl:output> elements,
cdata-section-elements attrs are now merged
+Committing patch for bugzilla #16222. Thanks to Elson Jiang ([EMAIL
PROTECTED])
+for identifying the problem and isolating the cause.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/15</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/processor
TransformerFactoryImpl.java</Modified>
-<Log>
-Patch for bugzilla #13305. Moved initalization code into a static
initializer.
-
-TransformerFactory.newInstance() can now be called safely from multiple
-threads.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/15</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
XslElement.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime
BasisLibrary.java</Modified>
-<Log>
-New implementation of xsl:element that properly handles the case where
-the namespace URI computed at runtime is "". Some of the code implementing
-the xsl:element instruction has been factored out from the translet into
-the basis library.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/15</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
TransformerFactoryImpl.java</Modified>
-<Log>
-bug fix 12317, serialization of Templates is fixed
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/15</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime
BasisLibrary.java</Modified>
-<Log>
-A RuntimeException cannot be constructed from a Throwable with JDKs
-prior to 1.4.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/17</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
MultiDOM.java</Modified>
-<Log>
-Clear dom index flag before passing node to DOMAdapter. Bug reported by
-Prakash Sridharan.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/17</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime
BasisLibrary.java</Modified>
+<DateCommitted>2003/02/03</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/trace
TraceManager.java</Modified>
<Log>
-Switch order of calls to startElement() and namespace() in startXslElement().
+Committing Elson Jiang's ([EMAIL PROTECTED]) patch for bugzilla #5140.
</Log>
</Commit>
<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/18</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
Step.java</Modified>
-<Log>
-bug fix 12308, typeCheck, nodeset to node optimization is turned off if node
has context
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/18</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
Output.java</Modified>
-<Log>
-Added support for all EBCDIC flavors in xsl:output.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/19</DateCommitted>
-<Modified> xml-xalan/java/bin xercesImpl.jar</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/02/03</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
TransformerFactoryImpl.java TransformerImpl.java</Modified>
<Log>
-Updating to XercesJ 2.2.0.
+Add a new attribute "use-classpath" to the XSLTC Trax API.
+If this attribute is set, the Templates object is created from a translet
+which is loaded from the CLASSPATH. The translet name is either set by
+the "translet_name" attribute, or derived from the system ID, or the
+default name. In TemplatesImpl, we add a new constructor to support
+creating a TemplatesImpl from a Translet instance.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/20</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xml/dtm/ref
ExpandedNameTable.java</Modified>
+<DateCommitted>2003/02/03</DateCommitted>
+<Modified> xml-xalan/java/xdocs/sources/xalan faq.xml
resources.xml</Modified>
<Log>
-Committing Pavel Ausianik's ([EMAIL PROTECTED]) patch for bugzilla #12687.
-
-Reduce memory allocation on initialization of ExpandedNameTable.
-
-m_locNamesPool and m_namespaceNames and code that uses them has
-been commented out. Some initialization now done in static initializer.
+Updates to the FAQ for bugzilla#15586 and #14856
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/20</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath XPathContext.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/02/03</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xslt Process.java
xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
xml-xalan/java/src/org/apache/xpath SourceTreeManager.java
xml-xalan/java/src/org/apache/xalan/processor ProcessorInclude.java
TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/transformer
TransformerIdentityImpl.java TrAXFilter.java
xml-xalan/java/src/org/apache/xalan/processor ProcessorInclude.java
TransformerFactoryImpl.java</Modified>
<Log>
-Committing Gordon Chiu's ([EMAIL PROTECTED]) modified patch of Pavel
Ausianik's ([EMAIL PROTECTED])
-patch for bugzilla #12486.
+The behaviour of the Xerces-J parser recently changed to agree with its
+documented behaviour with respect to the dynamic validation feature. This
+causes problems for stylesheets that contain a DTD, but are not otherwise
+"valid" - for instance, because the DTD contains ENTITY declarations, but no
+ELEMENT declarations - because error reporting is performed for documents if
+the dynamic validation feature is enabled and the document contains a DOCTYPE
+declaration.
-Method XPathContext.reset() was creating many new instances of java
objects,
-causing unnecessary memory allocations, instead of reusing previously
created
-objects.
-
-
-m_locNamesPool and m_namespaceNames and code that uses them has
-been commented out. Some initialization now done in static initializer.
+The solution is to remove code (including code that was commented out) that
+enabled the Xerces dynamic validation feature.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/20</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java
Encodings.properties</Modified>
-<Log>
-Committing Gordon Chiu's ([EMAIL PROTECTED]) patch for bugzilla #13754.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/21</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output
StreamOutput.java</Modified>
-<Log>
-Moved EBCDIC support from Output to StreamOutput to ensure correct
-serialization of XML header.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/21</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/dom3/xpath
COPYRIGHT.html</Modified>
-<Log>
-Copying the copyright statement for the DOM L3 XPath API interfaces into
-the temporary package (org.apache.xalan.dom3.xpath) which contains
-the interfaces until they become a recommendation.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/21</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
PositionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/dom
CurrentNodeListIterator.java DOMImpl.java FilterIterator.java NthIterator.java
xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java</Modified>
+<DateCommitted>2003/02/03</DateCommitted>
+<Modified> xml-xalan/java/src xml-commons-src.tar.gz xml-xalan/java/bin
xml-apis.jar</Modified>
<Log>
-Committing patch from Henry Zongaro. This patch moves the logic from
-XPath's position() function from NodeIterator.getPosition() to
-BasisLibrary.positionF(). This change simplifies the integration
-between XSLTC and DTM.
+Updating xml-apis.jar and source. A security exception wasn't being
+handled when reading java.home from system properties.
</Log>
</Commit>
<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/22</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/processor
ProcessorExsltFunction.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/02/04</DateCommitted>
+<Modified> xml-xalan/java/samples/CompiledApplet
singleTransform.html</Modified>
<Log>
-For bugzilla 13711
-Fix the conditions for validating the child elements of func:function.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/22</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/transformer KeyTable.java
xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java</Modified>
-<Log>
-Committing [EMAIL PROTECTED] (Urban Spielmann)'s patch for bugzilla #11661.
-
-After the Redundant Expression Elimination merge, the key cache had
-not yet been replaced. This patch puts back the key cache, which
-gives xsl:key much better performance.
+file singleTransform.html was initially added on branch XSLTC_DTM.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/22</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/templates
ElemExtensionCall.java</Modified>
+<DateCommitted>2003/02/04</DateCommitted>
+<Modified> xml-xalan/java/xdocs/sources/xalan extensions.xml
samples.xml</Modified>
<Log>
-For bugzilla 7357
-Fix problems in exception handling for extension elements.
+xdocs update
+In samples.xml, update the documentation for the ApplyXSLT sample to provide
+more information about the input xml and stylesheet.
+In extensions.xml, add documentation for the src attribute in xalan:script.
</Log>
</Commit>
<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/22</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
ForwardPositionIterator.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/02/05</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java
Include.java XSLTC.java</Modified>
<Log>
-Adding XSLTC_DTM version of file to branch.
+Committing patch for Bugzilla 10626 contributed by Arun Yadav
+([EMAIL PROTECTED]).
</Log>
</Commit>
<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/22</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
ForwardPositionIterator.java</Modified>
+<Who>[EMAIL PROTECTED]</Who>
+<DateCommitted>2003/02/10</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TemplatesHandlerImpl.java</Modified>
<Log>
-Whoops! Checked in file on MAIN branch that was meant for XSLTC_DTM branch.
+ Wrapped called to Stylesheet.translate() with class-level synchronization
+ block. This is needed since BCEL is not thread-safe. The bug was reported
+ by Michael Melhem (Cocoon).
</Log>
</Commit>
<Commit category="xsltc">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/22</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
ForwardPositionIterator.java</Modified>
+<DateCommitted>2003/02/11</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
GenerateIdCall.java</Modified>
<Log>
-Adding DTM version of ForwardPositionIterator to XSLTC_DTM branch.
+Applying patch for Bugzilla bug 16745 from Igor Hersht ([EMAIL PROTECTED]).
+The code generated for a reference to generate-id with no arguments used to
+default to the current node. XSLT requires it to default to the context
node.
</Log>
</Commit>
<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/22</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
ForwardPositionIterator.java</Modified>
-<Log>
-Aarrrgggghhhhh\!\! Checked in file on MAIN branch that was meant for
XSLTC_DTM branch, again\!
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/23</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/transformer
TransformerImpl.java</Modified>
-<Log>
-Patch for bugzilla #13863.
-
-Moved setting the namespaceContext from the TransformerImpl constructor to
-the transform method.
-</Log>
-</Commit>
-<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/25</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath XPath.java
xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java
XPATHErrorResources.properties</Modified>
-<Log>
-Move a hardcoded string into the properties file.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/25</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
UnionIterator.java</Modified>
-<Log>
-Fix for Bugzilla 13826. A problem in reset() was the cause of duplicate
-nodes in the resulting nodeset.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/25</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/extensions
ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java</Modified>
-<Log>
-For bugzilla 13944. Check for InvocationTargetException in Method.invoke().
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/25</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
FunctionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util
NodeSetType.java ReferenceType.java ResultTreeType.java</Modified>
-<Log>
-Fix for Bugzilla 13850 provided by Morris Kwan.
-
-Morris Kwan wrote:
-
-Changes in NodeSetType.java:
-Allow a org.w3c.dom.Node to be converted to a XSLTC internal nodeset
-
-Changes in ReferenceType.java:
-Allow conversions from Reference to Java String, double, w3c Node/NodeList
-
-Changes in ResultTreeType.java:
-The result tree when converted to a nodeset, should contain only one node
-starting from the root. If you replace <xsl:param> with
<xsl:variable> in
-the attached testcase, you will see a problem in "ext:nodelistTest
-($a)/h1/h2" because of this problem.
-
-Changes in BasisLibrary.java:
-Added interfaces referenceToNodeList, referenceToNode and node2Iterator.
-The changes in copyNodes() fix a problem with the document node. In the
-case of an RTF, the NodeList passed to nodeList2Iterator() contains only
-one Node, which is a Document Node. The changes try to create a dummy
-element for the Document and copy all Nodes under it.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/28</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/runtime
BasisLibrary.java</Modified>
+<DateCommitted>2003/02/18</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/trax
TransformerImpl.java</Modified>
<Log>
+Patching Prakash's patch (of Feb.3, 2003). We can't assume that _translet
+is non-null when the call to setErrorListener is made. For example, we could
+have the lines of code:
- Fix for Bugzilla 13850 provided by Morris Kwan.
+Transformer transformer = new Transformer();
+transformer.setErrorListener(myErrorListener);
- Changes in BasisLibrary.java:
- Added interfaces referenceToNodeList, referenceToNode and node2Iterator.
- The changes in copyNodes() fix a problem with the document node. In the
- case of an RTF, the NodeList passed to nodeList2Iterator() contains only
- one Node, which is a Document Node. The changes try to create a dummy
- element for the Document and copy all Nodes under it.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/28</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath XPathContext.java</Modified>
-<Log>
-For Bugzilla 13303.
-Fix Memory leak in XPathContext.popRTFContext().
+The original patch caused TCK failures.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/28</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/transformer
TransformerImpl.java</Modified>
-<Log>
-Backing out patch for bugzilla #13863. It causes a bunch of failures in
-the trax.sax flavour.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/28</DateCommitted>
-<Modified> xml-xalan/java/xdocs/sources/xalan extensions.xml
extensionslib.xml samples.xml</Modified>
-<Log>
-Update the extensions documentation.
-Use the new namespaces in documents and examples. Update EXSLT development
-status. Modify setup instructions for SQL samples.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/28</DateCommitted>
-<Modified> xml-xalan/java/xdocs xml-site-style.tar.gz
xml-xalan/java/xdocs/sources/xalan faq.xml resources.xml</Modified>
+<DateCommitted>2003/02/19</DateCommitted>
+<Modified> xml-xalan/java/src/org/apache/xalan/xslt Process.java</Modified>
<Log>
-For Bugzilla 14022
-Commit Gordon Chiu's update to the FAQ.
+Patch for bugzilla #17030. The command line (Process) uses the
+bootstrap classloader (in JDK1.4) instead of the system class loader to
+load classes specified by the URIResolver, EntityResolver and
+ContentHandler options.
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/28</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/dom3/xpath COPYRIGHT.html
XPathEvaluator.java XPathException.java XPathExpression.java
XPathNamespace.java XPathNSResolver.java XPathResult.java
xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java
XPathExpressionImpl.java XPathNSResolverImpl.java
XPathResultImpl.java</Modified>
+<DateCommitted>2003/02/20</DateCommitted>
+<Modified> xml-xalan/java/samples/servlet ApplyXSLT.java
DefaultApplyXSLTProperties.java jspSample.jsp SimpleXSLTServlet.java
UseStylesheetParamServlet.java XSLTServletWithParams.java birds.xml birds.xsl
booklist1.xsl booklist2.xsl catalog.xml web.xml</Modified>
<Log>
-Removed the temporary org.apache.xalan.dom3.xpath package.
-
-Updated the org.w3c.dom.xpath interfaces.
-
-Changed dependencies to org.w3c.dom.xpath interfaces in the implementation
-classes in org.apache.xalan.xpath.domapi.
+Committing Christine Li's ([EMAIL PROTECTED]) patch to the servlet sample.
+Bugzilla #17136
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/28</DateCommitted>
-<Modified> xml-xalan/java build.xml</Modified>
+<DateCommitted>2003/02/20</DateCommitted>
+<Modified> xml-xalan/java/xdocs/sources/xalan readme.xml samples.xml
usagepatterns.xml</Modified>
<Log>
-Build org.w3c.xpath.dom interfaces into xalan.jar.
+Committing Christine Li's ([EMAIL PROTECTED]) patch to the servlet sample
documentation.
+Bugzilla #17136
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/28</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath XPathContext.java</Modified>
-<Log>
-Patch from Gordon Chiu. Replace stack.clear() calls with
stack.removeAllElements()
-to be compatible with JDK1.1.8.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/28</DateCommitted>
+<DateCommitted>2003/02/20</DateCommitted>
<Modified> xml-xalan/java build.xml</Modified>
<Log>
-Support compiling under JDK 1.2 - 1.4. Also check for compatability with
target JDK 1.1.x.
+Committing Christine Li's ([EMAIL PROTECTED]) patch to the build script for
the servlet sample.
+Bugzilla #17136
</Log>
</Commit>
<Commit category="core">
<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/29</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xpath/domapi
XPathNamespaceImpl.java XPathResultImpl.java</Modified>
-<Log>
-Somewhat rough implementation of XPathNamespace.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/29</DateCommitted>
-<Modified> xml-xalan/java/bin ant.jar</Modified>
-<Log>
-Upgrade to Ant 1.5.1.
-</Log>
-</Commit>
-<Commit category="core">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/29</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/lib ExsltBase.java
ExsltStrings.java xml-xalan/java/src/org/apache/xalan/lib/sql
DefaultConnectionPool.java</Modified>
-<Log>
-Fix JDK 1.1.8 compatibility problems.
-Replace methods calls that are only in Java2 by JDK 1.1 equivalents.
-For DefaultConnectionPool.java, use reflection mechanism to invoke
-Thread.getContextClassLoader() instead of hard-coded invocation.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/29</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/compiler
LocationPathPattern.java Mode.java Step.java StepPattern.java
xpath.cup</Modified>
-<Log>
-Distinguish between child::node() and attribute::node() both in patterns
-and expressions. This patch also fixes Bugzilla 11433.
-</Log>
-</Commit>
-<Commit category="xsltc">
-<Who>[EMAIL PROTECTED]</Who>
-<DateCommitted>2002/10/29</DateCommitted>
-<Modified> xml-xalan/java/src/org/apache/xalan/xsltc/dom
DOMImpl.java</Modified>
+<DateCommitted>2003/02/20</DateCommitted>
+<Modified> xml-xalan/java build.xml</Modified>
<Log>
-Fixed problem in DOMImpl$ChildrenIterator.getLast(). It now returns 0
-when the nodeset is empty.
+Minor change to build script for updated servlet sample.
</Log>
</Commit>
</Commits>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]