<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>