blob: 1d06d9abc67f5cdd17b9c52f17ac1db9f8475256 [file] [log] [blame]
<anchor name="xsltcreleasenotes"/>
<s2 title="XSLTC Release Notes">
<p>For this release, please note the following changes, additions, omissions, problems, procedures for running demos, and new support for the TrAX API.</p>
<ul>
<li><link anchor="xsltcnew">Changes and New Features</link></li>
<li><link anchor="xsltcconf">Conformance</link></li>
<li><link anchor="xsltcknownproblems">Known Problems</link></li>
<li><link anchor="xsltcdemos">Running Demos</link></li>
<li><link anchor="xsltctrax">Translets and TrAX</link></li>
<li><link anchor="xsltchistory">History of XSLTC software changes</link></li>
</ul>
<anchor name="xsltcnew"/>
<s3 title="Changes since &xslt4j; 2.2.D9">
<p>XSLTC source code updates:</p>
<ul><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Parser.java<br/><ref>Committer's log entry: </ref>I added a flag to the compiler/Parser class that is set if the outermost
element
in the stylesheet contains a definition of the XSL namespace. The parser
already
has a global variable '_target' that is set if the stylesheet contains a
&lt;?xml-stylesheet?&gt; PI or not. The compiler will now flag an error if neither
flags are set after the whole XSL/XML input document has been parsed.
PR: bugzilla 1780
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler UnionPathExpr.java<br/><ref>Committer's log entry: </ref>Added a small fix that orders the expressions inside a union in such a way
that
expressions with an attribute axis or attribute node type will be put first.
PR: bugzilla 2921
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Parser.java<br/><ref>Committer's log entry: </ref>A small fix that will allow top-level elements of an unknown URI.
XSLTC now ignored the element(s), while it previously reported an error
of an unsupported XSLT extension.
PR: bugzilla 2840
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java DefaultSAXOutputHandler.java
TextOutput.java<br/><ref>Committer's log entry: </ref>A start on a fix for output DOCTYPE declarations based on the attributes
of the &lt;xsl:output&gt; element. I also added a fix for bug 2863, to prevent
us from outputting namespace delcaration that point a prefix to the null
URI (such as 'xmlns:blob=""').
PR: bugzilla 2863
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br/><ref>Committer's log entry: </ref>bug 2553, fixes AbbreviatedAbsoluteLocationPath,
some relative location paths still give duplicates, will need to filter.<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/cmdline Transform.java
java/src/org/apache/xalan/xsltc/compiler Output.java
java/src/org/apache/xalan/xsltc/runtime DefaultRun.java
DefaultSAXOutputHandler.java TextOutput.java
java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br/><ref>Committer's log entry: </ref>Implemented support for the doctype-system and doctype-public attributes
of the &lt;xsl:output/&gt; element. The translet post-processor (TextOutput) can
now be instanciated with a ContentHandler and an optional LexicalHandler.
The LexicalHandler will receive notofications of the DOCTYPE declaration.
The default SAX output handler now implements both ContentHandler and
LexicalHandler. The LexicalHandler only handles the startDTD() method,
by outputting the DOCTYPE declaration, and all other methods are empty.
The trax.Transformer implementation has also been updated to use the
LexicalHandler, but I still have not found any way in which a SAX client
can set the LexicalHandler.
PR: bugzilla 1504
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XslElement.java<br/><ref>Committer's log entry: </ref>A minor change to the class handling the &lt;xsl:element&gt; element to be more
in-sync with the XSLT 1.0 spec (and M.Kay's book). This in order to make
it more readable and maintainable. I was trying to debug the code for
something I thought was a bug, and it was just impossible to navigate.
This change was necessary, even though the code functioned as it should.
PR: n/a
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler LiteralElement.java
Parser.java<br/><ref>Committer's log entry: </ref>Fix for outputting all necessary namespace declarations with LREs.
PR: bugzilla 2863
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom ReverseIterator.java<br/><ref>Committer's log entry: </ref>A fix to allow reverse iterators to be reset (inside nested for-each loops).
PR: n/a
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/15/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java<br/><ref>Committer's log entry: </ref>bug fix 2553, new iterator to get rid of dups<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/15/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/compiler
FilteredAbsoluteLocationPath.java<br/><ref>Committer's log entry: </ref>bug fix 2553, new abs location path<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler xpath.cup
Constants.java<br/><ref>Committer's log entry: </ref>bug fix 2553, updated Constants for dup processing
and updated CUP rule for AbbreviatedAbsoluteLocationPaths<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java
DOMImpl.java DupFilterIterator.java
StepIterator.java UnionIterator.java<br/><ref>Committer's log entry: </ref>Implementation of id() and key() pattern - finally!
Added a small fix to the DOMImpl$DescendantIterator to prevent NPEs.
PR: bugzilla 1376
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler IdKeyPattern.java
KeyCall.java Mode.java Output.java Parser.java
TestSeq.java xpath.cup<br/><ref>Committer's log entry: </ref>Forgot an 'import' in DupFilterIterator
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc TransletOutputHandler.java
java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java
java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java DefaultSAXOutputHandler.java
SAXAdapter.java TextOutput.java
TransletOutputBase.java<br/><ref>Committer's log entry: </ref>missing file<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
DefaultSAXOutputHandler.java<br/><ref>Committer's log entry: </ref>Added another fix for the missing DOCTYPE declaration. XSLTC will now output
DOCTYPE declarations for HTML output if either doctype-system or doctype-
public is declared in the &lt;xsl:output&gt; element. XSL output will get a
DOCTYPE declaration only if doctype-system is declared.
PR: 1504
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java<br/><ref>Committer's log entry: </ref>
<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br/><ref>Committer's log entry: </ref>turning on filtering, bug 2553<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java<br/><ref>Committer's log entry: </ref>Removed a bad optimisation in the duplicate filter iterator.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br/><ref>Committer's log entry: </ref>re-activated the no dups filtering, dont know how
this got reverted back to no filtering, but it is fixed again.<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler IdKeyPattern.java
Key.java KeyCall.java Parser.java Sort.java
xpath.cup
java/src/org/apache/xalan/xsltc/compiler/util
CompareGenerator.java NodeSortRecordGenerator.java
java/src/org/apache/xalan/xsltc/dom DTDMonitor.java
DupFilterIterator.java KeyIndex.java
NodeSortRecord.java NodeSortRecordFactory.java
java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java BasisLibrary.java<br/><ref>Committer's log entry: </ref>Major update for id() and key(). Patterns containing id() and key() are
now 100% supported (about time), and id() and key() expressions should
now work in all (at least most) combinations.
PR: bugzilla 1376 (!!!) and 2624
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br/><ref>Committer's log entry: </ref>A small fix for a cleanup I did in the basis library (it broke the
substring() function)&gt;
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br/><ref>Committer's log entry: </ref>Added small fix to prevent NPE in output handler.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc TransletOutputHandler.java
java/src/org/apache/xalan/xsltc/compiler Variable.java
VariableRef.java VariableRefBase.java
java/src/org/apache/xalan/xsltc/compiler/util
MultiHashtable.java
java/src/org/apache/xalan/xsltc/dom DOMImpl.java
java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java
TextOutput.java TransletOutputBase.java<br/><ref>Committer's log entry: </ref>Added element/attribute prefix information in the internal DOM.
This should fix some problems we have had with the copy and copy-of
elements. Added a few lines of code in an attempt to speed up the DOM builder.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/21/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DTDMonitor.java<br/><ref>Committer's log entry: </ref>An attempt to optimise the building of the ID index. The previous version of
this code would traverse the DOM once for each type of element that had a
defined ID attribute. The new version traverses the DOM once, and looks up
each element's type in a hashtable to determine its ID attribute type (if
any).
The new version of the code does not use string comparisons, like the old one.
This update was done to compensate for the possible performance degradation of
having implemented an element/attribute prefix array in the internal DOM.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/21/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax
TemplatesHandlerImpl.java TemplatesImpl.java
TransformerHandlerImpl.java TransformerImpl.java<br/><ref>Committer's log entry: </ref>Protected some methods in our TrAX code that are not defined in the TrAX API.
These methods were never intended for public use and should have been defined
as "protected" to begin with.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/22/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XslElement.java<br/><ref>Committer's log entry: </ref>Fix for a problem with some combinations of &lt;xsl:element&gt; and namespace
aliasing. The output lacked the necessary namespace definitions when an
element created with &lt;xsl:element&gt; was given a qname with a prefix that
was mapped to some other prefix.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler ParameterRef.java<br/><ref>Committer's log entry: </ref>removed typeCheck(), uses the base classes method now<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler
VariableRefBase.java<br/><ref>Committer's log entry: </ref>added default typeCheck() to this base class<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler RelationalExpr.java<br/><ref>Committer's log entry: </ref>bug fix 2838, cast to type real if both operands are
ResultTreeType<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc DOM.java
java/src/org/apache/xalan/xsltc/compiler
AbsoluteLocationPath.java AbsolutePathPattern.java
AncestorPattern.java ApplyTemplates.java
BooleanExpr.java CallTemplate.java CastExpr.java
Constants.java Copy.java CopyOf.java
DocumentCall.java FilterExpr.java
FilteredAbsoluteLocationPath.java ForEach.java
FunctionCall.java Key.java KeyCall.java
LastCall.java LocalNameCall.java Mode.java
NameCall.java NamespaceUriCall.java Number.java
Param.java ParameterRef.java
ParentLocationPath.java ParentPattern.java
PositionCall.java Predicate.java
RelationalExpr.java Sort.java Step.java
StepPattern.java Stylesheet.java
SyntaxTreeNode.java Template.java TestSeq.java
Text.java TransletOutput.java ValueOf.java
Variable.java VariableRef.java Whitespace.java
XSLTC.java
java/src/org/apache/xalan/xsltc/compiler/util
ClassGenerator.java ErrorMsg.java
MethodGenerator.java NodeSetType.java NodeType.java
ResultTreeType.java
java/src/org/apache/xalan/xsltc/dom Axis.java
DOMAdapter.java DOMImpl.java LoadDocument.java
MultiDOM.java
java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java BasisLibrary.java<br/><ref>Committer's log entry: </ref>Changes all calls from the compiled translet code to the DOM to be calls
to the DOM interface (and not to a specific DOM class). I did this to make
it possible to plugi in any DOM implementation.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc TransletOutputHandler.java
java/src/org/apache/xalan/xsltc/compiler Constants.java
TransletOutput.java
java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java DefaultSAXOutputHandler.java
TextOutput.java TransletOutputBase.java<br/><ref>Committer's log entry: </ref>Added an &lt;xsltc:output&gt; extension to allow for multiple output files. I know
that this is not a prioritised task, but I need this for a little project I
am working on.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/28/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Param.java
ParameterRef.java Variable.java VariableBase.java
VariableRef.java
java/src/org/apache/xalan/xsltc/compiler/util
NodeSetType.java NodeType.java ReferenceType.java
ResultTreeType.java StringType.java Type.java<br/><ref>Committer's log entry: </ref>A few fixes for the regression caused by my last (huge) putback.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/28/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java<br/><ref>Committer's log entry: </ref>A fix for the position() function when using duplicate filter iterators.
PR: n/
Obtained from: N/A
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li></ul>
</s3>
<anchor name="xsltcconf"/>
<s3 title="XSLT 1.0 Conformance and Extensions">
<p>XSLTC does not yet support the following features of the <resource-ref idref="xsl"/>:</p>
<ul>
<li>The namespace axis is not implemented. You cannot get a node set containing the namespace nodes
in scope from a context node in the document tree. Otherwise, namespace functionality is implemented.</li>
</ul>
<p>XSLTC does not support a number of features that are not required by the XSLT 1.0 specification,
but which are supported by a number of other XSLT processors:</p>
<ul>
<li>Incomplete support for extension elements and external Java functions. Currently you can set up an extension function
to call a static Java function. For the extension namespace, use<br/>
&nbsp;&nbsp;&nbsp;&nbsp;http://xml.apache.org/xalan/xsltc/java/&lt;class&gt;<br/>
where &lt;class&gt; identifies the class with the static method.</li>
<li>Lack of support for the redirection of output to multiple
output files from within a stylesheet (equivalent to xalan:redirect or
saxon:output).</li>
<li>XSLTC does not implement a node-set extension to convert result tree fragments to
node-sets. This would enable sorting and grouping of nodes assigned to a tree </li>
</ul>
</s3>
<anchor name="xsltcknownproblems"/>
<s3 title="Known Problems">
<ul>
<li>Casting variables: XSLTC requires you to explicitly type cast values
returned by variables or expressions, when you use them in tests. Always a good
practice, but it may seem like overkill in some in contexts, where other XSLT processors
automatically assume or convert to the correct type. For example. unless you cast $country
to a string in the following apply-templates, entry nodes whose &lt;country&gt; elements
contain a string matching the global $country parameter are NOT selected.<br/><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<code>&lt;xsl:apply-templates select="entry[country=string($country)]"/&gt;</code></li>
<li>Order dependency of conditions within a predicate: If you have a predicate in a select or match
expression that has multiple conditions, one of which contains a union (X or Y), put it last.
Otherwise, the predicate fails to match node that it should.</li>
<li>When using DOM caching, as shown in the Servlet demo, if the source document is local to the
server, the cache is not refreshed when the source XML document is modified. This
problem does not apply when the source is associated with a URL.</li>
<li>If you have a list of references included or imported stylesheets, put any with
a relative path last; otherwise, stylesheets in the current directory are not found.</li>
<li>[1] should be treated equivalent to position()=1, but it is not. Therefore, if
you get unexpected results using such shortcut positional predicates, substitute the
full postion()= version.</li>
<li>XSLTC fails to match existing nodes when match expressions have
multiple steps with predicates containing the position function.
The following examples are taken from the XSLTMark oddtemplates.xsl test:<br/><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;match='top/*[position()=2]'</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;match='top/*[6]/kid[2]'</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;match='top/*[position()=last()]'</code><br/></li>
<li>XSTLC has problems with output escaping, see bug 1403.</li>
<li>Case-order option with sorting is ignored.</li>
<li>As a minor side-effect of implementing simplified stylesheets, if you inadvertenly
go to compile a stylesheet and give the name of the .xml doc instead of the .xsl doc,
it may compile without a warning. In some cases, the compiler aborts with an error
about too many branches.</li>
</ul>
</s3>
<anchor name="xsltcdemos"/>
<s3 title="Running Demos">
<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><code>&nbsp;&nbsp;&nbsp;&nbsp;<jump href="http://research.sun.com/research/download/index.html">http://research.sun.com/research/download/index.html</jump></code></p>
<p>and the java extensions for servlets from Sun:</p>
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;
<jump href="http://java.sun.com/products/servlet/download.html">
http://java.sun.com/products/servlet/download.html</jump>
</code></p>
<p>The translet must be specified as a pure class name, accessible
through the Brazil handler's classpath. For example:</p>
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;translet=mk054</code></p>
<p>The document must be specified as a valid URL. For example:</p>
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;document=http://server/path/to/filename.xml</code></p>
<p>If the file is local to the Brazil handler, it has to be
specified using the "file:filename.xml" format.</p>
<note>You also need to make the Brazil and javax classes available from your classpath</note>
<p>See also: <link idref="samples" anchor="translets">sample JAXP translets</link>.</p>
</s3>
<anchor name="xsltctrax"/>
<s3 title="Translets and TrAX">
<p>
The Translet API has been extended to conform with the JAXP1.1 TrAX model.
This release contains the first implementation of that extension. Two
new classes have been added to the Translet XSLT codebase, they are:</p>
<p>(1) <code>org.apache.xalan.xsltc.runtime.TransformerFactoryImpl</code> -<br/>
&nbsp;&nbsp;&nbsp;&nbsp;the Translet implementation of a SAXTransformerFactory.</p>
<p>(2) <code>org.apache.xalan.xsltc.runtime.TransletTemplates</code> -
&nbsp;&nbsp;&nbsp;&nbsp;the Translet implementation of a Templates object.</p>
<p>
The existing XSLT class 'org.apache.xalan.xsltc.runtime.AbstractTranslet'
that implements the Translet interface is now also extending the
javax.xml.transform.Transformer abstract class.
</p>
<p>
This implementation is only a partial implementation, with many limitations.
These limitations include:
</p>
<ol>
<li>Currently 'StreamSource' and 'StreamResult' are the only
TrAX Sources and Results that are supported.</li>
<li>The translet is compiled everytime a call is made to the<br/>
<code>TransformerFactoryImpl 'newTransformer()'</code> method.</li>
<li>The translet is compiled everytime a call is made to the <br/>
<code>TemplateFactoryImpl 'newTransformer()'</code> method.</li>
<li>Translet are currently not cached. (See (2) and (3)).</li>
<li>Several abstract methods from SAXTransformerFactory still need to
be implemented in the xsltc.runtime.TransformerFactoryImpl class:<br/><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;TemplatesHandler newTemplatesHandler()</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;TransformerHandler newTransformerHandler()</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;TransformerHandler newTransformerHandler(Source src)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;TransformerHandler newTransformerHandler(Templates templates)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;XMLFilter newXMLFilter(Source src)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;XMLFilter newXMLFilter(Templates templates)</code></li>
<li>Several abstract methods from Transformer still need to be implemented in the
AbstractTranslet class:<br/><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;ErrorListener getErrorListener()</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;void setErrorListener(ErrorListener)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;Properties getOutputProperties()</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;String getOutputProperty(String name)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;void setOutputProperties(Properties props)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;void setOutputProperty(String name, String value)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;URIResolver getURIResolver()</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;void setURIResolver(URIResolver resolver)</code></li>
<li>Abstract method from Templates still need to be implemented in the TransletTemplates class:<br/><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;Properties getOutputProperties()</code></li>
<li>Several abstract methods from TransformerFactory still need to be implemented
in the <code>xsltc.runtime.TransformerFactoryImpl</code> class:<br/><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;ErrorListener getErrorListener()</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;void setErrorListener(ErrorListener listener)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;Object getAttribute(String name)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;void setAttribute(String name, Object value)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;boolean getFeature(String name)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;URIResolver getURIResolver()</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;void setURIResolver(URIResolver resolver)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;Source getAssociatedStylesheet(Source src, String media, String title,</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String charset)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;Templates newTemplates(Source xslSrc)</code><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;Transformer newTransformer()</code></li>
<li>Whenever possible, the required methods that are currently unimplemented will throw an
exception if someone tries to call them- this will alert the user that the method is not implemented.
The message is of the form:<br/><br/>
<code>&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;Class Name&gt;:&lt;Method Name&gt;( &lt;args&gt; ) not implemented yet.&quot;</code>
</li>
</ol>
</s3>
<anchor name="xsltchistory"/>
<s3 title="History of XSLTC software changes">
<p>The following sections list XSLT changes back to the incorporation of XSLTC into &xslt4c;.</p>
<s4 title="XSLTC source code updates for &xslt4j; 2.2.D9">
<p>XSLTC source code updates:</p><ul><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br/><ref>Committer's log entry: </ref>Integrated fix for problem with count() function for certain iterators.
PR: Bugzilla 1407
Obtained from: n/a
Submitted by: John Howard &lt;johnh@schemasoft.com&gt;
Reviewed by: Morten Jorgensen &lt;morten@xml.apache.org&gt;<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/30/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc DOM.java
java/src/org/apache/xalan/xsltc/compiler EqualityExpr.java
FilterParentPath.java Parser.java Predicate.java
Step.java SyntaxTreeNode.java Variable.java
XSLTC.java
java/src/org/apache/xalan/xsltc/dom DOMAdapter.java
DOMImpl.java MultiDOM.java
java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java DefaultSAXOutputHandler.java
TextOutput.java
java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>Added code that will speed up predicates such as //foo[@attr=$var],
//foo[bar = $var] and //foo/[@attr = 'str'].
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/31/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Expression.java
Param.java ParameterRef.java Predicate.java
Stylesheet.java SyntaxTreeNode.java Variable.java
VariableRef.java WithParam.java<br/><ref>Committer's log entry: </ref>Fix for parameter and variable handling. This fix makes sure variable slots
are released once a variable goes out of scope. I have also extracted common
functionality from Variable and Param into VariableBase, and similarly
extracted some functionality from VariableRef and ParameterRef into a new
class VariableRefBase. This can potentially make some code more efficient as
one can test for 'if (blob instanceof VariableBase)' instead of testing on
both Variable and Param.
PR: Bugzilla 2661 and 2699
Obtained from: n/a
Submitted by: John Howard &lt;JohnH@schemasoft.com&gt;
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/31/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/compiler VariableBase.java
VariableRefBase.java<br/><ref>Committer's log entry: </ref>Forgot to add these two in my last putback.
PR: none
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/31/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Predicate.java
Step.java Stylesheet.java XSLTC.java<br/><ref>Committer's log entry: </ref>Removed type-cast error in Stylesheet.java
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/31/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler VariableBase.java
java/src/org/apache/xalan/xsltc/runtime
DefaultSAXOutputHandler.java<br/><ref>Committer's log entry: </ref>Removed some of the linefeeds we output in the default SAX output handler
to produce output more similar to Saxon (for testing purposes).
Added a test for null-pointers in the new VariableBase class.
PR: bugzilla 2922 &amp; 2598
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org`<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/31/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom NodeCounter.java<br/><ref>Committer's log entry: </ref>Added a small fix to prevent unwanted output when using the xsl:number
element.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/01/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Constants.java
If.java Key.java Predicate.java Step.java When.java
java/src/org/apache/xalan/xsltc/compiler/util
CompareGenerator.java
java/src/org/apache/xalan/xsltc/dom NodeCounter.java
java/src/org/apache/xalan/xsltc/runtime
DefaultSAXOutputHandler.java<br/><ref>Committer's log entry: </ref>A few changes to make our output look more like Saxon's (to simplyfy
test diffs).
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/01/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
DOM2SAX.java<br/><ref>Committer's log entry: </ref>add support for DOMResult handling<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/01/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/trax SAX2DOM.java<br/><ref>Committer's log entry: </ref>work in progress, converted needed for DOMResult<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/02/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br/><ref>Committer's log entry: </ref>added setting of systemId in DOMSource handling<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/02/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax SAX2DOM.java
TransformerFactoryImpl.java TransformerImpl.java<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/trax
TransformerHandlerImpl.java<br/><ref>Committer's log entry: </ref>Added an implementation of the TransformerHandler interface of TrAX/JAXP.
Implemented the 4 methods in TransformerFactory to instanciate this
TransformerHandler implementation.
Added an attribute of the TransformerFactory which contains the default
name for generated translet classes (the default name is GregorSamsa from
Kafka's Metemorphosis), but should be set by the user in cases where the
Templates implementation cannot get the systemId from the Source object.<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/02/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java
TransformerHandlerImpl.java<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/trax
TemplatesHandlerImpl.java<br/><ref>Committer's log entry: </ref>Added missing TemplatesHandlerImpl file (implementation of the TrAX
TemplatesHandler interface).
Added initial implementation of getAssociatedStylesheet() in
the TransformerFactoryImpl class.
Changed behaviour of TransformerHandlerImpl class with regard to
the setResult() method. This method now has to be called before
startDocument() is called, which gives XSLTC the same behaviour
as Xalan.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/02/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Parser.java
XSLTC.java
java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>Added support for the TransformerFactory's getAssociatedStylesheet()
method. Added similar methods to the native XSLTC API, as they can come
in handy.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/03/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Constants.java
DocumentCall.java
java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br/><ref>Committer's log entry: </ref>Fix for the document() function. The code compiled by DocumentCall now
passes the context URI to the LoadDocument.document() method, and the
document() method resolves the base/new URIs and constructs an absolute
path/URI to the document to load.
PR: bugzilla 2832
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/03/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br/><ref>Committer's log entry: </ref>new recursive parse(InputSource) implemented<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/03/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br/><ref>Committer's log entry: </ref>upated<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>08/03/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br/><ref>Committer's log entry: </ref>updated again<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/03/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
java/src/org/apache/xalan/xsltc/trax SAX2DOM.java<br/><ref>Committer's log entry: </ref>Fix to get around problem with Crimson. Crimson does not like attribute-
nodes to be created with 'null' or "" namespace URI. Added an if-test to
invoke setAttribute(name, value) instead of setAttributeNS(uri, name, value).
Had to add a little test to DOMImpl$DOMBuilder.makeAttributeNode() to get
around an internal NPE problem.
PR: n/a
Obtained from: n.a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/03/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler CopyOf.java
Step.java
java/src/org/apache/xalan/xsltc/dom DOMImpl.java
UnionIterator.java<br/><ref>Committer's log entry: </ref>Fix for union-iterators wrapping one or more attribute-iterators.
Attributes should be wrapped in TypedAttributeIterator objects and not
SingletonIterator objects when they occur insude unions.
Fix for copying attribute nodes using &lt;xsl:copy&gt; and &lt;xsl:copy-of&gt;
PR: bugzilla 2603
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br/><ref>Committer's log entry: </ref>Added code behind the document() function to force the parser to be
namespace aware (Crimson is pr. default, Xerces is not).
PR: bugzilla 2862
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br/><ref>Committer's log entry: </ref>Fix to prevent escaping of attribute values in HTML output.
PR: bugzilla 3003
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br/><ref>Committer's log entry: </ref>Fix for grouping a sequence of text nodes inside one CDATA section.
PR: bugzilla 3005
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler ForEach.java
xpath.cup
java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java<br/><ref>Committer's log entry: </ref>Fix for passing node-sets as parameters into a template with a for-each loop.
The ForEach class resets its node iterator by default. This behaviour is not
desierd for iterators that are passed in through a parameter, so I added an
it-test that checks if the iterator is of type 'Reference'.
PR: bugzilla 2468
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler
AbsolutePathPattern.java<br/><ref>Committer's log entry: </ref>Fix for a certain combination of absolute path patterns and ancestor patterns,
such as &lt;xsl:template match="/foo//*"/&gt;.
PR: bugzilla 2836
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler DocumentCall.java<br/><ref>Committer's log entry: </ref>Fix for document() function. Prevents run-time error.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XslElement.java<br/><ref>Committer's log entry: </ref>Added a test to the &lt;xsl:element&gt; element to verify that the element name
given in the 'name' attribute contains something other than an empty string.
PR: bugzilla 2794
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler LiteralElement.java<br/><ref>Committer's log entry: </ref>Applied a fix to our class for handling literal result elements. The only
attributes in the XSLT namespace we handle in LREs are exclude-result-prefixes
and extension-element-prefixes. We have a test to check if an attribute is
in the XSLT namespace, and if it is we ignore the attribute. This test was
placed before the test for the two XSLT attributes we do want to handle,
causing us to ignore all xsl:exclude-result-prefixes attributes in LREs.
PR: bugzilla 1506
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Attribute.java
AttributeSet.java Copy.java UseAttributeSets.java
XslAttribute.java
java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br/><ref>Committer's log entry: </ref>Fix and performance improvement for attribute sets.
PR: bugzilla 2536
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>08/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Copy.java<br/><ref>Committer's log entry: </ref>Fix for use of attribute sets with the xsl:copy element. We were a bit too
restrictive in our tests to see if it was safe to send the attributes to
the output handler. We only compiled in a test to see if the copied node
was an elment, but should also have tested if the xsl:copy element's
parent node was a LRE or a xsl:element element.
PR: bugzilla 2538
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li></ul>
</s4>
<s4 title="XSLTC source code updates for &xslt4j; 2.2.D8">
<p>XSLTC source code updates:</p><ul><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
DefaultSAXOutputHandler.java
java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java TransformerImpl.java<br/><ref>Committer's log entry: </ref>Added support for SAXSource and SAXResult in TransformerFactoryImpl
and TransformerFactory. I had to add a new consturctor the the
default SAX output handler (in the xsltc runtime library) to acommodate
the SAXResult TrAX output handler.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XSLTC.java
java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>Added default error-reporting behaviour for our trax code (error messages
are dumped to System.err).
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>in progress, adding DOMSource support<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>07/20/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br/><ref>Committer's log entry: </ref>new class, DOM2SAX, supports DOMSources, in progress<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Import.java
Include.java Stylesheet.java XSLTC.java
java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java TransformerImpl.java<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/compiler SourceLoader.java<br/><ref>Committer's log entry: </ref>Added a SourceLoader interface to the compiler package. This interface can
be used to plug in an external document loader for imported and/or
included stylesheets. The trax.TransformerImpl class is updated to
implement this interface and act as an adapter between the internal XSLTC
SourceLoader interface and TrAX's URIResolver interface.
PR: n/a
Obtained from: n/a
Submitted by: morten@apache.org
Reviewed by: morten@apache.org<br/><br/></li><li><ref>Committed by </ref>amiro@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime Constants.java<br/><ref>Committer's log entry: </ref>Added the NAMESPACE_FEATURE constant. Checked to see if it was in
org.xml.sax first, but it wasn't. Since this constant is used both
at compile and runtime, it should be in the runtime Constants class
as well as the compile Constants class. Runtime code needs to be
kept separate from the compile time code.<br/><br/></li><li><ref>Committed by </ref>amiro@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime DefaultRun.java
java/src/org/apache/xalan/xsltc/cmdline Transform.java
java/src/org/apache/xalan/xsltc/dom DocumentCache.java<br/><ref>Committer's log entry: </ref>Added import for org.apache.xalan.xsltc.runtime.Constants;
to the runtime classes that need to use the NAMESPACE_FEATURE constant
and had them reference it rather than define it themselves.<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br/><ref>Committer's log entry: </ref>minor changes for DOMSource impl support<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>Added DOMSource support for stylesheet<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>07/20/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br/><ref>Committer's log entry: </ref>updated convertor which supports DOMSource impl<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br/><ref>Committer's log entry: </ref>Added a small fix to the compiler (XSLTC.java) to make sure that the SAX
parser reference was not reset prior to compiling the translet.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java TransformerImpl.java<br/><ref>Committer's log entry: </ref>Added support for DOMSource as input to our Transformer implementation<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Import.java
Sort.java
java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java
NodeSortRecordFactory.java<br/><ref>Committer's log entry: </ref>For some reason I decided to optimise the &lt;xsl:sort&gt; functionaility. The
sort records we used has some global values stored behind methods, but are
now static fields. Somewhat faster.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Import.java
Include.java<br/><ref>Committer's log entry: </ref>Fix for problem with import &amp; include introduced with the latest updated
for TrAX URIResolvers.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br/><ref>Committer's log entry: </ref>Integrated fix for problem with count() function for certain iterators.
PR: Bugzilla 1407
Obtained from: n/a
Submitted by: John Howard &lt;johnh@schemasoft.com&gt;
Reviewed by: Morten Jorgensen &lt;morten@xml.apache.org&gt;<br/><br/></li></ul>
</s4>
<s4 title="XSLTC source code updates for &xslt4j; 2.2.D7">
<ul><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/09/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Constants.java
Param.java StepPattern.java Stylesheet.java
SyntaxTreeNode.java Variable.java WithParam.java
java/src/org/apache/xalan/xsltc/dom KeyIndex.java
java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java BasisLibrary.java
DefaultRun.java Parameter.java TextOutput.java<br/><ref>Committer's log entry: </ref>Loads of small fixes and a good few comments added to the source code.
The major fixes are one fix for variable/parameter handlingi and one for
key/id index handling. XSLTC now correctly updates the value of parameters
with changing default values, such as with
&lt;xsl:param name="foo" select="current()"/&gt;.
Also updated bit-arrays to correctly return single node ids, so that the
key() and id() functions return the correct number of nodes (they would
sometimes skip the first node in the defined node set for the key/id).
Added some structure and loads of comments to the Translet base class.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/10/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler
AncestorPattern.java AttributeSet.java
CallTemplate.java CastExpr.java EqualityExpr.java
Expression.java FunctionCall.java If.java
Import.java Include.java Mode.java NameBase.java
Param.java ParameterRef.java Parser.java
StepPattern.java SyntaxTreeNode.java Template.java
TestSeq.java Variable.java VariableRef.java
XSLTC.java XslAttribute.java
java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java
ReferenceType.java
java/src/org/apache/xalan/xsltc/dom MultiDOM.java
StepIterator.java
java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br/><ref>Committer's log entry: </ref>A wide range of fixes provided by Erwin Bolwidt.
o) fix for long IF and GOTO instructions inside translets.
'wide' GOTOs are now used (GOTO_W) instead of plain GOTO
to allow longer jump offsets
o) fix for illegal field/method names in the translet.
Methods and fields no longer contain the '.' or '-' characters
o) source filenames (and if possible also line numbers) are now
provided with error and warning messages
o) external functions that are not supported by XSLTC do not cause
compile errors. They will still cause a warning message at
compile-time if they are not wrapped in proper &lt;xsl:if&gt; or
&lt;xsl:when&gt; elements that test on the availability of the function,
and will cause a runtime error if the function is attempted called.
o) added type cast from reference-type to node-type
o) some other smaller fixes to prevent null-pointer exceptions
Other changes:
o) code cleanup and some added comments
PR: n/a
Obtained from: n/a
Submitted by: Erwin Bolwidt &lt;ejb@klomp.org&gt;
Reviewed by: Morten Jorgensen &lt;morten@xml.apache.org&gt;<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Parser.java
SyntaxTreeNode.java XSLTC.java<br/><ref>Committer's log entry: </ref>Cleaned up the XSLTC compiler class in an attempt to make it more flexible.
This class was originally written as a command-line interface, but it has
now grown huge and messy. I separated the command-line stuff from the
methods that make up the actual functionality and made some methods public.
This is part of the preparation for our new implementation of the JAXP
Templates object.
PR: n/a
Obtained from: n.a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime DefaultRun.java<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/cmdline Compile.java
Transform.java<br/><ref>Committer's log entry: </ref>Extracted the command-line stuff from the core XSLTC packages. The command-
line handling is now in xalan.xsltc.cmdline.Compile and
xalan.xsltc.cmdline.Transform. The command-line stuff is still left in
xalan.xsltc.compiler.XSLTC and xalan.xsltc.runtime.DefaultRun for backwards
compatability. This should be removed shortly.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/cmdline Compile.java
java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/cmdline/getopt GetOpt.java
GetOptsException.java IllegalArgumentException.java
MissingOptArgException.java
java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
TransformerImpl.java<br/><ref>Removed: </ref>java/src/org/apache/xalan/xsltc/util/getopt GetOpt.java
GetOptsException.java IllegalArgumentException.java
MissingOptArgException.java<br/><ref>Committer's log entry: </ref>Moved the org.apache.xalan.xsltc.util.getopt package to
org.apache.xalan.xsltc.cmdline.getopt. Also added some skeleton
code in a new org.apache.xalan.xsltc.trax directory.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax TransletTemplates.java<br/><ref>Committer's log entry: </ref>minor adjustment
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>removed obselete try/catch<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XSLTC.java
java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java
java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
TransformerFactoryImpl.java TransformerImpl.java<br/><ref>Removed: </ref>java/src/org/apache/xalan/xsltc/trax TransletTemplates.java<br/><ref>Committer's log entry: </ref>A first stab at our new TrAX design.`
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XSLTC.java
java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
TransformerFactoryImpl.java TransformerImpl.java<br/><ref>Committer's log entry: </ref>A few minor adjustments to yesterdays JAXP/TrAX implementation. These is one
change in the way the compiler (XSLTC) generates bytecode arrays, and the
rest is basically a cleanup of error reporting and a few added comments.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/16/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DocumentCache.java<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/trax OutputSettings.java<br/><ref>Committer's log entry: </ref>Reduced the refresh rate of the DocumentCache to 1 second.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>amiro@apache.org<ref> on </ref>07/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DocumentCache.java<br/><ref>Committer's log entry: </ref>Submitted by: Tom Amiro
Fixes bug 1591. Changed the lastModified() method to return
the correct timestamp for local files beginnig with the "file:"
protocol. Incorporated Brian Ewin's suggestion to use URLdecode.
Todd Miller and Morten Jorgensen<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
TransformerFactoryImpl.java TransformerImpl.java<br/><ref>Committer's log entry: </ref>Added some javadoc comments to our trax stuff. Added preliminary support
for getting/setting output properties, and for getting/setting URL resolvers.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc TransletOutputHandler.java
java/src/org/apache/xalan/xsltc/cmdline Transform.java
java/src/org/apache/xalan/xsltc/compiler Output.java
Stylesheet.java
java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java DefaultRun.java
DefaultSAXOutputHandler.java SAXAdapter.java
StringValueHandler.java TextOutput.java
TransletOutputBase.java<br/><ref>Committer's log entry: </ref>A series of changes to the XSLTC output handling to accomodate the
set/getOutputSettings() methods in the TrAX API.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/19/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br/><ref>Committer's log entry: </ref>Fixed the handling of the 'cdata-section-elements' attribute of the
&lt;xsl:output&gt; element. Previously we output the whole element, including
all contents, child elements and the start- and end-tags in one big
CDATA section. We now correctly output only immediate text child-nodes
as CDATA sections.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/19/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc Translet.java
java/src/org/apache/xalan/xsltc/dom LoadDocument.java
java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java
java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br/><ref>Committer's log entry: </ref>Added implementation of get/setOutputProperties() of the Transformer
implementation.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>07/19/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DocumentCache.java<br/><ref>Committer's log entry: </ref>Added (a rather brutal) handling of all Exceptions thrown in the
DocumentCache.getLastModified() method. This class is provided only
as an example/skeleton, but should still - for various reasons -
be provided in the base 'xsltc.dom' package.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li></ul>
</s4>
<s4 title="XSLTC source code updates for the &xslt4j; 2.2.D releases up to and including 2.2.D6">
<ul><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>05/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Text.java<br/><ref>Committer's log entry: </ref>bug fix 1403, output escaping fixed<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>05/23/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br/><ref>Committer's log entry: </ref>bug fix 1403, output escaping fixed<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Parser.java<br/><ref>Committer's log entry: </ref>stylesheet compilation error listening added for
TrAX support<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br/><ref>Committer's log entry: </ref>stylesheet compilation error listening added for
TrAX support<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>stylesheet compilation error listening added for
TrAX support<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>Transformer factory's setErrorListener() now throws
IllegalArgumentException is listener is null<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>translet transformation errors now forwarded to
TrAX error listener when applicable<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/05/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java<br/><ref>Committer's log entry: </ref>translet transformation errors now forwarded to
TrAX error listener when applicable<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime AttributeList.java<br/><ref>Committer's log entry: </ref>Added a constructor for copying an org.xml.sax.Attributes to our
org.apache.xalan.xsltc.runtime.AttributeList.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler ApplyImports.java
ApplyTemplates.java Attribute.java
AttributeSet.java AttributeValueTemplate.java
BinOpExpr.java CallTemplate.java Comment.java
ConcatCall.java Constants.java Copy.java
CopyOf.java DecimalFormatting.java
DocumentCall.java Expression.java Fallback.java
ForEach.java FormatNumberCall.java
FunctionAvailableCall.java FunctionCall.java
If.java Import.java Include.java Key.java
LiteralAttribute.java LiteralElement.java
LiteralExpr.java LogicalExpr.java Message.java
NamespaceAlias.java Number.java Output.java
Param.java Parser.java ProcessingInstruction.java
QName.java RelationalExpr.java Sort.java
Stylesheet.java SymbolTable.java
SyntaxTreeNode.java Template.java Text.java
TransletOutput.java UnaryOpExpr.java ValueOf.java
Variable.java When.java Whitespace.java
WithParam.java XSLTC.java XslAttribute.java
XslElement.java xpath.cup
java/src/org/apache/xalan/xsltc/compiler/util
MethodType.java<br/><ref>Committer's log entry: </ref>Removed the intermediate DOM used to contain the input document (the
stylesheet) for the compiler. The compiler now uses SAX2 to import
the stylesheet, and all references to DOM interfaces have been removed.
This means that most classes representing XSL elements have been
changed, but most classes representing XPath functions, expressions
and patterns are unchanged.
PR: After suggestion from Scott Boag
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/06/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/compiler
UnsupportedElement.java<br/><ref>Committer's log entry: </ref>Adding a class for handling unsupported stylesheet elements
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br/><ref>Committer's log entry: </ref>Minor fix to make sure that attributes are processed in the correct order.
PR: n/a
Obtained from: n.a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
DefaultSAXOutputHandler.java<br/><ref>Committer's log entry: </ref>Minor change in output indentation/line feeds.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xmp.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler
LocationPathPattern.java Parser.java Template.java<br/><ref>Committer's log entry: </ref>Fixed the code that resolves conflicts between templates with identical
patterns. The order of the templates is not taken into account - after
import precedence and priority has been checked.
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
DefaultSAXOutputHandler.java<br/><ref>Committer's log entry: </ref>Reverted changes to SAX output handler.
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/06/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Parser.java
Template.java xpath.cup<br/><ref>Committer's log entry: </ref>unified Parser error reporting to use Mortens
reportError routine<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/07/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler BinOpExpr.java
FunctionCall.java Otherwise.java Param.java
RelationalExpr.java Stylesheet.java
SyntaxTreeNode.java Variable.java When.java
XSLTC.java XslElement.java<br/><ref>Committer's log entry: </ref>Updated a few classes that were still calling Parser.addError(),
Parser.addWarning() and Parser.addFatalError() to use the new common
error handler Prarser.reportError(int category, ErrorMsg message).
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Parser.java
java/src/org/apache/xalan/xsltc/runtime DefaultRun.java<br/><ref>Committer's log entry: </ref>Added two lines of code to explicitly set the feature
"http://xml.org/sax/features/namespaces" of the SAXParser to "true".
The default is "true" but xerces seems to set it to "false", and this
caused some problems for our Stylesheet and XML doc parsers (which are
both using SAX2).
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Constants.java
Parser.java
java/src/org/apache/xalan/xsltc/runtime DefaultRun.java<br/><ref>Committer's log entry: </ref>A few more changes to make sure the parsers used are namespace aware.
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/08/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler LiteralElement.java
SyntaxTreeNode.java XslAttribute.java
XslElement.java<br/><ref>Committer's log entry: </ref>The change from using DOM to using SAX in the stylesheet input caused some
of the elements in the Abstract Syntax Tree (AST) to be out of order. I
added a few lines of code to the xsl:element/attribute handling code to
fix this.
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler AttributeSet.java
Choose.java Constants.java If.java
LiteralElement.java Stylesheet.java
UseAttributeSets.java When.java XSLTC.java
XslAttribute.java<br/><ref>Committer's log entry: </ref>This putback contains three fixes:
o) fix for complex &lt;xsl:attribute-set&gt; inheritance structures
o) fix for xsl:element-available() function used in &lt;xsl:when&gt; or
&lt;xsl:if&gt; to test support for various extension elements
o) fix for preserving namespace prefixes for &lt;xsl:attribute&gt; output.
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Constants.java
UseAttributeSets.java ValueOf.java
XslAttribute.java
java/src/org/apache/xalan/xsltc/compiler/util
AttributeSetMethodGenerator.java<br/><ref>Committer's log entry: </ref>Fix to allow iterator access within attribute sets. This is necessary for
attribute sets that contain attributes whose values are generated by XSL
functions such as position() and last().
Obtained from: test mk013
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br/><ref>Committer's log entry: </ref>Added output character escaping for non-breaking space characters.
I cannot believe we've waited this long before doing this. Madness!
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XSLTC.java
Parser.java<br/><ref>Committer's log entry: </ref>support for java.io.InputStream StreamSources<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/11/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
TransletTemplates.java<br/><ref>Committer's log entry: </ref>support for java.io.InputStream StreamSources<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler LogicalExpr.java<br/><ref>Committer's log entry: </ref>Fix for bug 1511. Predicates on the format ((a or b) and c) are not
handled correctly. I added a small piece of code to direct the true-list
of the OR expression to the beginning of the AND test.
PR: Bugzilla 1511
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java
TextOutput.java<br/><ref>Committer's log entry: </ref>Fix attribute node-set comparisons. There was a bug in one of the compare()
methods of the BasisLibrary class which prevented attribute values from
being compared. The method compared node IDs instead of node values.
Pretty stupid bug, but now it is solved anyway.
PR: Bugzilla 1409
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Mode.java<br/><ref>Committer's log entry: </ref>Fix to make sure that the implicit "text()" pattern is run when templates
containing "text()" in their pattern fail. XSLTC would not previously
invoke the built-in pattern for "text()" if a stylesheet contained a
template such as &lt;xsl:template pattern="foo/bar/text()" .../&gt;
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XslElement.java<br/><ref>Committer's log entry: </ref>Modified test for legal element names in &lt;xsl:element&gt;. The element name is
treated as an attribute value. Whitespaces are not allowed in plain text
element names, but should be allowed inside "{...}" attribute values.
PR: Bugzilla 1489
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br/><ref>Committer's log entry: </ref>A fix for the preceding:: iterator
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br/><ref>Committer's log entry: </ref>Minor re-adjustment to last fix for preceding:: iterator
PR: 1407
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler ForEach.java
XSLTC.java<br/><ref>Committer's log entry: </ref>Fix to prevent compiler warnings to be output more than once.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler AttributeSet.java<br/><ref>Committer's log entry: </ref>Final fix (for now) for attribute sets. In cases where multiple
&lt;xsl:attribute-set.../&gt; elements make up one attribute set (ie. they share
the same name) attributes that occured last in the stylesheet will take
precedence.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/12/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>added support for java.io.InputStream StreamSources<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler LogicalExpr.java<br/><ref>Committer's log entry: </ref>Fix for code handling logical expressions and combinations of logical
expressions. Mindblowing stuff, but it now seems to work as it should.
Added another few lines of code to properly direct the program flow in
compiled predicates with various combinations of "and" and "or" expressions.
PR: Bugzilla 1511
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/13/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/dom SingletonIterator.java<br/><ref>Committer's log entry: </ref>Fix for singleton iterators encapsulating variable references.
PR: Bugzilla 1412
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/14/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler LiteralElement.java<br/><ref>Committer's log entry: </ref>Added one-line fix to prevent null-pointer error. Simple code cleanup.
PR: n/a
Obtained from: suggestion by Guoliang Cao &lt;cao@ispsoft.com&gt;
Submitted by: cao@ispsoft.com
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/15/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler LogicalExpr.java<br/><ref>Committer's log entry: </ref>Fix to prevent compile-time null-pointer exceptions for certain logical
expressions. Some nexted AND-expressions would cause this error because
their true-list would not be backpatched. This would result in an
instruction list with one or more branch instructions with no target,
such as a GOTO(null) or an IFEQ(null) instruction.
PR: none, bug found in test run and fixed immediately
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>curcuru@apache.org<ref> on </ref>06/17/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler
AbsoluteLocationPath.java ApplyImports.java
ApplyTemplates.java CastExpr.java CopyOf.java
DocumentCall.java EqualityExpr.java Expression.java
FilterExpr.java FilterParentPath.java ForEach.java
FunctionCall.java IdKeyPattern.java Key.java
KeyCall.java NameBase.java ParentLocationPath.java
Parser.java Predicate.java RelationalExpr.java
Step.java UnionPathExpr.java
java/src/org/apache/xalan/xsltc/compiler/util
NodeSetType.java NodeType.java ReferenceType.java
ResultTreeType.java Type.java
java/src/org/apache/xalan/xsltc/dom UnionIterator.java
java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br/><ref>Committer's log entry: </ref>OK, I'm going to make a wild guess and assume that sboag's recent commit
of /NodeSet/NodeSetDTM/ got a little out of control and shouldn't have
gone down into org.apache.xalan.xsltc - undone to fix compile error<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/18/2001<br/><ref>Removed: </ref>java/src/org/apache/xalan/xsltc/compiler/util
NodeSetType.java<br/><ref>Committer's log entry: </ref>Removing NodeSetType (renamed to NodeSetDTMType).
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler/util Type.java<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/compiler/util
NodeSetDTMType.java<br/><ref>Committer's log entry: </ref>
<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/18/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler/util Type.java<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/compiler/util
NodeSetType.java<br/><ref>Removed: </ref>java/src/org/apache/xalan/xsltc/compiler/util
NodeSetDTMType.java<br/><ref>Committer's log entry: </ref>
<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/19/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler ContainsCall.java
FunctionCall.java If.java LogicalExpr.java
Param.java QName.java StartsWithCall.java
SymbolTable.java SyntaxTreeNode.java Template.java
Variable.java xpath.cup
java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br/><ref>Committer's log entry: </ref>Fix for function calls used as clauses in logical expressions.
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>Tom.Amiro@Sun.COM<ref> on </ref>06/19/2001<br/><ref>Committer's log entry: </ref>
&gt; Fix for function calls used as clauses in logical expressions.
&gt; Submitted by: morten@xml.apache.org
&gt; Reviewed by: morten@xml.apache.org
&gt;
&gt;<br/><br/></li><li><ref>Committed by </ref>Morten.Jorgensen@sun.com<ref> on </ref>06/19/2001<br/><ref>Committer's log entry: </ref>
&gt; &gt; Fix for function calls used as clauses in logical expressions.
&gt; &gt; Submitted by: morten@xml.apache.org
&gt; &gt; Reviewed by: morten@xml.apache.org
&gt; &gt;
&gt; &gt;<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/25/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>added check to see if stylesheet is already an URL<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/25/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
TransletTemplates.java<br/><ref>Committer's log entry: </ref>added check to see if stylesheet is already an URL<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/25/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/runtime TrAXFilter.java<br/><ref>Committer's log entry: </ref>proto<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/25/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>removed debug statements<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/26/2001<br/><ref>Removed: </ref>java/src/org/apache/xalan/xsltc/runtime TrAXFilter.java
TransformerFactoryImpl.java TransletTemplates.java<br/><ref>Committer's log entry: </ref>in process of moving these to new subdir<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/26/2001<br/><ref>Added: </ref>java/src/org/apache/xalan/xsltc/trax TrAXFilter.java
TransformerFactoryImpl.java TransletTemplates.java<br/><ref>Committer's log entry: </ref>moved from runtime subdir to its own trax subdir<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>fixed bug with deriving translet name from
stylesheet name that included paths, e.g. /tmp/foo.xsl<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Predicate.java<br/><ref>Committer's log entry: </ref>This update allows variables that contain references to result-tree fragments
to be used inside position filters.
PR: n/a
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java<br/><ref>Committer's log entry: </ref>added url handling in doTransform<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax
TransformerFactoryImpl.java<br/><ref>Committer's log entry: </ref>added a new sys property called 'transletPool'
to allow user to set the destination directory for generated translets<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/trax TransletTemplates.java<br/><ref>Committer's log entry: </ref>added a new sys property called 'transletPool'
to allow user to set the destination directory for generated translets<br/><br/></li><li><ref>Committed by </ref>tmiller@apache.org<ref> on </ref>06/27/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br/><ref>Committer's log entry: </ref>made private method setDestDirectory() public to
support the new transletPool system property.<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/28/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Predicate.java
Step.java Stylesheet.java VariableRef.java
java/src/org/apache/xalan/xsltc/compiler/util
MethodGenerator.java NodeSortRecordGenerator.java
ResultTreeType.java TestGenerator.java<br/><ref>Committer's log entry: </ref>Various bugfixes in the way auxiliary classes access variables/fields in
the main translet class. Fixes a few VAR tests and customer tests.
Pmorten@xml.apache.org:<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/29/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler Choose.java
ElementAvailableCall.java
FunctionAvailableCall.java Parser.java When.java<br/><ref>Committer's log entry: </ref>Fix for element-available() and function-available() calls. Ties these
calls to tables in the XSL parser and the symbol-table (the actual
implementation) instead of using redundant and not-up-to-date tables
in the classes that implement the X-avaiable() calls.
I also cleaned up the Choose call so that it now properly handles
all types of function calls in the xsl:when elements' test clause.<br/><br/></li><li><ref>Committed by </ref>morten@apache.org<ref> on </ref>06/29/2001<br/><ref>Modified: </ref>java/src/org/apache/xalan/xsltc/compiler ForEach.java
Param.java Variable.java
java/src/org/apache/xalan/xsltc/compiler/util
MethodGenerator.java<br/><ref>Committer's log entry: </ref>Added a fix for local variables inside nested xsl:for-each elements.
Local variables are usually not initialized to any default value (such as
with general Java classes), because code compiled for &lt;xsl:variable&gt;
elements always assign values to variable slots before they are accessed.
But the code structure generated by nested &lt;xsl:for-each&gt; elements is too
much for the JVMs verifier to get around, so we have to initialize all
local variables inside such loops to zero, false, null, whatever.
This takes care some of our runtime-errors caused by apparent corrupt code.
(The JVMs verifier thinks that it is corrupt, but it isn't really.)
PR: none
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org<br/><br/></li></ul>
</s4>
<s4 title="XSLTC Changes for &xslt4j; 2.1.0">
<p>The Sun XSLTC team (david.hofert@east.sun.com, tom.amiro@east.sun.com, todd.miller@east.sun.com,
morten.jorgensen@Ireland.sun.com) has checked <link idref="xsltc_usage">XSLTC</link> into the Xalan
source tree, and we have begun the process of merging XSLTC into Xalan. XSLTC provides a compiler for compiling
stylesheets into translets, and a streamlined runtime environment for using translets to transform XML input.
In the near term, XSLTC will appear in a separate JAR file (xsltc.jar) with its own API and command-line
utilities. You can already use the same JAXP interfaces to perform
transformations with the Xalan transformer and with translets. Over time, we plan to merge the two codebases.
<ref>See <jump href="xsltc/index.html">XSLTC Design Documents</jump>.</ref></p>
<p>Since this is the first release of XSLTC on Apache (xml.apache.org), changes are
relative to Preview 5 of XSLTC posted on www.sun.com/xml/developers.</p>
<ul>
<li>Simplified stylesheets are now implemented.</li>
<li>Base package name has changed from <code>com.sun.xslt</code> to <code>org.apache.xalan.xsltc</code></li>
<li>You no longer have to get the BCEL.jar file; it is included in the distribution.</li>
<li>The Project X parser components and APIs have all been replaced with JAXP equivalents.
Consequently, you may deploy XSLTC with JAXP-conformant parsers, such as Xerces or Crimson.</li>
<li>Previously undocumented feature: -x. You can use the -x option on the java command line when you
compile translets or run them to get more detailed information on errors.</li>
<li>Addition of -s to DefaultRun - a new -s option has been added to the DefaultRun class
for use with test auotmation. When you use the option, it prevents System.exit() from being called when
and exception is encountered.</li>
</ul>
</s4>
</s3>
</s2>