New Branch - WebSite - for prototypes

git-svn-id: https://svn.apache.org/repos/asf/xalan/java/branches/WebSite@1595253 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/README.txt b/README.txt
deleted file mode 100644
index d6fce71..0000000
--- a/README.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Temporary File.
-Attempting to create a new empty branch.
-- Steven J. Hathaway
diff --git a/xalan-j/bugreporting.html b/xalan-j/bugreporting.html
new file mode 100644
index 0000000..c3f5638
--- /dev/null
+++ b/xalan-j/bugreporting.html
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Reporting Bugs</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Reporting Bugs</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>Bug Reporting<br />
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Reporting Bugs</h2>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Before you report a bug</h3>
+  <p>Before you report a bug, please, <b>read</b> the following instructions:</p>
+  <ul>
+  <li>If doubt exists whether the behaviour in question is a bug or a feature, 
+      please post a message to the 
+      <a href="mailto:j-users@xalan.apache.org">j-users@xalan.apache.org</a>
+      list for clarification.</li>
+  <li>To help eliminate duplicate or invalid bug reports, please take a quick look at
+      bugs in JIRA to see whether the bug has been already reported and/or fixed. 
+      You can also download the 
+      <a href="downloads.html">latest code</a>
+      and check if you can reproduce the bug.</li>
+  <li>Report bugs against the newest release.</li>
+  </ul>
+  <p>We strongly encourage you to write patches for problems you find and attach
+     them to your JIRA issue. Being specific in the description of your bug report, and 
+     providing enough information to reproduce the bug will improve the likelihood that 
+     bugs, adding enhancements, and addressing outstanding design issues, we need your 
+     active participation in the ongoing development of Xalan Java.</p>  
+  
+  
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Bugzilla is not used</h3>
+    <p>
+      The old bug tracking system, 
+      <a href="http://issues.apache.org/bugzilla/">bugzilla</a>,
+      is still available but please only use it to look up old bugs.
+      Bugzilla has been replaced by <a href="http://issues.apache.org/jira/browse/XALANJ">JIRA</a>
+      and old bugzilla <b>bugs</b> have been migrated to JIRA as <b>issues</b>.
+    </p>
+  
+  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Report a bug</h3>  
+  <p>After reading the instructions above, click 
+     <a href="http://issues.apache.org/jira/browse/XALANJ">here</a> to submit a bug report using JIRA.
+  </p>
+  <p>
+     Note that the functionality shown by the JIRA user interface changes depending on whether
+     you <b>Log In</b> or not. In particular, to have the <b>CREATE NEW ISSUE</b> link 
+     you will need to click the <b>Log In</b> in small font, in the top right corner
+     of the page and log in.
+  </p>
+  <p>
+     <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">
+       If you had a bugzilla account previously, and had used it with Xalan bugzilla bugs, 
+       your account should be migrated to JIRA. In this case, do not create a new account, 
+       but use the same e-mail account name and click on "Forgot Password" on the JIRA home page.
+     </td>
+</tr>
+</table>
+  </p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/builds.html b/xalan-j/builds.html
new file mode 100644
index 0000000..eab0786
--- /dev/null
+++ b/xalan-j/builds.html
@@ -0,0 +1,691 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Xalan-Java Release builds</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Xalan-Java Release builds</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>Building a release<br />
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Xalan-Java Release builds</h2>
+<ul>
+<li>
+<a href="#intro">Introduction</a>
+</li>
+<li>
+<a href="#developers">Developer Guidelines</a>
+</li>
+<li>
+<a href="#builds">Running Product Builds - Overview</a>
+</li>
+<li>
+<a href="#builds2">Running Product Builds - Details</a>
+</li>
+</ul>
+
+
+<a name="intro">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3>
+  <p>
+    This page is <b>not</b> for users
+    who want to download pre-built jars of Xalan-Java or download 
+    the source code for Xalan-Java and build from that.
+    Users who want to do that 
+    should see the <a href="downloads.html">Download/Build</a> page.
+  </p>
+  <p>
+    This page is intended for Xalan committers and developers and is about the 
+    process to create a new release. It
+    provides a selection of brief checklists for committers and developers 
+    about build procedures for the Xalan-Java community.  Community input 
+    is appreciated; if you have questions, please ask on
+    <a href="contact_us.html">xalan-dev</a>.
+  </p> 
+  <p>
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The product build related sections of this document are still 
+    quite thin - they're mainly bullet points almost in checklist style.  
+    If you don't fully understand the procedures in this document, then 
+    you probably should ask for help first!
+    </td>
+</tr>
+</table> 
+  </p>
+  
+
+
+
+<a name="developers">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Developer Guidelines</h3>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This section is meant to become a set of guidelines for all Xalan-Java
+committers and developers who wish to submit patches.  It's still in progress; 
+suggestions to xalan-dev@xml.apache.org appreciated.</td>
+</tr>
+</table> 
+  <p>The project's technical mailing list for all committers and developers 
+  interested in the API and inner workings is 
+  <a href="mailto:xalan-dev@xml.apache.org">xalan-dev@xml.apache.org</a>; 
+  it's a good idea to 
+  <a href="contact_us.html#dev-mailing-list">subscribe</a>
+  if you plan to work on Xalan-Java.  Logs of all Subversion 
+  commits are automatically sent to <a href="mailto:xalan-cvs@xml.apache.org">xalan-cvs@xml.apache.org</a>, although 
+  discussions should happen on xalan-dev.  You can read more <a href="http://xml.apache.org/mail.html">about mailing lists.</a>
+</p>
+  <p>Xalan-Java is a fairly mature project; one where most committers and many 
+  users expect that the daily build will be mostly functional.  Very risky changes 
+  or major architecture updates should be discussed ahead of time or committed onto 
+  branches.</p> 
+  <p>Developers should always run the Smoketest before checking in files or 
+  submitting patches to the list.  If the Smoketest does not pass, you should 
+  either fix whatever you broke or get consensus from xalan-dev that 
+  it's OK to break the Smoketest temporarily.  The Smoketest is a selection of 
+  API functionality tests and a pass through a wide variety of XSLT conformance 
+  tests that ensure basic functionality.  You can also read a full set of 
+  <a href="http://xml.apache.org/xalan-j/test/overview.html">documentation about the tests</a>.</p>
+  <p>
+  (Smoketest doc is TBD!)
+<blockquote class="source">
+<pre>cvs co xml-xalan/java xml-xalan/test
+cd xml-xalan/java
+build smoketest
+# Ant build will fail if smoketest fails.
+</pre>
+</blockquote>
+</p>
+
+
+<a name="builds">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Running Product Builds - Overview</h3>
+<p>Official builds of Xalan-Java require a few more steps than simply doing 
+'build fulldist'.  This is a quick checklist of the steps; if you are 
+not comfortable following this list, then please seek help on xalan-dev.</p> 
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Release Types</h4>
+<p>Official builds come in several flavors:</p>
+<ul>
+<li>Major version releases: when significant new or changed functionality comes out, 
+we bump up the major build number; i.e. from 2.3 to 3.0.  This is fairly rare; 
+anyone reading xalan-dev will know when this is happening.<br />
+<br />
+</li>
+<li>Minor version releases happen when we fix bugs or make moderate improvements to 
+the product.  These are moving from 2.3 to 2.4; they should be planned out.<br />
+<br />
+</li>
+<li>Maintenance point releases are when we find bugs in an existing version and fix them without 
+adding new functionality; these go from 2.3 to 2.3.1.  They should be done on a 
+branch if the mainline development has already moved forward; the point is to 
+make critical bugfixes for existing customers who want to stay on the stable release.<br />
+<br />
+</li>
+<li>Developer releases are very ad hoc; they represent a chunk of progress along the 
+HEAD of our Subversion tree towards a new major or minor release. The developer release 
+versions would be going from 2.3 to a new 2.4.D1 - the developer release is somewhat 
+like a 'beta' towards a new 2.4 minor version release.  Quality standards for developer 
+releases are much less stringent than other releases.<br />
+<br />
+</li>
+</ul>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Condensed Build Checklist</h4>
+<p>A very brief list of stages in running a build.</p>
+<ol>
+<li>Email xalan-dev with build plan.<br />
+<br />
+</li>
+<li>Verify all code changes are checked in.<br />
+<br />
+</li>
+<li>Verify any doc updates for code changes are in.<br />
+<br />
+</li>
+<li>Update build numbers in doc, code, and build scripts.<br />
+<br />
+</li>
+<li>Do a clean checkout and tag the sources.<br />
+<br />
+</li>
+<li>build fulldist -logfile ..\fulldist.log<br />
+<br />
+</li>
+<li>build fulldist-separatejars -logfile ..\fulldist-separatejars.log<br />
+<br />
+</li>
+<li>Run the smoketest for Xalan Interpretive and XSLTC.<br />
+<br />
+</li>
+<li>Verify smoketest passed; check docs built with new build numbers.<br />
+<br />
+</li>
+<li>PGP/GPG sign all .zip/.tar.gz distribution files (distros).<br />
+<br />
+</li>
+<li>Copy distros up to the website.<br />
+<br />
+</li>
+<li>Update website documentation set.<br />
+<br />
+</li>
+<li>Email xalan-dev with build notice!<br />
+<br />
+</li>
+</ol>
+
+
+
+
+<a name="builds2">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Running Product Builds - Details</h3>
+<p>This section is still in progress, but should have all the basics. 
+You should already have read the <a href="#builds">build overview</a> above and you should already be 
+familiar with our build.xml script and development processes.</p> 
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Pre-Build Steps</h4>
+<p>Preparation before you run a build.</p>
+<ul>
+<li>Email xalan-dev with build plan.</li>
+</ul>
+<p>Apache projects are communities: you should always let the community know what 
+the plans for builds are.  The xalan-dev mailing list is the primary communication 
+mechanisim for committers and developers working on Xalan-Java; you may also wish 
+to cc: the xalan-j-users list to let other users and folks know what's coming. 
+For major releases you may also want to cc: the general@xml.apache.org list so that 
+other xml.apache.org projects know our plans, although this is not required.</p>
+<ul>
+<li>Verify all code changes are checked in.</li>
+</ul>
+<p>Ensure that any code changes you're planning to have in this release are actually 
+checked in; make sure any open work by other committers is in a stable state. 
+You should also review any other projects we're dependent on and make sure 
+that (when possible) we've updated to the latest version of their .jar files: 
+like <code>xercesImpl.jar</code>, <code>ant.jar</code>, etc.  Note that occasionally we will have a specific 
+development need to stay with a different version of these projects.</p>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Updating Doc And Version Numbers</h4>
+<p>Getting documentation and version numbers in sync.</p>
+<ul>
+<li>Verify any doc updates for code changes are in.</li>
+</ul>
+<p>Check that the documentation is up to date.  Make sure that any new 
+features or major functionality changes are properly documented.</p>
+<p>Update the commits list and the 'what was done' list in xdocs/sources/xalan/readme.xml 
+and whatsnew.xml.  Note that currently some of the status information for the 
+XSLTC portion of Xalan-Java is stored separately in xsltc_history.xml and XSLTCDONE
+</p>
+<p>Check in all your work!</p>
+
+<ul>
+<li>Update build numbers in doc, code, and build scripts.</li>
+</ul>
+<p>Once you know what the version number should be, you'll need to update 
+it in a number of places - both for the product itself, for the build 
+system, and for the documentation.  If you don't understand how to update 
+any of these files, then please get help - don't just try to wing it.</p>
+<ul>
+<li>build.xml 
+Update the following lines for each version field:<br />
+&lt;property name="version.VERSION" value="2"/&gt;<br />
+&lt;property name="version.RELEASE" value="7"/&gt;<br />
+&lt;property name="version.DEVELOPER" value=""/&gt;<br />
+&lt;property name="version.MINOR" value="0"/&gt;<br />
+&lt;property name="parser.version.VERSION" value="2"/&gt;<br />
+&lt;property name="parser.version.RELEASE" value="7"/&gt;<br />
+&lt;property name="parser.version.MINOR" value="1"/&gt;<br />
+<br />
+</li>
+<li>xml-xalan/java/xdocs/sources/xalan-jsite (document id="index" label="Xalan-Java x.x")<br />
+<br />
+</li>
+<li>If you updated <code>xercesImpl.jar</code> or <code>xml-apis.jar</code>, add a new entry in
+xml-xalan/java/src/org/apache/xalan/xslt/EnvironmentCheck.java</li>
+</ul>
+<p>I did remind you to check in all your work, didn't I?</p>
+
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Run A Candidate Distribution Build</h4>
+<p>Get clean sources and build a distribution and (at least) the smoketest.</p>
+<ul>
+<li>Do a clean checkout and tag the sources.</li>
+</ul>
+<p>Of course, you checked in all your earlier work to the Subversion repository, right?</p>
+<p>The safest way to perform a build for distribution is to check out a fresh 
+new copy of the repository from Subversion.  This avoids any potential problems with 
+uncommitted changes or extra files on your local machine.</p>
+<p>Check out a new copy of both xml-xalan/java and xml-xalan/test repositories 
+to a blank directory on your local machine.  You then need to tag the files in 
+the repository with a marker noting that these versions are the actual ones 
+being used in the build (you could actually do this after running the build below). 
+Use the Subversion tag command to add the tag to both repositories (/java and /test). 
+The tag name should be something like 'xalan-j_2_4'; look at the log of any file 
+to see the exact format of previous builds.</p>
+
+
+<ul>
+<li>build fulldist site -logfile ..\fulldist.log</li>
+</ul>
+<p>The above command will build the binary and source distribution .zip/.tar.gz 
+files, in which the Xalan Interpretive and Xalan Compiled (XSLTC) processors
+are combined into the <code>xalan.jar</code> file.  All the samples and the documentation
+are built as well. The log of the build is saved in ..\fulldist.log.  Note 
+that this will take up a moderate amount of space, especially when building 
+the .tar.gz files, so ensure you have plenty of disk space first.</p>
+<p>Review the fulldist.log file quickly to ensure there were no build errors.   
+Note that you can ignore any 'warnings' from the javadoc target; however any 
+'error's in the documentation must be fixed.</p>
+
+<ul>
+<li>build fulldist-separatejars site -logfile ..\fulldist-separatejars.log</li>
+</ul>
+<p>Before running this command, rename the generated ./build directory from 
+the 'fulldist' command above to another name, for example, build-combinedjar.  The 
+'fulldist-separatejars' command will build the binary and source distribution 
+.zip/.tar.gz files, in which the Xalan Interpretive and Xalan Compiled (XSLTC) processors
+are built into separate jars; <code>xalan.jar</code> and <code>xsltc.jar</code> respectively.  All the samples and 
+the documentation are built as well.  The log of the build is saved in ..\fulldist-separatejars.log.
+Note that this will take up a moderate amount of space, especially when building the .tar.gz 
+files, so ensure you have plenty of disk space first.</p>
+<p>Review the fulldist-separatejars.log file quickly to ensure there were no build errors.   
+Note that you can ignore any 'warnings' from the javadoc target; however any 
+'error's in the documentation must be fixed.</p>
+<p>The results of the build will be
+placed in the ./build directory.  Rename the xalan-j_2_x_x-bin.zip and xalan-j_2_x_x-bin.tar.gz
+files to xalan-j_2_x_x-bin-2jars.zip and xalan-j_2_x_x-bin-2jars.tar.gz respectively so that 
+this binary distribution can be distinguished from the binary distributions created by the
+'fulldist' target.  The source distributions, xalan-j_2_x_x-src.zip and xalan-j_2_x_x-src.tar.gz
+are duplicates of those created by the 'fulldist' target.</p>
+
+<ul>
+<li>Run the smoketest for Xalan Interpretive and XSLTC.</li>
+</ul>
+<p>Change to the xml-xalan\test directory and build the test harness by entering
+"build jar -logfile jar.log".  Run the smoketest for the Xalan Interpretive processor by
+entering "build smoketest -logfile smoketest.log". Run the smoketest for the XSLTC by
+entering "build smoketest.xsltc -logfile smoketest.xsltc.log". 
+</p>
+
+<ul>
+<li>Verify smoketest passed; check docs built with new build numbers.</li>
+</ul>
+<p>Review the smoketest.log and smoketest.xsltc.log files.  If they do not say
+that the Smoketest passed, then you must fix the test results before 
+posting the build.  Even for developer's builds, we must ensure that at least 
+the Smoketest passes.  For major or minor releases, we should also perform more 
+testing to ensure stability.  More detailed log files for the Smoketest can 
+be found in the xml-xalan/test/smoketest/ directory.</p>
+<p>You should also test that the documentation built properly, and that it 
+has the proper build or release number that you edited above.</p>
+<p>IMPORTANT: if you changed any files at all, be sure to check in your work 
+and re-start this process!</p>
+
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Code Signing and Posting</h4>
+<p>Sign the distribution units so end-users can trust them, then copy to the website.</p>
+<ul>
+<li>PGP/GPG sign all .zip/.tar.gz distribution files (distros).</li>
+</ul>
+<p>As a security measure, all xml.apache.org projects must sign or otherwise 
+ensure the integrity of their public distributions.  This is most commonly done 
+by signing the actual .zip/.tar.gz files with your personal PGP or GPG key. 
+Note that you must sign the files before copying them up to the website.</p>
+<p>The Xalan Java distributions consist of: the source distribution files 
+(xalan-j_x_x_x-src.zip and xalan-j_x_x_x-src.tar.gz) and the two binary distributions 
+files (xalan-j_x_x_x-bin.zip and xalan-j_x_x_x-bin.tar.gz, and xalan-j_x_x_x-bin-2jars.zip 
+and xalan-j_x_x_x-bin-2jars.tar.gz).</p>
+<p>Two prerequisites to signing the distribution are: 1) you must have a 
+personal PGP or GPG key, and 2) the public half of your key must be in the 
+appropriate KEYS file before you begin a build.  If you hadn't previously checked 
+in your public key to the KEYS file before beginning this whole process, you'll 
+have to go back and start again.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">We need some good links on getting <a href="http://web.mit.edu/network/pgp.html">PGP</a> 
+and <a href="http://www.gnupg.org/">GPG</a>, and on actually 
+code signing and verifying signatures.  Jakarta has some, but they're 
+scattered. This would be a good volunteer project for someone.</td>
+</tr>
+</table>
+<p>Sign every .zip and .tar.gz file with your personal key, and make a detached 
+text file with the signature - this will usually create a 
+foo.zip.asc or foo.zip.sig file for each foo.zip file you sign.</p>
+<ul>
+<li>Copy distros up to the website.</li>
+</ul>
+<p>You'll need to copy all of the distros plus all of your 
+detached signature files to the website so people can download them.  Note 
+that apache.org machines generally do not allow inbound ftp, so you'll need to 
+either scp them or login to the apache machines and use scp or pftp from there 
+outbound to some server that you've copied them to.</p>
+<p>(Subject to change as www.apache.org/dist gets ready for mirroring) 
+You'll need to log on to xml.apache.org (which is a separate machine 
+from svn.apache.org) and upload the files to /www/xml.apache.org/xalan-j/dist</p>
+<p>You should also update the distribution directory's html files 
+to note the new build numbers.  Carefully edit the .htaccess file 
+to update the 'Latest Stable Build' and 'Latest Developers Build' lines  
+as needed.  If you don't understand the format of this file, ask for help.</p>
+
+
+
+
+
+  <a name="doc">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Rebuilding the Xalan-Java documentation</h4>
+    <p>Xalan-Java includes a number of XML source files, XSL stylesheets, document type definition (DTD)
+      files, entity relationship (ENT) files, graphics, and a JavaScript file that provide the input for the Xalan-Java
+      HTML User's Guide, and the overview and package-level documents used during the generation of Javadoc.
+    </p>
+    <p>
+      Before rebuilding the documentation there are probably a number of pages
+      that need to be updated, at a minimum consider these:
+      
+      <table border="1">
+        <tr>
+<td class="content" rowspan="1" colspan="1">
+<b>XML source file</b>
+</td>
+<td class="content" rowspan="1" colspan="1">
+<b>Description of contents</b>
+</td>
+</tr>
+        <tr>
+<td class="content" rowspan="1" colspan="1">downloads.xml</td>
+<td class="content" rowspan="1" colspan="1">how to download releases</td>
+</tr>
+        <tr>
+<td class="content" rowspan="1" colspan="1">readme.xml</td>
+<td class="content" rowspan="1" colspan="1">has the release notes for each release (most recent to the oldest release)</td>
+</tr>
+        <tr>
+<td class="content" rowspan="1" colspan="1">whatsnew.xml</td>
+<td class="content" rowspan="1" colspan="1">describes what is new in the latest release</td>
+</tr>
+      </table>
+    <p>
+      For a new release it is quite likely that some information in the
+      <b>whatesnew.xml</b> page needs to be moved into the appropriate
+      section of the <b>readme.xml</b> or release notes page before 
+      updating both of these pages with the information for the new release.
+    </p>  
+    </p> 
+    <p>To rebuild the documentation, you must use the StyleBook tool and the JDK 1.2.2 java and javadoc
+      tools. StyleBook (which uses Xalan and Xerces) is in <code>stylebook-1.0-b2.jar</code>. Some of the document definition files,
+      stylesheets, and resources are stored in xml-site-style.tar.gz, and are unzipped when you run Ant as described
+       below.
+    </p>
+    <p>You can use Ant with the docs target to regenerate the User's Guide and with the javadocs target to regenerate the
+      Javadoc API documentation.
+    </p>
+    <p>
+      When building the Javadoc API documentation, or the HTML pages for
+      the website the following Ant Targets are of interest:
+    </p>
+    <table border="1">
+       <tr>
+<td class="content" rowspan="1" colspan="1">
+<b>Ant Target</b>
+</td>
+<td class="content" rowspan="1" colspan="1">
+<b>What Ant does</b>
+</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">javadocs</td>
+<td class="content" rowspan="1" colspan="1">creates the API documentation</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">serializer.javadocs</td>
+<td class="content" rowspan="1" colspan="1">creates the API documetation for the serializer</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">site</td>
+<td class="content" rowspan="1" colspan="1">creates the HTML pages for the site http://xml.apache.org/xalan-j</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">xalan.apache.org.site</td>
+<td class="content" rowspan="1" colspan="1">creates the HTML pages for the site http://xalan.apache.org</td>
+</tr>
+  </table>
+    
+
+
+
+
+
+
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Post-Build Docs and Email</h4>
+<p>Update the live website doc and let the community know you're done!</p>
+<ul>
+<li>Update website documentation set.</li>
+</ul>
+<p>Now that the distribution is available for downloading, you should also 
+update the static copy of the documentation that's posted to xml.apache.org.  
+</p>
+
+<ul>
+<li>Email xalan-dev with build notice!</li>
+</ul>
+<p>After everything is posted, you need to let the community know that 
+a new build is available.  Write up a short email announcing this with just 
+a couple of the highlights of the new build, and a link to the 
+distribution area.</p>
+
+<p>Make the subject something like:  [ANN] Xalan-J 2.x Point/Developers/Whatever Release posted to xml.apache.org
+and send your email to:  general@xml.apache.org, xalan-dev@xml.apache.org, xalan-j-users@xml.apache.org.  Note 
+that for developers releases, you can omit the general@xml.apache.org address if you 
+don't think it will be of interest to the larger audience.
+</p>
+
+
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/charter.html b/xalan-j/charter.html
new file mode 100644
index 0000000..7fabb5f
--- /dev/null
+++ b/xalan-j/charter.html
@@ -0,0 +1,509 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Xalan Project Charter</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Xalan Project Charter</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>Charter<br />
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Xalan Project Charter</h2>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Xalan Project Charter</h3>
+  <p>The following charter applies to all Xalan projects.</p>
+  
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>1 INTRODUCTION</h3>
+   <p>1.1 Apache Xalan is a collaborative software development project
+      dedicated to providing robust, full-featured, commercial-quality, and
+      freely available XSLT support on a wide variety of platforms. This
+      project is managed in cooperation with various individuals worldwide
+      (both independent and company-affiliated experts), who use the
+      Internet to communicate, plan, and develop XSLT software and related
+      documentation.</p>
+   <p>1.2 This charter briefly describes the mission, history, organization
+      and processes of the project.</p>
+  
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>2 MISSION</h3>
+   <p>2.1 Apache Xalan exists to promote the use of XSLT. We view XSLT
+      (Extensible Stylesheet Language Transformations) as a compelling 
+      paradigm that transforms XML documents, thereby facilitating the
+      exchange, transformation, and presentation of knowledge. The ability
+      to transform XML documents into usable information has great potential
+      to improve the functionality and use of information systems. We intend
+      to build freely available XSLT processing components in order to
+      engender such improvements.</p>
+   <p>2.2 Apache Xalan consists of a set of components that transform XML
+      documents.  Where appropriate, these components plug into other XML
+      components using standard APIs (formal, de facto, or proposed).  The
+      components must be high performance, reliable, and easy to use.  Where
+      inter-related, the components must be part of an underlying architectural
+      orchestration that will allow them to work together without major
+      negotiations or breakage.</p>
+   <p>2.3 We believe that the best way to define this XML transformation
+      architecture is by having both individuals and corporations
+      collaborate on the best possible infrastructure, APIs, code, testing,
+      and release cycles. Components must be vendor neutral and usable as
+      core components for all.</p>
+   <p>2.4 In order to achieve a coherent architecture between Apache Xalan
+      components and other components and applications, standards (formal or
+      de facto) will be used as much as possible for both protocols and
+      APIs. Where appropriate, experiences and lessons learned will be fed
+      back to standards bodies in an effort to assist in the development of 
+      those standards.  We will also encourage the innovation of new
+      protocols, APIs, and components in order to seed new concepts not
+      yet defined by standards.</p>
+  
+  
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>3 HISTORY</h3>
+   <p>3.1 This project was established under the direction of the Apache
+     Software Foundation in October 2004 to facilitate joint open-source
+     development.  Prior to October 2004 this project was a subproject
+     of the Apache XML project.</p>
+  
+  
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>4 TERMS</h3>
+   <p>4.1 The ASF Board.  The management board of the Apache Software 
+      Foundation.</p>
+   <p>4.2 The Project.  The Apache Xalan project; intended to refer to the 
+      source code, website, subprojects, and community that are Apache Xalan.</p>
+   <p>4.3 Subproject.  The Apache Xalan project may have subprojects; a 
+      subproject is responsible for a component or application whose scope
+      is well defined.</p>
+   <p>4.4 Product.  Some deliverable (usually a binary or source package)
+      that a subproject makes available to the public.  Subprojects may have
+      multiple products.</p>
+   <p>4.5 Release.  A specific version of a product.  Subprojects may have
+      multiple releases of a given product.</p>
+   <p>4.6 Contributor.  Anyone who makes a contribution to the development
+      of the Apache Xalan project.</p>
+   <p>4.7 Committer.  The Apache Xalan project has a set of committers.  
+      Committers are contributors who have read/write access to the source
+      code repository.</p>
+   <p>4.8 PMC. The PMC (Project Management Committee) is the group of people
+      that form the entity that makes decisions and controls the project.  
+      Individual people or committers do not control the project.</p>
+       
+  
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>5 THE PROJECT MANAGEMENT COMMITTEE</h3>
+   <p>5.1 The Apache Xalan project is managed by a core group of committers 
+      known as the Project Management Committee [PMC]. Subprojects, if any,
+      much each have at least one representative committer on the PMC.</p>
+   <p>5.2 The activities of the PMC are coordinated by the Chairperson,
+      who is an officer of the corporation and reports to the Apache
+      Board.  The Chairperson will, on the request of the Apache Board, 
+      provide reports to the Board on issues related to the running of 
+      the Apache Xalan project.</p>
+   <p>5.3 The PMC has the following responsibilities:</p>
+   <p>a) Accepting new subproject proposals, formally submitting these
+      proposals for Apache Xalan committer vote, and creating the subproject
+      (see SUBPROJECTS below).  This is done in collaboration with the 
+      Incubator (see <a href="http://incubator.apache.org">http://incubator.apache.org</a>).</p>
+   <p>b) Facilitating code or other donations by individuals or companies,
+      in collaboration with the Incubator.</p>
+   <p>c) Resolving license issues and other legal issues in conjunction with
+      the ASF board.</p>
+   <p>d) Ensuring that administrative and infrastructure work is completed.</p>
+   <p>e) Facilitating relationships among projects and subprojects.</p>
+   <p>f) Facilitating relationships between the Apache Xalan project and the 
+      external world.</p>
+   <p>g) Overseeing Apache Xalan to ensure that the mission defined in this 
+      document is being fulfilled.</p>
+   <p>h) Resolving conflicts within the project.</p>
+   <p>i) Reporting to the ASF board (through the Chair) on the progress
+      of the project.</p>
+   <p>j) Propose new releases of projects or subprojects.  Such proposals pass
+      if 75% of the PMC members vote in agreement.</p>   
+      
+   <p>5.4 A contributor can, at any time, nominate a committer to be on the PMC,
+      by calling for a vote.  If two thirds, or more, of the active committers 
+      vote in agreement then the nomination is given to the PMC.  The person
+      becomes a new PMC member if 75% or more of the PMC members vote in
+      agreement, with no dissenting votes among the PMC members.  This individual
+      should be elected based on merit for the evolution of the project and 
+      demonstration of commitment.</p>
+   <p>5.5 In cases where the subproject is unable to directly provide a 
+      representative on the PMC, another member of the PMC will be required to
+      represent that subproject on the PMC.  This will be strongly discouraged.
+      It is preferable that all subprojects have direct representation on the
+      PMC.</p>
+   <p>5.6 At least every twelve months, or more often if directed by the ASF
+      board, the PMC members will elect a Chairperson from among themselves;
+      the person with the most votes from the other PMC members is recommended
+      to the ASF board for the position of Chairperson, and with the ASF board's
+      approval, becomes the Chairperson for the new term.</p>
+   <p>5.7 Upon agreement by the Apache Board, the recommended Chairperson will,
+      if they are not already, be appointed an officer of the corporation.  See
+      <a href="http://www.apache.org/foundation/bylaws.html">
+      http://www.apache.org/foundation/bylaws.html</a> for more information.</p>
+   <p>5.8 The PMC is responsible for maintaining and updating this charter. 
+      Development must follow the process outlined below, so any change to the 
+      development process necessitates a change to the charter. Proposed changes
+      to this charter by the PMC are passed if 75% or more of the PMC members
+      approve the proposal, with no dissenting votes. However, an active Apache
+      Xalan committer may challenge the change.</p>
+   <p>5.9 An active Apache Xalan committer may challenge a change to this charter
+      proposed by the PMC within two weeks of its proposal.  When challenged the
+      proposed change is passed if within two weeks of the challenge the active
+      committers approve the change with a two-thirds majority vote.</p>
+   <p>5.10 The PMC ultimately makes the decisions for the project, not the individual
+      people.  At any time the PMC can reject patches or other contributions to the
+      project if 75% or more of the PMC members vote to reject the contribution.</p>
+   <p>5.11 A PMC member may resign their membership at any time.  However, in the
+      unlikely event that a member of the PMC becomes disruptive to the process,
+      such as ceasing to take part in PMC votes, the PMC member may be removed from
+      the PMC by a vote among the other PMC members.  The PMC member is removed if
+      75% or more of the other PMC members approve the removal, with no dissenting
+      votes among the other PMC members.</p>
+   <p>5.12 A person remains a PMC member until he or she resigns, is removed by a
+      vote from among the other PMC members, dies or is incapacitated.</p>
+   
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>6 SUBPROJECTS</h3>
+   <p>6.1 A subproject of the Apache Xalan project is responsible for a component 
+      or application whose scope is well defined.  Each subproject has its own set 
+      of developers, and is responsible for approving its own committers. Apache 
+      Xalan is composed of subprojects which fit into one of two categories:</p>
+   <p>(a) An XSLT processor implementation in some particular programming
+      language.  There may be multiple processors for a given language if
+      the API's the processors support are sufficiently dissimilar.  At the
+      time of writing, there is one processor for C++ and two for Java.</p>
+   <p>(b) A set of components which are used in related applications and are
+      tightly bound, usually through internal API's, to one (or more) of the
+      processor subprojects.</p>
+   <p>6.2 A new subproject proposal is submitted to the PMC, and then accepted
+      by a majority Apache Xalan project active committer vote within two weeks
+      after the proposal.</p>
+   <p>6.3 Each subproject must have a set of requirements as well as an
+      up-to-date release plan and design document on its dedicated web page.</p>
+   <p>6.4 It is recommended that each subproject have a smoke-test system
+      that works at least as a basic integration test.</p>
+   <p>6.5 A subproject may be removed if 75% or more of the PMC members approve
+      the proposal, there are no dissenting votes among the PMC members,
+      and no challenges by active Apache Xalan project committers
+      within two weeks after the proposal.
+      A contributor may challenge the proposed removal
+      of a subproject within two weeks of the proposal.
+      In this case the proposed removal is passed if within two weeks of the
+      challenge the active committers approve the removal with a two-thirds
+      majority vote. Any subproject removal is subject to the approval of the
+      ASF board.</p>
+       
+  
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>7 CONTRIBUTORS</h3>
+   <p>7.1 Like all Apache projects, the Apache Xalan project is a
+      meritocracy -- the more work you do, the more you are allowed to do.</p>
+   <p>7.2 People who make regular and substantial contributions may become
+      committers as described below. Contributions include: participating in
+      mailing lists, reporting issues or bugs in issue-records in the Issue Database, 
+      providing patches, and proposing changes to a product.</p>
+   <p>7.3 In order to ensure that all code contained in the Apache Xalan
+      project's code repository is free of licensing, intellectual property and patent
+      issues, any person wishing to contribute a new feature to Apache Xalan must either
+      sign:</p>
+   <p>a) If contributing as an individual, sign the "Individual
+      Contributor License Agreement (CLA)"
+      (<a href="http://www.apache.org/licenses/icla.txt">http://www.apache.org/licenses/icla.txt</a>)
+      and file a copy with the Secretary of the Corporation; or </p>      
+   <p>b) If making the contribution as part of their employment
+      responsibilities, sign the "Corporate CLA (CCLA)", 
+      (<a href="http://www.apache.org/licenses/cla-corporate.txt">http://www.apache.org/licenses/cla-corporate.txt</a>)
+      and file a copy with the Secretary of the Corporation.</p>
+   <p>7.4 If the contribution in question is a small bugfix, the contributor need
+      not sign a CLA, but need only provide the following information, attaching
+      it to the communication containing the patch:</p>
+   <p>a) Name and employer</p>
+   <p>b) Are you the author of the code being contributed?</p>
+   <p>c) Do you have the right to grant the copyright and patent
+      licenses for the contribution that are set forth in the ASF v.2.0
+      license (<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)?</p>
+   <p>d) Does your employer have any rights to code that you have
+      written, for example, through your contract for employment?  If
+      so, has your employer given you permission to contribute the code
+      on its behalf or waived its rights in the code?</p>
+   <p>e) Are you aware of any third-party licenses or other
+      restrictions (such as related patents or trademarks) that could
+      apply to your contribution?  If so, what are they?</p>
+     
+  
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>8 COMMITTERS</h3>
+   <p>8.1 The Apache Xalan project has a set of committers. If there
+      are subprojects, each subproject will also have a set of committers.
+      Committers are contributors who have read/write access to the source code 
+      repository. New committers are added when a contributor is nominated by a 
+      committer and approved by at least 50 percent of the active committers for 
+      that subproject with no opposing votes.  In most cases, new committers will 
+      already be participating in the development process by submitting suggestions
+      and/or fixes via issue-records in the Issue Database or mailing lists.</p>
+   <p>8.2 For the purposes of voting, committers will be classed as "active" or
+      "inactive". Only active committers will be included in the totals used to
+      determine the success or failure of a particular vote.</p>
+   <p>8.3 Committers remain active as long as they are contributing code or
+      posting to the project or subproject mailing lists.  If a committers has
+      neither contributed code nor posted to the mailing lists in 3
+      months, a member of the PMC will e-mail the committer,
+      the project or subproject development list, and the PMC mailing list
+      notifying the committer that they are now in inactive status.</p>
+   <p>8.4 An inactive status will not prevent a committer committing new code
+      changes or posting to the mailing lists.  Either of these activities will
+      automatically re-activate the committer for the purposes of voting.</p>
+     
+  
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>9 INFRASTRUCTURE</h3>
+   <p>9.1 The Apache Xalan project relies on the Apache XML project
+      and the Apache Infrastructure project for the following:</p>
+   <p>a) Issue Database -- This is a system with issue-records,
+      for tracking bugs, issues, features and requests.</p>
+   <p>b) Repository -- The xalan.apache.org project has its set
+      of parts that make up the software, and these parts are
+      managed in a repository. Committers make changes to the source code,
+      documentation and other associated parts that are stored in
+      the repository. Any subproject will have its set of committers
+      for its repository.</p>
+   <p>c) Website -- The website <a href="http://xalan.apache.org">xalan.apache.org</a> 
+      will contain information about the Apache Xalan project and its subprojects,
+      including documentation, downloads of releases, and this charter.</p>
+   <p>d) Mailing Lists -- appropriate mailing lists will be created
+      at the discretion of the PMC. Such mailing lists could
+      for example include: a PMC mailing list, a general mailing list,
+      project or subproject public developer mailing lists,
+      project or subproject public user mailing lists.</p>
+   
+  
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>10 LICENSING</h3>
+   <p>10.1 All contributions to the Apache Xalan project adhere to the "Apache
+      Software Foundation License, Version 2.0"
+      (<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>).
+      All further contributions, including patches, must be made under the same terms.</p>
+   <p>10.2 When a committer is considering integrating a contribution
+      from a contributor who has no CLA on file with the Corporation,
+      it is the responsibility of the committer, in consultation with
+      the PMC, to conduct due diligence on the pedigree of the
+      contribution under consideration; see sections 7.3 and 7.4.  </p>
+       
+  
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>11 THE DEVELOPMENT PROCESS</h3> 
+   <p>11.1 For a committer to commit a change to the MAIN branch of the
+      repository an issue-record must be opened in the "Issue Database"
+      to track the change. The status of the issue must be kept up to date.</p>
+   <p>11.2 No voting is required to commit changes, but one other active 
+      committer must review the changes.  Before the changes are committed, the reviewer
+      must add a comment in the corresponding issue-record indicating that
+      they have reviewed and approve the changes.</p>
+   <p>11.3 Issue-records and reviews are not required for committing changes to
+      other experimental branches (not the MAIN branch) in a repository.</p>
+   
+  
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>12 VOTING</h3>
+   <p>12.1 Unless otherwise stated in this mission, votes cast on Apache Xalan
+      proposals must be made within two weeks of the proposal. A challenge to
+      a proposal must also be made within two weeks of the proposal. Likewise,
+      votes cast on challenges must be cast within two weeks of the challenge.</p>
+   
+  
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>13 RELATIONSHIP TO OTHER APACHE PROJECTS</h3>
+   <p>13.1 The Apache Xalan project should work closely with other Apache
+      projects, such as Xerces and XML, to avoid redundancy
+      and achieve a coherent architecture among Apache Xalan and these
+      projects.</p>
+         
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/commandline.html b/xalan-j/commandline.html
new file mode 100644
index 0000000..fbd0a2e
--- /dev/null
+++ b/xalan-j/commandline.html
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Command-Line Utility</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Command-Line Utility</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>Command Line<br />
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Command-Line Utility</h2>
+<ul>
+<li>
+<a href="commandline_xsltc.html">Command line options for XSLTC</a>
+</li>
+</ul>
+   
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using the Command-Line Utility</h3>
+      <p>To perform a transformation, you can call Xalan-Java from the command line (or script), 
+      an applet, an application, or a servlet (see <a href="usagepatterns.html">Usage Patterns</a>).</p>
+     <p>The org.apache.xalan.xslt.Process main() method provides a command-line interface
+    for performing XSL transformation. To perform a transformation from the command line or a script,
+    do the following:</p>
+ 		<ol>
+    <li>Download Xalan-Java.<br />
+<br />
+</li> 
+    <li>
+<a href="getstarted.html#classpath">Set the Java classpath</a> to include <code>xalan.jar</code>, <code>serializer.jar</code>, <code>xml-apis.jar</code>, and
+    <code>xercesImpl.jar</code> -- or another conformant XML Parser -- (see <a href="usagepatterns.html#plug">Plugging in 
+    the Transformer and XML parser</a>).<br />
+<br />
+</li>
+    <li>Call java and the Process class with the appropriate flags and
+    arguments (described below). The following command line, for example, includes the -IN, -XSL,
+    and -OUT flags with their accompanying arguments -- the XML source document, the XSL
+    stylesheet, and the output file:<br />
+<br />
+    <code>java org.apache.xalan.xslt.Process -IN foo.xml -XSL foo.xsl -OUT foo.out</code>
+    </li>
+</ol>
+    <p>The command line utility can take the following flags and arguments (the flags are case insensitive):</p> 
+      <blockquote class="source">
+<pre>
+                      Common Options
+
+-XSLTC (use XSLTC for transformation)
+-IN inputXMLURL
+-XSL XSLTransformationURL
+-OUT outputFileName
+-V (Version info)
+-EDUMP [optional filename] (Do stackdump on error.)
+-XML (Use XML formatter and add XML header.)
+-TEXT (Use simple Text formatter.)
+-HTML (Use HTML formatter.)
+-PARAM name expression (Set a stylesheet parameter)
+-MEDIA mediaType (use media attribute to find stylesheet associated with a document)
+-FLAVOR flavorName (Explicitly use s2s=SAX or d2d=DOM to do transform)
+-DIAG (Print overall milliseconds transform took)
+-URIRESOLVER full class name (URIResolver to be used to resolve URIs)
+-ENTITYRESOLVER full class name (EntityResolver to be used to resolve entities)
+-CONTENTHANDLER full class name (ContentHandler to be used to serialize output)
+-SECURE (set the secure processing feature to true)
+
+                      Options for Xalan-Java Interpretive
+
+-QC (Quiet Pattern Conflicts Warnings)
+-TT (Trace the templates as they are being called)
+-TG (Trace each generation event)
+-TS (Trace each selection event)
+-TTC (Trace the template children as they are being processed)
+-TCLASS (TraceListener class for trace extensions)
+-L (use line numbers for source document)
+-INCREMENTAL (request incremental DTM construction by setting 
+    http://xml.apache.org/xalan/features/incremental to true)
+-NOOPTIMIMIZE (request no stylesheet optimization proccessing by setting 
+    http://xml.apache.org/xalan/features/optimize to false)
+-RL recursionlimit (assert numeric limit on stylesheet recursion depth)
+
+                      Options for Xalan-Java Compiled (XSLTC)
+
+-XO [optional transletName] (assign the name to the generated translet)
+-XD destinationDirectory (specify a destination directory for translet)
+-XJ jarfile (package translet classes into a jar file of name &lt;jarfile&gt;)
+-XP package (specify a package name prefix for all generated translet classes)
+-XN (enable XSL template inlining into one big method)
+-XX (turn on additional debugging message output)
+-XT (use translet to transform if possible)
+</pre>
+</blockquote>
+      <p>Use <code>-XSLTC</code> if you want to transform with XSLTC. Please refer to 
+      <a href="commandline_xsltc.html">this document</a> for a detailed description on
+      XSLTC related options.</p>
+      <p>Use <code>-IN</code> to specify the XML source document.</p> 
+      <p>Use <code>-XSL</code> to specify the XSL stylesheet file.</p>
+      <p>Use <code>-TEXT</code> if you want the output to include only element values (not element tags with element names and
+      attributes).</p>
+      <p>Use <code>-HTML</code> to write 4.0 transitional HTML (some elements, such as &lt;br&gt;, are
+      not well formed XML).</p>
+      <p>To set stylesheet parameters from the command line, use <br />
+      <code>java org.apache.xalan.xslt.Process -PARAM <b>
+<i>name value</i>
+</b>
+</code>
+</p>
+      <p>The value is passed to the transformer as a String.</p>
+      <p>For information about incremental and optimized stylesheet processing, see <a href="dtm.html#settings">DTM settings</a>.</p>
+      <p>Use <code>-L</code> to obtain access to a SourceLocator that a stylesheet extension can use to get information about the location
+      of nodes in the source document. For more information, see <a href="extensionslib.html#nodeinfo">NodeInfo extension functions</a>
+      and <a href="features.html#source_location">source_location</a>.</p>
+      <p>Use <code>-URIRESOLVER</code> with a fully qualified class name to utilize a custom implementation of the
+      <a href="apidocs/javax/xml/transform/URIResolver.html">URIResolver</a> JAXP interface to resolve URIs for
+       xsl:include, xsl:import, and the document() function.</p>
+       <p>Use <code>-ENTITYRESOLVER</code> with a fully qualified class name to utilize a custom implementation of the
+       <a href="apidocs/org/xml/sax/EntityResolver.html">EntityResolver</a> SAX interface to handle external entity references.</p>
+       <p>Use <code>-CONTENTHANDLER</code> with a fully qualified class name to utilize a custom implementation of the 
+       <a href="apidocs/org/xml/sax/ContentHandler.html">ContentHandler</a> SAX interface to serialize output.
+       If this same class implements the <a href="apidocs/org/xml/sax/ext/LexicalHandler.html">org.xml.sax.ext.LexicalHandler</a>
+       interface and the output method is "xml", it will also receive lexical information about the XML document during serialization.</p>
+       <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">If you want to validate an XML document (verify that it adheres to its DOCTYPE declaration), you can use the 
+       <a href="samples.html#validateutility">Validate utility</a> shipped with Xalan-Java Version 2.7.2.</td>
+</tr>
+</table>
+   
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/commandline_xsltc.html b/xalan-j/commandline_xsltc.html
new file mode 100644
index 0000000..73df6d7
--- /dev/null
+++ b/xalan-j/commandline_xsltc.html
@@ -0,0 +1,471 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Command line options for XSLTC</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Command line options for XSLTC</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Command line options for XSLTC</h2>
+<ul>
+<li>
+<a href="#options">Options</a>
+</li>
+<li>
+<a href="#examples">Examples</a>
+</li>
+<li>
+<a href="#faq">Simple FAQs</a>
+</li>
+<li>
+<a href="#trax">Using options from the JAXP transform APIs</a>
+</li>
+</ul>
+   
+<a name="options">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Options</h3>
+<p>The <code>org.apache.xalan.xslt.Process</code> command line now supports XSLTC for transformation. 
+You can use the new <code>-XSLTC</code> option to enable the XSLTC support.</p> 
+<p>The following existing options can be used with -XSLTC:</p>
+<p>
+<code>-IN, -XSL, -OUT, -V, -EDUMP, -XML, -TEXT, -HTML, -PARAM, <br />
+-MEDIA, -FLAVOR, -DIAG, -URIRESOLVER, -ENTITYRESOLVER,<br />
+-CONTENTHANDLER</code>
+</p>
+
+<p>The following existing options do not work with <code>-XSLTC</code>. If any of them is used 
+with <code>-XSLTC</code>, a message is printed and the option is ignored.</p>
+<p>
+<code>-QC, -TT, -TG, -TS, -TTC, -TCLASS, -L, -INCREMENTAL, <br />
+-NOOPTIMIMIZE, -RL</code>
+</p>
+
+<p>We also have a new set of options for <code>-XSLTC</code>. They are all two letter options. The first 
+letter is X and the second letter is the same as the corresponding option in the XSLTC command line 
+<code>org.apache.xalan.xsltc.cmdline.Compile</code>.</p>
+
+<p>These new options can only be used with <code>-XSLTC</code>. If any of them is used
+with Xalan-Java Interpretive, a message is printed and the option is ignored.</p>
+
+<p>Here is the list of the new options:</p>
+<ul>
+  <li>
+<code>-XO [optional translet_name]</code>
+<br />
+  Assign the name to the generated translet. If the translet_name is omitted, the translet is 
+  generated using the default name (same as the xsl).</li>
+  <li>
+<code>-XD destination_directory</code>
+<br />
+  Specify a destination directory for translet. The generated translet classes will be put 
+  under the specified destination directory.</li>
+  <li>
+<code>-XJ jar_name</code>
+<br />
+  Package translet classes into a jar file of name &lt;jar_name&gt;</li>
+  <li>
+<code>-XP package_name</code>
+<br />
+  Specify a package name prefix for all generated translet classes</li>
+  <li>
+<code>-XN</code>
+<br />
+  Enable XSL template inlining into one big method</li>
+  <li>
+<code>-XX</code>
+<br />
+  Turn on additional debugging message output</li>
+  <li>
+<code>-XT</code>
+<br />
+  Use translet to transform if possible</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The translet name is the same as the name of the Java class that
+implements the translet.  If the name specified by the <code>-XO</code> option
+or derived from the URL for the stylesheet contains characters that are not
+permitted in a Java class name, any such character will be replaced with an
+underscore.  For example, if the translet name specified by the <code>-XO</code>
+option is <code>my-stylesheet</code>, or if the URL of the stylesheet is
+<code>http://example.org/my-stylesheet.xsl</code>, the translet will actually
+be named<code>my_stylesheet</code>.
+</td>
+</tr>
+</table>
+
+
+<a name="examples">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Examples</h3>
+
+<p>You can just add the <code>-XSLTC</code> option to your existing option list so that it will do 
+the same thing as before, but using XSLTC.</p>
+
+<p>Here is a simple example on how to use XSLTC:</p>
+<p>&gt; <code>java org.apache.xalan.xslt.Process -in test.xml -xsl test.xsl -xsltc</code>
+</p>
+<p>XSLTC compiles the stylesheet on the fly and uses the bytecode in memory to transform the input xml. 
+No translet class is generated in this simple usage pattern.</p>
+<p>If you want to generate translet classes from the stylesheet, you can use the <code>-XO</code> option:</p>
+<p>&gt; <code>java org.apache.xalan.xslt.Process -in test.xml -xsl test.xsl -xsltc -xo</code>
+</p>
+
+<p>This example still uses the stylesheet for transformation, but it also generates the 
+translet class "test.class".</p>
+
+<p>You can use the <code>-XJ, -XP</code> or <code>-XD</code> options to further customize the translet 
+generation behavior. Translets will be generated if any of the options <code>-XO, -XJ</code> or 
+<code>-XT</code> is used.</p>
+<p>&gt; <code>java org.apache.xalan.xslt.Process -in test.xml -xsl test.xsl -xsltc -xo newTranslet -xd temp -xp org.apache.test -xj translets.jar</code>
+</p>
+
+<p>The above command line uses the xsl for transformation. It also generates translet classes in
+the name of <code>newTranslet</code>, using a package prefix of <code>org.apache.test</code>, and packages the translets
+into the jar file <code>translets.jar</code> under the <code>temp</code> directory.</p>
+
+<p>All of the examples above use the stylesheet to do the transformation. If the translets are 
+already generated, you can use the <code>-XT</code> option to specify that you want to use the existing translets for transformation. 
+The <code>-XT</code> option has a makefile like feature in that it will compare the timestamps of the translet 
+and the stylesheet. If the translet is newer, it is used for the transformation, otherwise the stylesheet is 
+used and the translet is regenerated.</p>
+
+<p>The translet is loaded from the specified destination directory or the current directory, using
+the specified translet name or the xsl base name, depending on whether the <code>-XD</code> or 
+<code>-XO</code> option is used. The options <code>-XO, -XD, -XP</code> and <code>-XJ</code>
+can be used with the <code>-XT</code> option to tell XSLTC how to find the translet classes. The translets
+are directly read in as bytecode. You do not need to add the translet directory or the jar file to your
+classpath.</p>
+<p>Example:</p>
+<p>&gt; <code>java org.apache.xalan.xslt.Process -in test.xml -xsl test.xsl -xsltc -xt -xj translets.jar -xd temp</code>
+</p>
+
+<p>This command line will search for the translet <code>test.class</code> inside the jar file <code>temp/translets.jar</code>. If it is 
+found and newer than test.xsl, it is used for the transformation; otherwise the xsl is used and the
+translet is generated and packaged in the same jar.</p>
+
+<p>Here is how the makefile feature for the <code>-XT</code> option works:</p>
+<ol>
+  <li>If the xsl does not exist, use the translet</li>
+  <li>If the translet does not exist, use the xsl and generate a new translet</li>
+  <li>If both exist and the translet is newer, use the translet for transformation</li>
+  <li>If both exist and the xsl is newer, use the xsl for transformation and regenerate the translet</li>
+</ol>
+
+
+<a name="faq">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Simple FAQs</h3>
+
+<p>
+<b>Q:</b> If I use the <code>-XT</code> option, how can I tell if it is using the translet or the stylesheet for transformation?</p>
+<p>
+<b>A:</b> Use the <code>-XX</code> option. When XSLTC uses the translet for transformation, you will see a debug 
+message like "Tranform using translet ..." or "Tranform using translet ... from jar file ...".</p>
+
+<p>
+<b>Q:</b> I want to use a translet for transformation, and I don't have the stylesheet.</p>
+<p>
+<b>A:</b> Suppose the translet class is <code>c:\translets\myTranslet.class</code>, you can use the following command line:</p>
+<p>&gt; <code>java org.apache.xalan.xslt.Process -in test.xml -xsltc -xt -xo myTranslet -xd c:\translets</code>
+</p>
+<p>If you use <code>-XT</code> option, the <code>-XSL</code> option can be omitted. You have to specify the translet name 
+using the <code>-XO</code> option because there is no default translet name in this situation.</p>
+
+<p>
+<b>Q:</b> I only want to compile the stylesheet. I don't want to do a transformation.</p>
+<p>
+<b>A:</b> JAXP has no notion of compiling a stylesheet. However, you can achieve the same effect by 
+running a dummy transformation and tell XSLTC to save the translet class. Example:</p>
+<p>&gt; <code>java org.apache.xalan.xslt.Process -xsl test.xsl -xsltc <br />-xo</code>
+</p>
+<p>This command runs a transformation on an empty input and generates the translet <code>test.class</code>.</p>
+
+
+<a name="trax">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using options from the JAXP transform APIs</h3>
+<p>You can use some of the attributes in the <code>TransformerFactoryImpl</code> class of XSLTC to 
+customize the translet behaviors from JAXP.</p>
+
+<p>Here is the list of attributes in <code>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</code> 
+and their corresponding Process command line options:</p>
+
+<table border="1">
+  <tr>
+    <td class="content" rowspan="1" colspan="1">
+<b>Attributes</b>
+</td>
+    <td class="content" rowspan="1" colspan="1">
+<b>Process command line options</b>
+</td>
+    <td class="content" rowspan="1" colspan="1">
+<b>Default values</b>
+</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">translet-name</td>
+    <td class="content" rowspan="1" colspan="1">-XO</td>
+    <td class="content" rowspan="1" colspan="1">GregorSamsa</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">destination-directory</td>
+    <td class="content" rowspan="1" colspan="1">-XD</td>
+    <td class="content" rowspan="1" colspan="1">null</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">package-name</td>
+    <td class="content" rowspan="1" colspan="1">-XP</td>
+    <td class="content" rowspan="1" colspan="1">null</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">jar-name</td>
+    <td class="content" rowspan="1" colspan="1">-XJ</td>
+    <td class="content" rowspan="1" colspan="1">null</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">generate-translet</td>
+    <td class="content" rowspan="1" colspan="1" />
+    <td class="content" rowspan="1" colspan="1">false</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">auto-translet</td>
+    <td class="content" rowspan="1" colspan="1">-XT</td>
+    <td class="content" rowspan="1" colspan="1">false</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">use-classpath</td>
+    <td class="content" rowspan="1" colspan="1" />
+    <td class="content" rowspan="1" colspan="1">false</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">enable-inlining</td>
+    <td class="content" rowspan="1" colspan="1">-XN</td>
+    <td class="content" rowspan="1" colspan="1">false</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">debug</td>
+    <td class="content" rowspan="1" colspan="1">-XX</td>
+    <td class="content" rowspan="1" colspan="1">false</td>
+  </tr>
+</table>
+
+<p>You can set the attributes using the JAXP interface <code>TransformerFactory.setAttribute(String name, Object value)</code>. 
+The four attributes <code>translet-name, destination-directory, package-name and jar-name</code> are transient. 
+They only apply to the next <code>newTemplates()</code> or <code>newTransformer()</code> call. Their values are reset to 
+the default after the call.</p>
+
+<p>The <code>generate-translet</code> attribute does not have a corresponding command line option. This attribute is
+implied when the <code>-XO</code> or <code>-XJ</code> option is used. The purpose is to make the command line
+usage syntax a little bit simpler. Setting the <code>generate-attribute</code> attribute to true from JAXP is 
+equivalent to using the <code>-XO</code> option without the optional translet name from the Process command line.</p>
+
+<p>If the <code>use-classpath</code> attribute is set to <code>true</code>, the translet will be loaded
+from the <code>CLASSPATH</code>. This attribute is typically used in a case when the translets are packaged in a 
+prebuilt jar file which is included in the <code>CLASSPATH</code>. You can set the <code>translet-name</code> attribute 
+to indicate which translet to use. If this attribute is not set, the name of the translet is taken from 
+the base name of the stylesheet. The <code>jar-name</code> attribute is not used in this situation.</p>
+
+<p>The following example shows you how to do the same thing from JAXP for the question 2 in the FAQ.</p>
+
+<blockquote class="source">
+<pre>
+// set the system property javax.xml.transform.TransformerFactory in order to use XSLTC
+String key = "javax.xml.transform.TransformerFactory";
+String value = "org.apache.xalan.xsltc.trax.TransformerFactoryImpl";
+Properties props = System.getProperties();
+props.put(key, value);
+System.setProperties(props);
+
+TransformerFactory tfactory = null;
+try {
+  tfactory = TransformerFactory.newInstance();
+}
+catch (TransformerFactoryConfigurationError pfe) { pfe.printStackTrace(); }
+
+// set the translet name
+tfactory.setAttribute("translet-name", "myTranslet");
+
+// set the destination directory
+tfactory.setAttribute("destination-directory", "c:\\translets");
+
+// use the translet for transformation if possible
+tfactory.setAttribute("auto-translet", "true");
+
+// You can create a Templates object from an empty Source if the translet is specified.
+Templates templates = tfactory.newTemplates(new StreamSource());
+</pre>
+</blockquote>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/contact_us.html b/xalan-j/contact_us.html
new file mode 100644
index 0000000..8c8c091
--- /dev/null
+++ b/xalan-j/contact_us.html
@@ -0,0 +1,271 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Contact us</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Contact us</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>Contact us<br />
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Contact us</h2>
+<ul>
+<li>
+<a href="#contact">Getting in touch</a>
+</li>
+<li>
+<a href="#reporting-bugs">Reporting bugs</a>
+</li>
+<li>
+<a href="#user-mailing-list">User mailing list</a>
+</li>
+<li>
+<a href="#dev-maling-list">Developer mailing list</a>
+</li>
+<li>
+<a href="#subscribe">Subscribe to a mailing list</a>
+</li>
+</ul>
+
+<a name="contact">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Getting in touch</h3>
+  <p>
+    Your feedback is more than welcome. Offers of help are even more so! 
+    Perhaps you would like to 
+    take on an active role in the ongoing development, 
+    testing, and documentation of Xalan-Java?
+  </p> 
+  <p>
+    Please email your comments, questions, suggestions, 
+    and offers to join the Xalan team to <a href="mailto:dev@xalan.apache.org">Xalan Development Mailing List</a>
+    (dev@xalan.apache.org).</p>
+ 
+<a name="reporting-bugs">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Reporting bugs</h3>
+  <p>
+    If you need to contact the Xalan team to report a bug please see
+    this <a href="bugreporting.html">bug reporting page</a>.
+  </p>
+
+
+<a name="user-mailing-list">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>User mailing list</h3>
+  <p>
+    If you think you have encountered a bug, but you aren't sure because 
+    it might be a usage problem, or if you have other questions about Xalan 
+    post a note to
+    <a href="mailto:j-users@xalan.apache.org">j-users@xalan.apache.org</a>
+    This mailing list pertains to only to the Java version of Xalan.
+  </p>
+  <p>
+    To view a history of posts to xalan-j-users you can go to
+    <a href="http://mail-archives.apache.org/mod_mbox/xml-xalan-j-users/">
+    xalan-j-users mail archives at Apache</a> or
+    <a href="http://marc.theaimsgroup.com/?l=xalan-j-users">xalan-j-users mail archives at MARC</a>.
+   </p>
+
+
+<a name="dev-mailing-list">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Developer mailing list</h3>
+  <p>
+    The participating developers of the Xalan meet and discuss issues, 
+    code changes/additions, etc. at 
+    <a href="mailto:dev@xalan.apache.org">dev@xalan.apache.org</a>.
+    This mailing list pertains to both the Java and C++ versions of Xalan.
+  </p>
+  <p>
+    To view a history of posts to xalan-dev you can go to
+    <a href="http://mail-archives.apache.org/mod_mbox/xml-xalan-dev/">
+    xalan-dev mail archives at Apache</a> or
+    <a href="http://marc.theaimsgroup.com/?l=xalan-dev">xalan-dev mail archives at MARC</a>.
+   </p> 
+
+<a name="subscribe">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Subscribe to a mailing list</h3>
+ <p>
+    You may want to subscribe to a mailing list before posting a note, so that if 
+    others post a response to the mailing list you will get copied.
+  </p>
+  <p>
+    To subscribe an email account to the Xalan user mailing list send a note to 
+    j-users-subscribe@xalan.apache.org from that account. To unsubscribe
+    do the same, except replace <b>subscribe</b> with <b>unsubscribe</b>.
+  </p>
+  <p>
+    To subscribe to the Xalan developer mailing list send a note to 
+    dev-subscribe@xalan.apache.org. To unsubscribe
+    do the same, except replace <b>subscribe</b> with <b>unsubscribe</b>.
+  </p> 
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/design/compilation.gif b/xalan-j/design/compilation.gif
new file mode 100644
index 0000000..675d7d4
--- /dev/null
+++ b/xalan-j/design/compilation.gif
Binary files differ
diff --git a/xalan-j/design/conceptual.gif b/xalan-j/design/conceptual.gif
new file mode 100644
index 0000000..283fee5
--- /dev/null
+++ b/xalan-j/design/conceptual.gif
Binary files differ
diff --git a/xalan-j/design/data.gif b/xalan-j/design/data.gif
new file mode 100644
index 0000000..0f28a17
--- /dev/null
+++ b/xalan-j/design/data.gif
Binary files differ
diff --git a/xalan-j/design/design2_0_0.html b/xalan-j/design/design2_0_0.html
new file mode 100644
index 0000000..3f1e570
--- /dev/null
+++ b/xalan-j/design/design2_0_0.html
@@ -0,0 +1,631 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Xalan-J 2.0 Design</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan 2.0.0 Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Xalan-J 2.0 Design</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>Xalan-J 2.0.0 Design<br />
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Xalan-J 2.0 Design</h2>
+  <p>
+<img src="xmllogo.gif" alt="xmllogo.gif" />
+</p>
+  <p>Author: Scott Boag<br />State: In Progress</p>
+  <ul> 
+	   <li>
+<a href="#intro">Introduction</a>
+</li>
+ 	   <li>
+<a href="#requirements">Xalan Requirements</a>
+</li>
+	   <li>
+<a href="#overarch">Overview of Architecture</a>
+</li>
+	   <li>
+<a href="#process">Process Module</a>
+</li>
+	   <li>
+<a href="#templates">Templates Module</a>
+</li>
+	   <li>
+<a href="#transformer">Transformer Module</a>
+</li>
+       <ul>
+         <li>
+<a href="#stree">Stree Module</a>
+</li>
+         <li>
+<a href="#extensions">Extensions Module</a>
+</li>
+     </ul>
+	   <li>
+<a href="#xpath">XPath Module</a>
+</li>
+       <ul>
+<li>
+<a href="#xpathdbconn">XPath Database Connection</a>
+</li>
+</ul>
+	   <li>
+<a href="#utils">Utils Package</a>
+</li>         
+	   <li>
+<a href="#other">Other Packages</a>
+</li>         
+	   <li>
+<a href="#compilation">Xalan Stylesheet Complilation to Java</a>
+</li>
+<li>
+<a href="#optimizations">Future Optimizations</a>
+</li>
+<li>
+<a href="#coding">Coding Conventions</a>
+</li>
+	        
+   <li>
+<a href="../apidocs/index.html">Xalan-J 2.0 Javadoc</a>
+</li>
+  </ul>
+<a name="intro">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3> 
+	 <p>This document presents the basic design for Xalan-J 2.0, which is a
+		<a href="http://www.awl.com/cseng/titles/0-201-89542-0/techniques/refactoring.htm">refactoring</a>
+		and redesign of the Xalan-J 1.x processor.   This document will expand and grow over time, and is also incomplete in some sections, though hopefully overall accurate.  The reader should be able to get a good overall idea of the internal design of Xalan, and begin to understand the process flow, and also the technical challenges.</p> 
+	 <p>The main goals of this redesign are
+		to: </p>
+<ol> 
+		<li>Make the design and code more understandable by Open Source
+		  people.</li> 
+		<li>Reduce code size and complexity.</li>
+		<li>By simplifying the code, make optimization easier.</li> 
+		<li>Make modules generally more localized, and less tangled with other
+		  modules.</li> 
+		<li>Conform to the <a href="http://java.sun.com/aboutJava/communityprocess/jsr/jsr_063_jaxp11.html">javax.xml.transform  (TrAX [Transformations for XML])</a> interfaces.</li> 
+	 <li>Increase the ability to incrementally produce the result tree.</li>
+</ol> 
+	 <p>The techniques used toward these goals are to:</p> 
+	 <ol> 
+		<li>In general, flatten the hierarchy of packages, in order to make the
+		  structure more apparent from the top-level view.</li> 
+		<li>Break the construction and the validation of the XSLT stylesheet from
+		  the stylesheet objects themselves.</li>
+		<li>Drive the construction of the stylesheet through a table, so that it
+		  is less prone to error.</li> 
+		<li>Break the transformation process into a separate package, away from
+		  the stylesheet objects.</li> 
+		<li>Create this design document, as a starting point for people interested in
+		  approaching the code.</li> 
+	 </ol> 
+	 <p>The goals are not:</p> 
+	 <ol> 
+		<li>To add more features in the progress of this refactoring. This is
+		  design and code clean-up in order to meet the above-named goals. We expect that it will be <b>much</b> easier to add
+		  features once this work is completed.</li> 
+		<li>To optimize code for the sake of optimization. However, we
+		  expect that the code will be faster once this work is complete.</li> 
+	 </ol> 
+	 <p>How well we've achieved the goals will be measured by feedback from the
+		<a href="http://archive.covalent.net/">Xalan-dev</a> list, and by software metrics tools.</p> 
+	 <p>Please note that the diagrams in this design document are meant to be
+		useful abstractions, and may not always be exact.</p> 
+  <a name="requirements">‌</a> 
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Xalan Requirements</h3>
+  <p>These are the concrete general requirements of Xalan, as I understand them, and covering both the Java and C++ versions.  These requirements have been built up over time by experience with product groups and general users.</p>
+<ol>
+<li>Java, C++ Versions.</li>
+<li>XSLT 1.0 conformance, and beyond. (i.e. conform to the current W3C recommendation).</li>
+<li>Have design and Code understandable by Open Source Community.</li>
+<li>Ability to interoperate with standard APIs.  (SAX2, DOM2, JAXP)  [this is currently Less of an issue with C++].</li>
+<li>High Performance (Raw performance, Incremental ability, Scaleability to large documents, Reduction of Garbage Collection for the Java version.)</li>
+<li>Tooling API (Access stylesheet data structures, Access source node from result event, Ask runtime questions, Debugging API).</li>
+<li>Support addressing of XML in standalone fashion (i.e. XPath API).</li>
+<li>Extensibility (Ability to call Java, Ability to call JavaScript, other languages).</li>
+<li>Multiple data sources (JDBC, LDAP, other data sources, Direct XML repository coupling).</li>
+</ol>
+<a name="overarch">‌</a> 
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Overview of Architecture</h3> 
+	 <p>The following diagram shows the XSLT abstract processing model.  A transformation expressed in XSLT describes rules for transforming a <a href="http://www.w3.org/TR/xpath#data-model">Source Tree </a> into a result tree. The transformation is achieved by associating patterns with templates. A pattern is matched against elements in the source tree. A template is instantiated to create part of the result tree. The result tree is separate from the source tree. The structure of the result tree can be completely different from the structure of the source tree. In constructing the result tree, elements from the source tree can be filtered and reordered, and arbitrary structure can be added.
+
+</p>
+<p>The term "tree", as used within this document, describes an
+			 abstract structure that consists of nodes or events that may be produced by
+			 XML. A Tree physically may be a DOM tree, a series of well balanced parse
+			 events (such as those coming from a SAX2 ContentHander), a series of requests
+			 (the result of which can describe a tree), or a stream of marked-up
+			 characters.</p>
+<p>
+<img src="xslt_abstract.gif" alt="xslt_abstract.gif" />
+</p>
+<p>The primary interface for Xalan 2.0 external usage is defined in the <a href="../apidocs/javax/xml/transform/package-summary.html#package_description">javax.xml.transform</a> interfaces.  These interfaces define a standard and powerful interface to perform tree-based transformations.</p> 
+	 <p>The internal architecture of Xalan 2.0 is divided into four major modules, and various smaller
+		modules. The main modules are:</p> 
+	 <div class="glossary"> 
+		<p class="label">
+<em>
+<a href="../apidocs/org/apache/xalan/processor/package-summary.html">org.apache.xalan.processor</a>
+</em>
+</p> 
+		<blockquote class="item">The module that processes the stylesheet, and provides the main
+		  entry point into Xalan.</blockquote> 
+	 </div> 
+	 <div class="glossary"> 
+		<p class="label">
+<em>
+<a href="../apidocs/org/apache/xalan/templates/package-summary.html">org.apache.xalan.templates</a>
+</em>
+</p> 
+		<blockquote class="item">The module that defines the stylesheet structures, including the
+		  Stylesheet object, template element instructions, and Attribute Value
+		  Templates. </blockquote> 
+	 </div> 
+	 <div class="glossary"> 
+		<p class="label">
+<em>
+<a href="../apidocs/org/apache/xalan/transformer/package-summary.html">org.apache.xalan.transformer</a>
+</em>
+</p> 
+		<blockquote class="item">The module that applies the source tree to the Templates, and
+		  produces a result tree.</blockquote> 
+	 </div> 
+	 <div class="glossary"> 
+		<p class="label">
+<em>
+<a href="../apidocs/org/apache/xpath/package-summary.html">org.apache.xpath</a>
+</em>
+</p> 
+		<blockquote class="item">The module that processes both XPath expressions, and XSLT Match
+		  patterns.</blockquote> 
+	 </div> 
+	 <p>In addition to the above modules, Xalan implements the
+		<a href="../apidocs/javax/xml/transform/package-summary.html#package_description">javax.xml.transform</a> interfaces, and depends on the
+	 <a href="http://www.megginson.com/SAX/Java/index.html">SAX2</a> and <a href="http://www.w3.org/TR/DOM-Level-2/">DOM</a> packages.
+</p>
+<p>
+<img src="trax.gif" alt="trax.gif" />
+</p>
+<p>There is also a general utilities package that contains both XML utility
+	 classes such as QName, but generally useful classes such as
+	 StringToIntTable.</p> 
+	 <p>In the diagram below, the dashed lines denote visibility. All packages
+		access the SAX2 and DOM packages.</p> 
+	 <p>
+<img src="xalan1_1x1.gif" alt="xalan1_1x1.gif" />
+</p> 
+	 <p>In addition to the above packages, there are the following additional
+		packages:</p> 
+	 <div class="glossary"> 
+		<p class="label">
+<em>
+<a href="../apidocs/org/apache/xalan/client/package-summary.html">org.apache.xalan.client</a>
+</em>
+</p> 
+		<blockquote class="item">This package has a client applet. I suspect this should be moved
+		  into the samples directory.</blockquote> 
+	 </div> 
+	 <div class="glossary"> 
+		<p class="label">
+<em>
+<a href="../apidocs/org/apache/xalan/extensions/package-summary.html">org.apache.xalan.extensions</a>
+</em>
+</p> 
+		<blockquote class="item">This holds classes belonging to the Xalan extensions mechanism,
+		  which allows Java code and script to be called from within a stylesheet.</blockquote>
+		
+	 </div> 
+	 <div class="glossary"> 
+		<p class="label">
+<em>
+<a href="../apidocs/org/apache/xalan/lib/package-summary.html">org.apache.xalan.lib</a>
+</em>
+</p> 
+		<blockquote class="item">This is the built-in Xalan extensions library, which holds
+		  extensions such as Redirect (which allows a stylesheet to produce multiple
+		  output files).</blockquote> 
+	 </div> 
+	 <div class="glossary"> 
+		<p class="label">
+<em>
+<a href="../apidocs/org/apache/xalan/res/package-summary.html">org.apache.xalan.res</a>
+</em>
+</p> 
+		<blockquote class="item">This holds resource files needed by Xalan, such as error message
+		  resources.</blockquote> 
+	 </div> 
+	  
+	 <div class="glossary"> 
+		<p class="label">
+<em>
+<a href="../apidocs/org/apache/xalan/trace/package-summary.html">org.apache.xalan.trace</a>
+</em>
+</p> 
+		<blockquote class="item">This package contains classes and interfaces that allow a caller to
+		  add trace listeners to the transformation, allowing an interface to XSLT
+		  debuggers and similar tools.</blockquote> 
+	 </div> 
+	 <div class="glossary"> 
+		<p class="label">
+<em>
+<a href="../apidocs/org/apache/xalan/xslt/package-summary.html">org.apache.xalan.xslt</a>
+</em>
+</p> 
+		<blockquote class="item">This package holds the Xalan2 command line processor.</blockquote> 
+	 </div> 
+  <p>A more conceptual view of this architecture is as follows:</p>
+<p>
+<img src="conceptual.gif" alt="Picture of conceptual architecture." />
+</p>
+<a name="process">‌</a> 
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Process Module</h3> 
+	 <p>The <a href="../apidocs/org/apache/xalan/processor/package-summary.html">org.apache.xalan.processor</a> module implements the
+		<a href="../apidocs/javax/xml/transform/TransformerFactory.html">javax.xml.transform.TransformerFactory</a> interface, which provides a
+		factory method for creating a concrete Processor instance, and provides methods
+		for creating a <a href="../apidocs/javax/xml/transform/Templates.html">javax.xml.transform.Templates</a> instance, which, in
+		Xalan and XSLT terms, is the Stylesheet. Thus the task of the process module is
+		to read the XSLT input in the form of a file, stream, SAX events, or a DOM
+		tree, and produce a Templates/Stylesheet object.</p> 
+	 <p>The overall strategy is to define a schema in that dictates the legal
+		structure for XSLT elements and attributes, and to associate with those
+		elements construction-time processors that can fill in the appropriate fields
+		in the top-level Stylesheet object, and also associate classes in the templates
+		module that can be created in a generalized fashion. This makes the validation
+		object-to-class associations centralized and declarative.</p> 
+	 <p>The schema's root class is
+		<a href="../apidocs/org/apache/xalan/processor/XSLTSchema.html">org.apache.xalan.processor.XSLTSchema</a>, and it is here that the
+		XSLT schema structure is defined. XSLTSchema uses
+		<a href="../apidocs/org/apache/xalan/processor/XSLTElementDef.html">org.apache.xalan.processor.XSLTElementDef</a> to define elements, and
+		<a href="../apidocs/org/apache/xalan/processor/XSLTAttributeDef.html">org.apache.xalan.processor.XSLTAttributeDef</a> to define attributes.
+		Both classes hold the allowed namespace, local name, and type of element or
+		attribute. The XSLTElementDef also holds a reference to a
+		<a href="../apidocs/org/apache/xalan/processor/XSLTElementProcessor.html">org.apache.xalan.processor.XSLTElementProcessor</a>, and a sometimes a
+		<code>Class</code> object, with which it can create objects that derive from
+		<a href="../apidocs/org/apache/xalan/templates/ElemTemplateElement.html">org.apache.xalan.templates.ElemTemplateElement</a>. In addition, the
+		XSLTElementDef instance holds a list of XSLTElementDef instances that define
+		legal elements or character events that are allowed as children of the given
+		element.</p> 
+	 <p>The implementation of the <a href="../apidocs/javax/xml/transform/TransformerFactory.html">javax.xml.transform.TransformerFactory</a>
+		interface is in <a href="../apidocs/org/apache/xalan/processor/TransformerFactoryImpl.html">org.apache.xalan.processor.TransformerFactoryImpl</a>,
+		which creates a <a href="../apidocs/org/apache/xalan/processor/StylesheetHandler.html">org.apache.xalan.processor.StylesheetHandler</a>
+		instance. This instance acts as the ContentHandler for the parse events, and is
+		handed to the <a href="../apidocs/org/xml/sax/XMLReader.html">org.xml.sax.XMLReader</a>, which the StylesheetProcessor
+		uses to parse the XSLT document. The <code>StylesheetHandler</code> then receives the parse
+		events, which maintains the state of the construction, and passes the events on
+		to the appropriate <code>XSLTElementProcessor</code> for the given event, as dictated by the
+		<code>XSLTElementDef</code> that is associated with the given event.</p> 
+	 <a name="templates">‌</a> 
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Templates Module</h3> 
+	 <p>The <a href="../apidocs/org/apache/xalan/templates/package-summary.html">org.apache.xalan.templates</a> module implements the
+		<a href="../apidocs/javax/xml/transform/Templates.html">javax.xml.transform.Templates</a> interface, and defines a set of
+		classes that represent a Stylesheet. The primary purpose of this module is to
+		hold stylesheet data, not to perform procedural tasks associated with the
+		construction of the data, nor tasks associated with the transformation itself.
+		</p> 
+	 <p>The base class of all templates objects that are associated with an XSLT element is the <a href="../apidocs/org/apache/xalan/templates/ElemTemplateElement.html">ElemTemplateElement</a> object, which in turn implements <a href="../apidocs/org/apache/xml/utils/UnImplNode.html">UnImplNode</a>.  A <code>ElemTemplateElement</code> object must be immutable once it's constructed, so that it may be shared among multiple threads concurrently.  Ideally, a <code>ElemTemplateElement</code> should be a data object only, and be used via a visitor pattern.  However, in practice this is impractical, because it would cause too much data exposure and would have a significant impact on performance.  Therefore, each <code>ElemTemplateElement</code> class has an <a href="../apidocs/org/apache/xalan/templates/ElemTemplateElement.html#execute(org.apache.xalan.transformer.TransformerImpl, org.w3c.dom.Node, org.apache.xml.utils.QName)">execute</a> method where it performs it's transformation duties.  A <code>ElemTemplateElement</code> also knows it's position in the source stylesheet, and can answer questions about current namespace nodes.</p>
+<p>A <a href="../apidocs/org/apache/xalan/templates/StylesheetRoot.html">StylesheetRoot</a>, which implements the
+		<code>Templates</code> interface, is a type of <a href="../apidocs/org/apache/xalan/templates/StylesheetComposed.html">StylesheetComposed</a>,
+		which is a <a href="../apidocs/org/apache/xalan/templates/Stylesheet.html">Stylesheet</a> composed of itself and all included
+		<code>Stylesheet</code> objects. A <code>StylesheetRoot</code> has a global
+		imports list, which is a list of all imported <code>StylesheetComposed</code>
+		instances. From each <code>StylesheetComposed</code> object, one can iterate
+		through the list of directly or indirectly included <code>Stylesheet</code>
+		objects, and one call also iterate through the list of all
+		<code>StylesheetComposed</code> objects of lesser import precedence.
+		<code>StylesheetRoot</code> is a <code>StylesheetComposed</code>, which is a
+		<code>Stylesheet</code>.</p> 
+	 <p>Each stylesheet has a set of properties, which can be set by various
+		means, usually either via an attribute on xsl:stylesheet, or via a top-level
+		xsl instruction (for instance, xsl:attribute-set). The get methods for these
+		properties only access the declaration within the given <code>Stylesheet</code>
+		object, and never takes into account included or imported stylesheets. The
+		<code>StylesheetComposed</code> derivative object, if it is a root
+		<code>Stylesheet</code> or imported <code>Stylesheet</code>, has "composed"
+		getter methods that do take into account imported and included stylesheets, for
+		some of these properties.</p> 
+	  
+  <a name="transformer">‌</a> 
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Transformer Module</h3> 
+	 <p>The <a href="../apidocs/org/apache/xalan/transformer/package-summary.html">Transformer</a> module is in charge of run-time transformations.  The <a href="../apidocs/org/apache/xalan/transformer/TransformerImpl.html">TransformerImpl</a> object, which implements the TrAX <a href="../apidocs/javax/xml/transform/Transformer.html">Transformer</a> interface, and has an association with a <a href="../apidocs/org/apache/xalan/templates/StylesheetRoot.html">StylesheetRoot</a> object, begins the processing of the source tree (or provides a <a href="http://www.megginson.com/SAX/Java/javadoc/org/xml/sax/ContentHandler.html">ContentHandler</a> reference via the <a href="../apidocs/org/apache/xalan/stree/SourceTreeHandler.html">SourceTreeHandler</a>), and performs the transformation.  The Transformer package does as much of the transformation as it can, but element level operations are generally performed in the <a href="../apidocs/org/apache/xalan/templates/ElemTemplateElement.html#execute(org.apache.xalan.transformer.TransformerImpl, org.w3c.dom.Node, org.apache.xalan.utils.QName)">ElemTemplateElement.execute(...)</a> methods.</p>
+<p>Result Tree events are fed into a <a href="../apidocs/org/apache/xalan/transformer/ResultTreeHandler.html">ResultTreeHandler</a> object, which acts as a layer between the direct calls to the result 
+tree content handler (often a <a href="../apidocs/org/apache/xalan/serialize/package-summary.html">Serializer</a>), and the <code>Transformer</code>.  For one thing, 
+ we have to delay the call to
+ startElement(name, atts) because of the
+ xsl:attribute and xsl:copy calls.  In other words,
+ the attributes have to be fully collected before you
+ can call startElement.</p>
+<p>Other important classes in this package are:</p>
+<div class="glossary">
+<p class="label">
+<em>CountersTable and Counter</em>
+</p>
+<blockquote class="item">The <a href="../apidocs/org/apache/xalan/transformer/Counter.html">Counter</a> class does incremental counting for support of xsl:number.
+ This class stores a cache of counted nodes (m_countNodes). 
+  It tries to cache the counted nodes in document order... 
+ the node count is based on its position in the cache list.  The <a href="../apidocs/org/apache/xalan/transformer/CountersTable.html">CountersTable</a> class is a table of counters, keyed by <a href="../apidocs/org/apache/xalan/templates/ElemNumber.html">ElemNumber</a> objects, each 
+ of which has a list of <code>Counter</code> objects.</blockquote>
+</div>
+<div class="glossary">
+<p class="label">
+<em>KeyIterator, KeyManager, and KeyTable</em>
+</p>
+<blockquote class="item">These classes handle mapping of keys declared with the xsl:key element.  They attempt to work incrementally, locating nodes on request but indexing all as they traverse the tree, and stopping when the requested node is found.  If a requested node is not found, then the entire tree will be traversed.  Such is the nature of xsl:key.</blockquote>
+</div>
+<div class="glossary">
+<p class="label">
+<em>TransformState</em>
+</p>
+<blockquote class="item">This interface is meant to be used by a consumer of SAX2 events produced by Xalan, and enables the consumer 
+ to get information about the state of the transform.  It 
+ is primarily intended as a tooling interface.</blockquote>
+</div>
+<p>Even though the following modules are defined in the <code>org.apache.xalan</code> package, instead of the transformer package, they are defined in this section as they are mostly related to runtime transformation.</p>
+<a name="stree">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Stree Module [and discussions about streaming]</h4>
+  <p>The Stree module implements the default <a href="http://www.w3.org/TR/xpath#data-model">Source Tree </a> for Xalan, that is to be transformed.  It implements read-only <a href="http://www.w3.org/TR/DOM-Level-2/">DOM2</a> interfaces, and provides some information needed for fast transforms, such as document order indexes.  It also attempts to allow an incremental transform by launching the transform on a secondary thread as soon as the SAX2 <a href="http://www.megginson.com/SAX/Java/javadoc/org/xml/sax/ContentHandler.html#startDocument()">StartDocument</a> event has occurred.  When the transform requests a node, and the node is not present, the getFirstChild and GetNextSibling methods will wait until the child node has arrived, or an <a href="http://www.megginson.com/SAX/Java/javadoc/org/xml/sax/ContentHandler.html#endElement(java.lang.String,%20java.lang.String,%20java.lang.String)">endElement</a> event has occurred.</p>
+<p>Note that the secondary thread is an issue.  It would be better to do the same thing as described above on a single thread, but using the parser in 'pull' mode, or simply with a parseNext method so the parse would occur in blocks.  However, this model would only be possible</p>
+<p>This kind of incrementality is not perfect because it still requires an entire source tree to be concretely built.  There have been a lot of good discussions on the xalan-dev list about how to do static analysis of a stylesheet, and be able to allocate only the nodes needed by the transform, while they are needed (or not allocate source objects at all).</p>
+<a name="serializer">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Serializer Module</h4>
+<p>XML serialization is a term used for turning a tree or set of events into a stream, and should not be confused with Java object serialization.  The Xalan serializers implement the <a href="http://www.megginson.com/SAX/Java/javadoc/org/xml/sax/ContentHandler.html">ContentHandler</a> to turn parser events coming from the transform, into a stream of XML, HTML, or plain text.  The serializers also implement the <a href="../apidocs/org/apache/xml/serializer/Serializer.html">Serializer</a> which allows the transform process to set XSLT output properties and the output stream or Writer.</p>
+<a name="extensions">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Extensions Module</h4>
+<p>This package contains an implementation of Xalan Extension Mechanism, which uses the <a href="http://oss.software.ibm.com/developerworks/opensource/bsf/">Bean Scripting Framework</a>.
+
+The Bean Scripting Framework (BSF) is an architecture for incorporating scripting into Java applications and applets.  Scripting languages such as Netscape Rhino (Javascript), VBScript, Perl, Tcl, Python, NetRexx and Rexx can be used to augment XSLT's functionality.  In addition, the Xalan extension mechanism allows use of Java classes.  See the <a href="http://xml.apache.org/xalan/extensions.html">Xalan-J 2 extension documentation</a> for a description of using extensions in a stylesheet. Please note that the W3C XSL Working Group is working on a specification for standard extension bindings, and this module will change to follow that specification.  </p>
+<p>[More needed... -sb]</p>
+<a name="xpath">‌</a> 
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XPath Module</h3> 
+	 <p>This module is pulled out of the Xalan package, and put in the org.apache package, to emphasize that the intention is that this package can be used independently of the XSLT engine, even though it has dependencies on the Xalan utils module.</p>
+<p>
+<img src="org_apache.gif" alt="xalan ---&gt; xpath" />
+</p> 
+  <p>The XPath module first compiles the XPath strings into expression trees, and then executes these expressions via a call to the XPath execute(...) function.  </p>  <p>Major classes are:</p>
+<div class="glossary">
+<p class="label">
+<em>XPath</em>
+</p>
+<blockquote class="item">Represents a compiled XPath.  Major function is <code>XObject execute(XPathContext xctxt, Node contextNode, 
+                         PrefixResolver namespaceContext)</code>.</blockquote>
+</div>
+<div class="glossary">
+<p class="label">
+<em>XPathAPI</em>
+</p>
+<blockquote class="item">The methods in this class are convenience methods into the
+ low-level XPath API.</blockquote>
+</div>
+<div class="glossary">
+<p class="label">
+<em>XPathContext</em>
+</p>
+<blockquote class="item">Used as the runtime execution context for XPath.</blockquote>
+</div>
+<div class="glossary">
+<p class="label">
+<em>DOMHelper</em>
+</p>
+<blockquote class="item">Used as a helper for handling DOM issues.  May be subclassed to take advantage 
+   of specific DOM implementations.</blockquote>
+</div>
+<div class="glossary">
+<p class="label">
+<em>SourceTreeManager</em>
+</p>
+<blockquote class="item">bottlenecks all management of source trees.  The methods
+ in this class should allow easy garbage collection of source 
+ trees, and should centralize parsing for those source trees.</blockquote>
+</div>
+<div class="glossary">
+<p class="label">
+<em>Expression</em>
+</p>
+<blockquote class="item">The base-class of all expression objects, allowing polymorphic behaviors.</blockquote>
+</div>
+<p>The general architecture of the XPath module is divided into the compiler, and categories of expression objects.</p>
+<p>
+<img src="xpath.gif" alt="xpath modules" />
+</p>
+<p>The most important module is the axes module.  This module implements the DOM2 <a href="http://www.w3.org/TR/DOM-Level-2/traversal.html#Iterator-overview">NodeIterator</a> interface, and is meant to allow XPath clients to either override the default behavior or to replace this behavior.</p>
+<p>The <a href="../apidocs/org/apache/xpath/axes/LocPathIterator.html">LocPathIterator</a> and <a href="../apidocs/org/apache/xpath/axes/UnionPathIterator.html">UnionPathIterator</a> classes implement the <a href="http://www.w3.org/TR/DOM-Level-2/java-binding.html#org.w3c.dom.traversal.NodeIterator">NodeIterator</a> interface, and polymorphically use <a href="../apidocs/org/apache/xpath/axes/AxesWalker.html">AxesWalker</a> derived objects to execute each step in the path.  The whole trick is to execute the <code>LocationPath</code> in depth-first document order so that nodes can be found without necessarily looking ahead or performing a breadth-first search.  Because a document order depth-first search requires state to be saved for many expressions, the default operations create "Waiter" clones that have to wait while the main <code>AxesWalkers</code> traverses child nodes (think carefully about what happens when a "//foo/baz" expression is executed).   Optimization is done by implementing specialized iterators and <code>AxesWalkers</code> for certain types of operations.  The decision as to what type of iterator or walker will be created is done in the <a href="../apidocs/org/apache/xpath/axes/WalkerFactory.html">WalkerFactory</a> class.</p>
+<p>[Frankly, the implementation of the default AxesWalker, with it's waiters, is the one totally incomprehensible part of Xalan.  It gets especially difficult because you can not look to the node ahead.  I would be very interested if any rocket scientists out there can come up with a better algorithm.]</p>
+<a name="xpathdbconn">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>XPath Database Connection</h4>
+<p>An important part of the XPath design in both Xalan 1 and Xalan 2, is to enable database connections to be used as drivers directly to the XPath <a href="http://www.w3.org/TR/xpath#location-paths">LocationPath</a> handling.  This allows databases to be directly connected to the transform, and be able to take advantage of internal indexing and the like.  While in Xalan 1 this was done via the <a href="http://xml.apache.org/xalan/apidocs/org/apache/xalan/xpath/XLocator.html">XLocator</a> interface, in Xalan 2 this interface is no longer used, and has been replaced by the DOM2 <a href="http://www.w3.org/TR/DOM-Level-2/traversal.html#Iterator-overview">NodeIterator</a> interface.  An application or extension should be able to install their own NodeIterator for a given document.</p>
+<p>
+<img src="data.gif" alt="data.gif" />
+</p>
+<p>[More to do]</p>
+<a name="utils">‌</a> 
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Utils Package</h3> 
+  <p>This package contains general utilities for use by both the xalan and xpath packages.</p>
+<a name="other">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Other Packages</h3> 
+	 <div class="glossary">
+<p class="label">
+<em>client</em>
+</p>
+<blockquote class="item">Implementation of Xalan Applet [should we keep this?].
+
+</blockquote>
+</div> 
+		 
+		 
+		<div class="glossary">
+<p class="label">
+<em>lib</em>
+</p>
+<blockquote class="item">Implementation of Xalan-specific extensions.</blockquote>
+</div>
+<div class="glossary">
+<p class="label">
+<em>res</em>
+</p>
+<blockquote class="item">Contains strings that require internationalization.</blockquote>
+</div>
+<a name="compilation">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Xalan Stylesheet Complilation to Java</h3>
+<p>We are doing some work on compiling stylesheet objects to Java.  This is a work in progress, and is not meant for general use yet.  For the moment, we are writing out Java text files, and then compiling them to bytecodes via javac, rather than directly producing bytecodes.  The CompilingStylesheetProcessor derives from TransformerFactoryImpl to produce these classes, which are then bundled into a jar file.  For the moment the full Xalan jar is required, but we're looking at ways to only use a subset of Xalan, so that only a minimal jar would be required.</p>
+<p>
+<img src="compilation.gif" alt="compilation.gif" />
+</p>
+<a name="optimizations">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Future Optimizations</h3>
+<p>This section enumerates some optimizations that we're planning to do in future versions of Xalan.</p>
+<p>Likely near term optimizations (next six months?):</p>
+<ol>
+<li>By pre-analysis of the stylesheet, prune nodes from the tree that have been processed and can be predicted that they won't be visited again.</li>
+<li>Eliminate redundent expressions (xsl:when, variable sets, rooted patterns, etc.).</li>
+<li>Optimize variable patterns such as &lt;xsl:variable name="foo"&gt;&lt;xsl:variable select="yada"/&gt;&lt;/xsl:variable&gt; into &lt;xsl:variable name="foo" select="string(yada)"/&gt;, in order to reduce result tree fragment creation.</li>
+<li>Reduce size of Stree nodes.</li>
+<li>Implement our own NamespaceSupport class (the SAX2 one is too expensive).</li>
+<li>More specialization of itterators and walkers.</li>
+<li>Full Java compilation support.</li>
+<li>Schema Awareness (if "//foo", the Schema can tell us where to look, but we need standard interface to Schemas).</li>
+</ol>
+<p>Likely longer term optimizations (12-18 months?):</p>
+<ol>
+<li>On-the-fly indexing.</li>
+<li>Predict if nodes won't be processed at all, and so don't build them, achieve full streaming support for a certain class of stylesheets.</li>
+</ol>
+<a name="coding">‌</a> 
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Coding Conventions</h3> 
+	 <p>This section documents the coding conventions used in the Xalan
+		source.</p> 
+	 <ol> 
+		<li>Class files are arranged with constructors and possibly an init()
+		  function first, public API methods second, package specific, protected, and
+		  private methods following (arranged based on related functionality), member
+		  variables with their getter/setter access methods last.</li> 
+		<li>Non-static member variables are prefixed with "m_".</li> 
+		<li>static final member variables should always be upper case, without
+		  the "m_" prefix. They need not have accessors.</li> 
+		<li>Private member variables that are not accessed outside the class need
+		  not have getter/setter methods declared.</li> 
+		<li>Private member variables that are accessed outside the class should
+		  have either package specific or public getter/setter methods declared. All
+		  accessors should follow the bean design patterns.</li> 
+		<li>Package-scoped member variables, public member variables, and
+		  protected member variables should not be declared.</li> 
+	 </ol> 
+  <a name="open">‌</a> 
+  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/design/org_apache.gif b/xalan-j/design/org_apache.gif
new file mode 100644
index 0000000..105f264
--- /dev/null
+++ b/xalan-j/design/org_apache.gif
Binary files differ
diff --git a/xalan-j/design/process.gif b/xalan-j/design/process.gif
new file mode 100644
index 0000000..c7a871e
--- /dev/null
+++ b/xalan-j/design/process.gif
Binary files differ
diff --git a/xalan-j/design/resources/Xalan-Logo-tm.png b/xalan-j/design/resources/Xalan-Logo-tm.png
new file mode 100644
index 0000000..9a08808
--- /dev/null
+++ b/xalan-j/design/resources/Xalan-Logo-tm.png
Binary files differ
diff --git a/xalan-j/design/resources/Xalan-Logo.txt b/xalan-j/design/resources/Xalan-Logo.txt
new file mode 100644
index 0000000..7886950
--- /dev/null
+++ b/xalan-j/design/resources/Xalan-Logo.txt
@@ -0,0 +1,85 @@
+
+The XALAN Logo
+
+Graphic: A stylized version of the African Xalam instrument.
+
+
+
+TEXT FONTS SIZE AND STYLE:
+
+TM (trademark)
+
+	Font: Arial
+	Size: 14pt
+	Style: Bold)
+
+XSLT
+
+	Font: Arial
+	Size: 22pt
+	Style: Bold
+
+Apache Software Foundation
+
+	Font: Arial
+	Size: 18pt
+	Style: Bold
+	Note: 2 space characters between words
+
+Xalan	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-C	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-J	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+
+INSTRUMENT GRAPHIC (vector equations)
+
+	Vertical Width:		0.75 inch (3/4)
+	HorizontalLength:	3.667 inch (3 2/3)
+
+	Oval on the left,
+	neck and butt on the right.
+
+	Oval Width:		0.75 inch (3/4)
+	Oval Length:		1.583 inch (1 7/12)
+
+	Neck Width:		0.167 inch (1/6)
+
+	Butt Width:		0.25 inch (1/4)
+	Butt Length:		0.417 inch (5/12)
+
+
+Description of instrument logo
+
+	Oval: simulation of a gourd sound chamber
+	With orange gradation hues
+
+	Neck: rectangle simulating a round fingerboard
+	With yellow-green gradation hues
+
+	Butt: rounded rectangle simulating end of neck
+	With olive-green hue
+
+	String Anchor:  rounded rectangle on the gourd
+	With olive-green hue
+
+	2 strings: the full length from Anchor to Butt
+
+	2 strings: tied to neck, at 1/2 length from Anchor to Butt
+
+	3 Loose Tie Strings on the Butt, simulating tuning anchors
+
+	
\ No newline at end of file
diff --git a/xalan-j/design/resources/Xalan-Trademark.txt b/xalan-j/design/resources/Xalan-Trademark.txt
new file mode 100644
index 0000000..0bd3704
--- /dev/null
+++ b/xalan-j/design/resources/Xalan-Trademark.txt
@@ -0,0 +1,106 @@
+
+The XALAN Logo - Trademark Description
+--------------------------------------
+
+Prepared By:  
+
+	Steven J. Hathaway
+
+	(shathaway@apache.org)
+
+	September 3, 2011
+
+
+
+Prepared for:
+
+	The Apache Software Foundation
+
+--------------------------------------
+
+Graphic: A stylized version of the African Xalam instrument.
+
+Note: the difference in spelling.
+
+	Xalam is the African Musical Instrument
+	Xalan is the Apache Xalan Software Project
+
+
+TEXT FONTS SIZE AND STYLE:
+
+TM (trademark symbol)
+
+	Font: Arial
+	Size: 14pt
+	Style: Bold)
+
+XSLT
+
+	Font: Arial
+	Size: 22pt
+	Style: Bold
+
+Apache Software Foundation (trademark name)
+
+	Font: Arial
+	Size: 18pt
+	Style: Bold
+	Note: 2 space characters between words
+
+Xalan	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-C	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-J	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+
+INSTRUMENT GRAPHIC (vector equations)
+
+	Vertical Width:		0.75 inch (3/4)
+	HorizontalLength:	3.667 inch (3 2/3)
+
+	Oval on the left,
+	neck and butt on the right.
+
+	Oval Width:		0.75 inch (3/4)
+	Oval Length:		1.583 inch (1 7/12)
+
+	Neck Width:		0.167 inch (1/6)
+
+	Butt Width:		0.25 inch (1/4)
+	Butt Length:		0.417 inch (5/12)
+
+
+Description of instrument logo
+
+	Oval: simulation of a gourd sound chamber
+	With orange gradation hues
+
+	Neck: rectangle simulating a round fingerboard
+	With yellow-green gradation hues
+
+	Butt: rounded rectangle simulating end of neck
+	With olive-green hue
+
+	String Anchor:  rounded rectangle on the gourd
+	With olive-green hue
+
+	2 strings: the full length from Anchor to Butt
+
+	2 strings: tied to neck, at 1/2 length from Anchor to Butt
+
+	3 Loose Tie Strings on the Butt, simulating tuning anchors
+
+	
\ No newline at end of file
diff --git a/xalan-j/design/resources/XalanJ-Logo-tm.png b/xalan-j/design/resources/XalanJ-Logo-tm.png
new file mode 100644
index 0000000..cab93a7
--- /dev/null
+++ b/xalan-j/design/resources/XalanJ-Logo-tm.png
Binary files differ
diff --git a/xalan-j/design/resources/apache-xalan.css b/xalan-j/design/resources/apache-xalan.css
new file mode 100644
index 0000000..fc2fa1a
--- /dev/null
+++ b/xalan-j/design/resources/apache-xalan.css
@@ -0,0 +1,414 @@
+/* Xalan-C/C++ Project Web Pages (css) Stylesheet */

+

+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements. See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership. The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the  "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+*/

+

+/* This (css) stylesheet renders the xhtml web pages that were generated

+ * from StyleBook XML markup using the "xalan-book.xslt" transformation.

+*/

+

+html > bod  {left:0;}

+body {

+/*  background-color: white; */

+  background-color: #f8f8f0;

+  color: black;

+  padding: 0;

+  margin: 0;

+  font-family: arial, "lucida console", san-serif;

+}

+

+/* Emulate table align=center */

+div.centered, td.centered {

+  text-align: center;

+}

+

+div.centered table {

+  margin: 0 auto;

+  text-align: left;

+}

+

+/*

+ * ID Sections

+ */

+

+#content {

+  width: 80%;

+  float: left;

+  font-size: 12pt;

+  padding-top: 1em;

+  padding-left: 5px;

+  margin-left: 10px;

+  border-left: 1px solid #aaa;

+}

+

+#navLeft {

+  clear: left;

+  width: 15%;

+  float: left;

+  padding: 2px;

+  margin-left: 1%;

+  color: red;

+  position: relative;

+  left: 1px;

+  background-color: #eee;

+}

+

+.navGroup {

+  color: Black;

+  font-size: 14pt;

+}

+

+

+#title {

+  color: black;

+  background-color: #eee;

+  text-align: center;

+  border-bottom: 1px solid #aaa;

+  padding: 0;

+  vertical-align: middle;

+}

+

+table.HdrTitle {

+  font-size: 18pt;

+}

+

+table.HdrButtons {

+  font-size: 8pt;

+  background-color: #ccf;

+  align: "center";

+  border: "1";

+

+}

+

+#footer {

+    clear: both;

+    margin: 0 2em;

+    color: #444;

+    background-color: #ddd;

+    text-align: center;

+    padding: .5em 0;

+    font-size: 75%;

+    border-top: 1px solid #aaa;

+}

+

+/*

+ * Anchors

+ */

+

+a {

+  color: blue;

+  text-decoration: undedrline;

+}

+

+a img {

+  border: 0;

+}

+

+a:hover {

+  text-decoration: none;

+  background-color: #d7c9c9;

+}

+

+/*

+ * Headers

+ */

+

+h1 {}

+

+#title h1 {

+  padding: 1px 0;

+  margin: 0;

+  float: right;

+  width: 60%;

+  font-size: 20pt;

+  text-align: center;

+}

+

+#content h1 { background-color: #8af }

+

+h2 {}

+

+#title h2 {

+  font-size: 14pt;

+  width: 60%;

+  text-alignment: center;

+  padding: 1px 0;

+  margin: 0;

+}

+

+#content h2 { background-color: #9bf }

+

+#content h2.year {

+  background-color: #ddd;

+  text-align: center;

+}

+

+h3 {}

+

+#content h3.monthName {

+  background-color: #333;

+  text-align: center;

+}

+

+#content h3 { background-color: #acf }

+

+h4{}

+

+#content h4.eventTitle {

+  margin-left: 1%;

+  border-bottom: 1px solid blue;

+}

+

+#content h4 { background-color: #cdf }

+

+/*

+ * Tables

+ */

+

+th {}

+

+td {}

+

+th.content {background-color: #4BD }

+td.content {background-color: #AEF }

+

+/*

+ * Lists and navLeft

+ */

+

+ul {}

+

+#navLeft ul {

+  list-style-type: none;

+  margin: 0;

+  padding: 0;

+}

+

+#navLeft ul li {

+  margin: 0;

+}

+

+#navLeft ul li p {

+  margin: 0;

+}

+

+#navLeft ul li ul {

+  list-style-type: none;

+  font-size: 90%;

+  margin: 0 2em;

+}

+

+#navLeft ul li ul li {

+  margin: 0;

+}

+

+/*

+ * Paragraphs

+ */

+

+p {}

+

+#navLeft p {

+  text-align: center;

+  padding: 0 auto;

+  margin: 0;

+}

+

+#footer p {

+  padding: 0;

+}

+

+#content p.topalign {

+  vertical-align: middle;

+  height: 2em;

+  text-align: center;

+  width: 100%;

+  padding: .5em;

+  border: 1px solid #ddd;

+}

+

+#content p.topalign img {

+  vertical-align: middle;

+  text-align: text-middle;

+}

+

+#content p.quote {

+  color:black;

+  font-style: italic;

+  font-size: 110%;

+  margin-left: 10%;

+  margin-right: 10%;

+  padding 1em;

+  border: 1px solid #ddd;

+  text-align: center;

+}

+

+#content p.navbar {

+  font-size: 90%;

+  text-align: center;

+  border-top: 1px solid #ddd;

+  border-bottom: 1px solid #ddd;

+}

+

+blockquote {}

+

+blockquote.note {

+  font-size: 80%;

+  border: 1px solid #ddd;

+  background-color: #eee;

+}

+

+td.noteImg {

+  background-color: white;

+  border: 0;

+}

+

+td.noteTxt {

+  background-color: white;

+  font-size: 120%;

+  border: 2px solid #ddd;

+  background-color: #eee;

+}

+

+/**

+ ** UNSPECIFIED IN APACHE STYLEBOOK DTD

+ ** <caution>..</caution> and <warning>..</warning>

+ **

+ * 

+ * td.cautionImg {

+ *   background-color: white;

+ *   border: 0;

+ * }

+ * 

+ * td.cautionTxt {

+ *   background-color: white;

+ *   font-size: 120%;

+ *   border: 2px solid #ddd;

+ *   background-color: #eee;

+ * }

+ * 

+ * 

+ * td.warningImg {

+ *   background-color: white;

+ *   border: 0;

+ * }

+ * 

+ * td.warningTxt {

+ *   background-color: white;

+ *   font-size: 120%;

+ *   border: 2px solid #ddd;

+ *   background-color: #eee;

+ * }

+ * 

+**/

+

+

+blockquote.source {

+  font-size: 75%;

+}

+

+code {

+  font-size: 75%;

+}

+

+

+/*

+ * Special Table (note)

+ */

+

+#notediv div { background-color: white }

+

+table.note {

+  width: 90%;

+}

+

+td.noteImg {

+  background-color: white;

+  vertical-align: top;

+  border: 0;

+  width: 24;

+}

+

+td.noteTxt {

+  color: black;

+  background-color: #eee;

+  font-size: 90%;

+  border: 2px solid;

+  border-color: #ccc;

+}

+

+

+/*

+ * Images

+ */

+

+img {}

+

+

+#footer img {

+  border: 0;

+}

+

+

+/*

+ * Document Divisions

+ */

+

+div {}

+

+/*

+ * Pre

+ */

+

+pre {}

+

+

+/*

+ * Generic Classes

+ */

+

+.indented {

+  margin-left: 3%;

+}

+

+.topBanner {

+  float: right;

+  margin: 0;

+  border: 0;

+  vertical-align: middle;

+}

+

+.noborder {

+  border: 0;

+  margin: 0;

+}

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

diff --git a/xalan-j/design/resources/asf_logo.png b/xalan-j/design/resources/asf_logo.png
new file mode 100644
index 0000000..66c34f0
--- /dev/null
+++ b/xalan-j/design/resources/asf_logo.png
Binary files differ
diff --git a/xalan-j/design/resources/note.gif b/xalan-j/design/resources/note.gif
new file mode 100644
index 0000000..3394222
--- /dev/null
+++ b/xalan-j/design/resources/note.gif
Binary files differ
diff --git a/xalan-j/design/trax.gif b/xalan-j/design/trax.gif
new file mode 100644
index 0000000..8eb9614
--- /dev/null
+++ b/xalan-j/design/trax.gif
Binary files differ
diff --git a/xalan-j/design/xalan.gif b/xalan-j/design/xalan.gif
new file mode 100644
index 0000000..ca4a57c
--- /dev/null
+++ b/xalan-j/design/xalan.gif
Binary files differ
diff --git a/xalan-j/design/xalan1_1x1.gif b/xalan-j/design/xalan1_1x1.gif
new file mode 100644
index 0000000..c9e1536
--- /dev/null
+++ b/xalan-j/design/xalan1_1x1.gif
Binary files differ
diff --git a/xalan-j/design/xmllogo.gif b/xalan-j/design/xmllogo.gif
new file mode 100644
index 0000000..b63188d
--- /dev/null
+++ b/xalan-j/design/xmllogo.gif
Binary files differ
diff --git a/xalan-j/design/xpath.gif b/xalan-j/design/xpath.gif
new file mode 100644
index 0000000..cf28f9c
--- /dev/null
+++ b/xalan-j/design/xpath.gif
Binary files differ
diff --git a/xalan-j/design/xslt_abstract.gif b/xalan-j/design/xslt_abstract.gif
new file mode 100644
index 0000000..fa041a6
--- /dev/null
+++ b/xalan-j/design/xslt_abstract.gif
Binary files differ
diff --git a/xalan-j/downloads.html b/xalan-j/downloads.html
new file mode 100644
index 0000000..cf4f021
--- /dev/null
+++ b/xalan-j/downloads.html
@@ -0,0 +1,632 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Download/Build &amp; Dependencies</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Download/Build &amp; Dependencies</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>Download/Build<br />
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Download/Build &amp; Dependencies</h2>
+<ul>
+  <li>
+<a href="#latest-release">Downloading the latest release</a>
+</li>
+  <li>
+<a href="#download">Downloading what else you might need</a>
+</li>
+  <li>
+<a href="#whereis_xml4j">Where do I get Xerces-Java? </a>
+</li>
+  <li>
+<a href="#viewcode">How do I view Xalan code in a browser?</a>
+</li>
+  <li>
+<a href="#buildmyself">How do I download the latest development code to build myself?</a>
+</li>
+  <li>
+<a href="#using-ant">Using ant</a>
+</li>
+  <li>
+<a href="#samples">Rebuilding a sample application</a>
+</li>
+  <li>
+<a href="#previous-releases">Where do I download previous releases?</a>
+</li>
+</ul>
+<a name="latest-release">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Downloading the latest release</h3>
+  <p> You can download the pre-built binary distributions from one of the
+      mirror sites at <a href="http://www.apache.org/dyn/closer.cgi/xalan/xalan-j">xalan-j distribution directory</a>.
+  </p>
+  
+  <p>Xalan-J has two processors, 
+  an interpretive one, Xalan Interpretive, and a compiled one, Xalan Compiled (XSLTC).
+  Your choice of which binary distribution to download depends on which
+  of the processors you want to use.
+  There are 2 binary distributions available; you only need to choose one of them.  
+  Both binary distributions contain <code>xml-apis.jar</code> and <code>xercesImpl.jar</code> from <a href="http://xerces.apache.org/xerces2-j/index.html">Xerces-Java 2.11.0</a>.</p>
+  <ul>
+    <li>The first binary distribution, <code>xalan-j_2_7_2-bin.zip</code> or 
+      <code>xalan-j_2_7_2-bin.tar.gz</code>,
+      contains the Xalan Interpretive processor, the Xalan Compiled processor (XSLTC) and the 
+      runtime support packages in a single jar, called <code>xalan.jar</code>.
+      The reason to use this distribution would be that you don't know
+      which processor you are going to use, or might be using both.
+    </li>
+<br />
+<br />
+    <li>The second binary distribution, <code>xalan-j_2_7_2-bin-2jars.zip</code> or 
+      <code>xalan-j_2_7_2-bin-2jars.tar.gz</code>
+      contains the Xalan Interpretive processor in <code>xalan.jar</code>, and the Xalan Compiled 
+      processor (XSLTC) and the runtime support packages in <code>xsltc.jar</code>.
+      The reason to using this distribution is that you want more control.
+      If you are using just XSLTC you can put <code>xsltc.jar</code> on the classpath
+      and not <code>xalan.jar</code>. If you are using just the interpretive processor
+      you can put xalan <code>xalan.jar</code> on the classpath and not <code>xsltc.jar</code>. Of course
+      you can put both <code>xalan.jar</code> and <code>xsltc.jar</code> from this distribution
+      on your classpath if you want to use both.
+    </li>
+  </ul>  
+
+  
+  <p>
+    We provide two distributions: a binary distribution, and a source distribution.
+    You can also download a source distribution from one of the same
+    mirror sites at <a href="http://www.apache.org/dyn/closer.cgi/xalan/xalan-j">xalan-j distribution directory</a>. The difference
+    is that a binary distribution contains <b>-bin</b> in its name,
+    whereas a source distribution contain <b>-src</b> in its name.
+  </p>
+
+   <p>To use Xalan-Java, you need the following which are available from
+      either a binary or source distribution:</p> 
+  <ul>
+    <li>
+<code>xml-apis.jar</code> JAXP APIs</li>
+    <li>
+<code>xercesImpl.jar</code> (or another <a href="usagepatterns.html#plug">XML Parser</a>)</li>
+    <li>
+<code>xalan.jar</code>
+</li>
+    <li>
+<code>xsltc.jar</code> the XSLTC processor, if you choose a 2jars distribution</li>
+    <li>
+<code>serializer.jar</code> which are the serializer classes of
+    Xalan-Java</li>
+  </ul>
+  <p>  
+    If you have downloaded a binary distribution, you already have a build 
+    (you have the jars). This is also true for a source distribution, however
+    if you downloaded a source distribution, 
+    you have the option to use Ant to build Xalan-Java, 
+    including <code>xalan.jar</code>, <code>xsltc.jar</code>, <code>serializer.jar</code>
+    and other things, see <a href="#using-ant">Using Ant</a> for more
+    details.
+  </p>  
+    
+    
+
+<a name="download">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Downloading what else you might need</h3>
+  <p>To use Xalan-Java, you need the following:</p> 
+  <ul>
+    <li>The JDK or JRE 1.3.x, 1.4.x, or 5.x</li>
+  </ul>
+  <p>
+    You can get the JDK or JRE from <a href="http://www-128.ibm.com/developerworks/java/jdk/index.html">
+    IBM developerWorks</a> or <a href="http://www.java.sun.com">java.sun.com</a>.
+  </p> 
+  <p>If you plan to run <a href="extensions.html">XSLT extensions</a> 
+     through extension functions or elements, and you want to implement
+     that support in languages
+     other than Java, then you will need an implementation of the Bean Scripting Framework (BSF).
+     An open source implementation is available for download from Apache.  See the 
+     <a href="http://jakarta.apache.org/bsf/index.html">Apache Jakarta
+     BSF project</a>. If you plan to run XSLT extensions implemented in scripting 
+     languages, you will need <code>bsf.jar</code> and one or more additional files as indicated in 
+     <a href="extensions.html#supported-lang">extensions language requirements</a>.
+  </p>
+
+
+<a name="whereis_xml4j">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Where do I get Xerces-Java?</h3>
+  <p>
+    The Xalan-Java Version 2.7.2 has been tested with Xerces-Java 2.11.0.
+  </p>
+  <p>
+<b>Important:</b> You may experience unpredictable anomalies
+    if your Xalan-Java and Xerces-Java builds are not in synch.
+    If you download an update to Xalan-Java, check the
+    <a href="readme.html">release notes</a>
+    to determine which version of Xerces-Java you should use.
+  </p>
+  <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">
+    You can use Xalan-Java with other XML parsers that implement
+    the <a href="https://jaxp.java.net/">Java API for XML Processing (JAXP) 1.3</a>. 
+    See <a href="usagepatterns.html#plug">Plugging in the Transformer and XML parser</a>.
+  </td>
+</tr>
+</table>
+  <p>
+    The Xalan-Java download includes <code>xercesImpl.jar</code> from Xerces-Java 2.11.0. In conjunction with <code>xml-apis.jar</code>, 
+    this is all you need to run Xalan-Java with the Xerces-Java XML parser. You can, however, download the 
+    complete Xerces-Java binary or source distribution from the <a href="http://www.apache.org/dyn/closer.cgi/xerces/j/">xerces-j distribution directory</a>.
+    If you cannot find Xerces-Java 2.11.0 at that location, have a look at the 
+    <a href="http://archive.apache.org/dist/xml/xerces-j/">Apache archive location for
+    Xerces Java</a>.
+  </p>
+  <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">
+    If you plan to use a different XML parser, see <a href="usagepatterns.html#plug">Plugging 
+    in a Transformer and XML parser</a>.
+  </td>
+</tr>
+</table> 
+
+
+<a name="viewcode">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>How do I view Xalan code in a browser?</h3>
+  <p>
+    If you wish to view some of Xalan's files in a browser without downloading the
+    whole project you can view it at
+    <a href="http://svn.apache.org/viewvc/xalan/">http://svn.apache.org/viewvc/xalan/</a>
+    or at
+    <a href="http://svn.apache.org/repos/asf/xalan/">http://svn.apache.org/repos/asf/xalan/</a>.  
+    The link with "viewvc" in it is slightly prettier.
+  </p>
+  <p>
+    The java/trunk and test/trunk subdirectories are the ones with the latest development code.  
+  </p>
+
+
+
+<a name="buildmyself">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>How do I download the latest development code to build myself?</h3>
+  <p>
+    If you have downloaded a source distribution, or obtained source code
+    using subversion, this section may be of interest to you.
+  </p>
+  <p>
+    If you wish to download Xalan and build it yourself, perhaps because you want to 
+    apply a patch and test it, you will need a subversion client and anonymous access
+    to the repository.
+    Don't worry, everyone has anonymous access.
+    You can find pre-built binaries of subversion clients for different
+    operating systems here:
+    <a href="http://subversion.tigris.org/project_packages.html#binary-packages">
+    http://subversion.tigris.org/project_packages.html#binary-packages</a>.
+    See 
+    <a href="http://www.apache.org/dev/version-control.html">
+    http://www.apache.org/dev/version-control.html
+    </a> for more information on Apache and subversion.    
+  </p>
+  <p>
+    Once the subverion client is installed on your local machine you
+    can use the command line client program <b>svn</b>
+    to get the latest Xalan-J using a command line something like this:
+    <blockquote class="source">
+<pre>
+    svn checkout http://svn.apache.org/repos/asf/xalan/java/trunk java    
+    </pre>
+</blockquote>
+    where the argument after <b>checkout</b> is the Subversion repository location,
+    in this case the location of the latest development code, and the last argument,
+    in this case <b>java</b> is the location of the local directory that the repository is
+    copied to.   
+  </p>
+  <p>
+    Similarly for the test harness, you can download the latest test harness with a Subversion command
+    something like this:
+    <blockquote class="source">
+<pre>
+    svn checkout http://svn.apache.org/repos/asf/xalan/test/trunk test    
+    </pre>
+</blockquote>  
+  </p>
+  <p>
+    Those two commands will put a copy of the latest parts in the local
+    directories <b>java</b> and <b>test</b>,
+    which are sibling directories.  If you
+    want to test your build with
+    the test harness provided with Xalan then it is easiest if you keep the
+    local directory names
+    as suggested. With your paths set up to compile Java code, go into the local <b>java</b>
+    directory and issue these two commands:
+    <blockquote class="source">
+<pre>
+  build clean
+  build  
+  </pre>
+</blockquote>
+  </p>
+  <p>
+  The <b>build.bat</b> batch file, or <b>build.sh</b> shell script (depending on
+  your operating system use <b>ant</b> and the buildfile <b>build.xml</b>. See
+  the section <a href="#jar">Using ant</a> for more information.
+  </p>
+  <p>
+  Other useful targets may be <code>xsltc.jar</code> or <code>serializer.jar</code>.
+  If you want to test the jars you just built in the directory <b>java/build</b>, change to
+  directory <b>test</b> and issue this command:
+  <blockquote class="source">
+<pre>
+  build jar
+  build smoketest
+    </pre>
+</blockquote>
+    The first target, <b>jar</b> builds the test harness and only needs to be done
+    once after the <b>test</b> repository is checked out. The second target, <b>smoketest</b>,
+    runs the Xalan-J intepretive smoketest. 
+    Running the <b>build smoketest</b> or other targets in the <b>test</b> directory
+    automatically looks for the jars in the directory <b>../java/build</b>
+    and that is why it is easiest to download the projects into suggested sibling
+    directories with the given names.
+  </p>
+  <p>
+    Towards the end of the console output you will see <b>two CONGRATULATIONS!</b> messages if all
+    goes well. The end of the console output should look like this:
+    <blockquote class="source">
+<pre>
+    .
+    .
+    .
+minitest-pass:
+     [echo]  [minitest] CONGRATULATIONS! The Minitest passed!
+     [echo]  [minitest] See details in smoketest/Minitest.xml
+
+smoketest-notpass:
+
+smoketest-pass:
+     [echo]  [minitest] CONGRATULATIONS! The Smoketest passed!
+     [echo]  [minitest] Details are in smoketest/results-conf.xml, smoketest/results-api.xml, smoketest/extensions/results-extensions.xml
+
+smoketest:
+
+BUILD SUCCESSFUL
+Total time: 2 minutes 4 seconds
+build completed! 
+    </pre>
+</blockquote>
+  </p>
+  <p>
+    Don't be fooled by the <b>BUILD SUCCESSFUL</b> messages, look for the two CONGRATULATIONS!
+    messages. If you run the smoketest for XSLTC with <b>build smoketest.xsltc</b> you wil
+    only get one CONGRATULATIONS! message if all goes well.
+  </p>  
+
+
+<a name="using-ant">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using Ant To Build</h3>
+    <p>
+      If you have downloaded a source distribution, or obtained source code
+      using subversion, this section may be of interest to you.
+    </p>
+       
+     <p>Apache <a href="http://jakarta.apache.org/ant/index.html">Ant</a> is a flexible, powerful, and easy-to-use Java build tool that we include with the
+     Xalan-Java distribution. The Ant JAR file is in the tools directory, and the cross-platform XML build file (build.xml) is in 
+     the root directory along with a Windows32 batch file (build.bat) and a UNIX shell file (build.sh). The build file defines 
+     the "targets" that you can use Ant to build. The batch and shell files set up the classpath and launch Ant with the target 
+     (and any other arguments) you provide.</p>
+     <p>
+<b>Instructions for using Ant</b>
+</p>
+     <ol>
+       <li>Set the JAVA_HOME environment variable to the JDK root directory.<br />
+<br />
+       JDK 1.3.1 or higher is required to build Xalan-Java. You must put <code>tools.jar</code> from the JDK
+       bin directory on the classpath.<br />
+<br />
+</li>
+       <li>Depending on your environment, run the batch file (build.bat) or shell file (build.sh) 
+       from the Xalan-Java root directory, optionally with arguments (see the table of targets below).<br />
+<br />
+       The batch/shell file adds several JAR files to the classpath and launches Ant with any arguments 
+       you provide. If you provide no target, Ant compiles the source files and rebuilds <code>xalan.jar</code> 
+       (the "jar" target).</li>
+     </ol>
+     
+     <p>The Xalan-Java source code tree is in the src directory.
+     </p>
+     <p>
+       If you are using Ant, the target is jar (the default). 
+     </p>
+     
+     <p>You can also set up your classpath manually (see build.bat or build.sh for the details), and 
+     then run Ant as follows:<br />
+<br />
+     <code>java org.apache.tools.ant.Main <b>
+<i>target</i>
+</b>
+</code>
+<br />
+<br />
+     where <b>
+<i>target</i>
+</b> is nothing (for the default target) or one of the following.</p>
+     <table border="1">
+       <tr>
+<td class="content" rowspan="1" colspan="1">
+<b>Ant Target</b>
+</td>
+<td class="content" rowspan="1" colspan="1">
+<b>What Ant does</b>
+</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">compile</td>
+<td class="content" rowspan="1" colspan="1">compiles Xalan-Java in build/classes.</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">jar (the default)</td>
+<td class="content" rowspan="1" colspan="1">creates xalan.jar and serializer.jar in the build directory</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">serializer.jar</td>
+<td class="content" rowspan="1" colspan="1">creates serializer.jar in the build directory</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">xsltc.jar</td>
+<td class="content" rowspan="1" colspan="1">creates xsltc.jar in the build directory</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">samples</td>
+<td class="content" rowspan="1" colspan="1">compiles and jars the sample apps in build/xalansamples.jar</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">servlet</td>
+<td class="content" rowspan="1" colspan="1">compiles and jars the sample servlet in build/xalanservlet.jar</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">docs</td>
+<td class="content" rowspan="1" colspan="1">creates the HTML User's Guide in build/docs</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">javadocs</td>
+<td class="content" rowspan="1" colspan="1">generates the API documentation in ./build/docs/apidocs</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">fulldist</td>
+<td class="content" rowspan="1" colspan="1">generates a complete distribution tree with zip and tar.gz distribution files in build</td>
+</tr>
+       <tr>
+<td class="content" rowspan="1" colspan="1">clean</td>
+<td class="content" rowspan="1" colspan="1">purges the build and distribution</td>
+</tr> 
+  </table>
+  <p>If you build a target that depends on other targets, Ant creates those other targets in the correct order.
+  </p>
+  <p>
+<b>Building without Ant</b>
+</p>
+  <p>If you want to do the build without Ant, keep the following in mind:
+  </p>
+     <ul>
+     <li>Set the classpath to include the src directory, <code>xercesImpl.jar</code>, and <code>xml-apis.jar</code>.</li>
+     <li>Use a Java compiler (such as the IBM Just-In-Time compiler or the Sun javac) to compile all the .java files in the src
+     tree. </li>
+     <li>Use the <code>jar</code> utility to store the resulting .class files in <code>xalan.jar</code>
+</li>
+     </ul>
+
+
+
+<a name="samples">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Rebuilding a sample application</h3>
+   <p>If you modify a sample and want to recompile it, you can run the Java compiler in the directory containing the
+   example. Be sure <code>xalan.jar</code>, <code>serializer.jar</code>, <code>xml-apis.jar</code>, and <code>xercesImpl.jar</code> are on the classpath. </p>
+   <p>To recompile and run the class files in the servlet subdirectory, the javax.servlet and 
+   javax.servlet.http packages must also be on the classpath. These packages are available via
+   the <code>servlet.jar</code> file found in Apache Tomcat ( see <a href="http://tomcat.apache.org/">The Jakarta Site - Apache Tomcat</a> ).</p>
+   <p>After recompiling a sample, you can use the jar utility to place your new .class files in
+    <code>xalansamples.jar</code>.</p>
+    <p>You can use Ant with the samples target to recompile the samples and place the unpackaged class files in <code>xalansamples.jar</code>.
+     For more information, see <a href="#ant">Using Ant</a>.</p>
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">To rebuild (and to run) the sample servlet, the javax.servlet and javax.servlet.http packages must be on your
+    classpath.</td>
+</tr>
+</table>
+
+
+<a name="previous-releases">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Where do I download previous releases?</h3>
+  <p>
+    To access previous releases, see the <a href="http://archive.apache.org/dist/xalan/xalan-j/">xalan-j archive directory</a>.
+  </p>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/dtm.html b/xalan-j/dtm.html
new file mode 100644
index 0000000..5cf815f
--- /dev/null
+++ b/xalan-j/dtm.html
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Xalan-Java DTM</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Xalan-Java DTM</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>DTM<br />
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Xalan-Java DTM</h2>
+<ul>
+  <li>
+<a href="#intro">Introduction</a>
+</li>
+  <li>
+<a href="#settings">Performance settings</a>
+</li>  
+</ul>
+<a name="intro">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3>
+  <p>The Document Table Model (DTM) is an interface to a Document Model designed specifically for 
+  the needs of our XPath and XSLT implementations. The motivation behind this model is to optimize 
+  performance and minimize storage.</p>
+  <p>Specifically, DTM avoids the overhead of instantiating the objects the standard DOM requires to 
+  represent a tree of nodes. DTM uses unique integer "handles" to identify nodes, integer ID values 
+  to represent URLs, local names, and expanded names, and integer index and length references to a 
+  string buffer to represent the text value of each node.</p>
+  <p>In general, the "read" APIs to DTM resemble those of the W3C Document Object Model 
+  (<a href="http://www.w3.org/DOM">DOM</a>) interface. However, in place of the DOM object tree of nodes, DTM 
+  uses integer arrays and string pools to represent the structure and content of the XML document to 
+  be transformed. DTM also structures the document's contents slightly differently, to better match 
+  the XPath data model; some details and constraints present in a standard DOM are suppressed, and a 
+  few XPath-specific features are added.</p>
+  <p>DTM is intended to be a read-only model, and so does not attempt to replicate the DOM's write or 
+  create-node operations.</p> 
+  <p>The details of constructing a DTM vary depending on which implementation of this API you are 
+  using. Two reference implementations are currently available:</p>
+  <ul>
+    <li>SAX2DTM (built via a SAX stream)</li>
+    <li>DOM2DTM (which provides DTM access to an existing DOM)</li>
+  </ul> 
+  <p>Both DTMs can be built incrementally (see <a href="#incremental">incremental transforms</a>). 
+  When operating incrementally, the DTM allows the Xalan-Java processor to begin reading the DTM and 
+  performing the transformation while the DTM is still being assembled (for example, while the parser 
+  is still parsing the XML source), and attempts to do only as much work as is needed to support the
+  read requests actually made by the XPath or XSLT processor.</p>
+  <p>For the convenience of user-written extensions, a proxy mechanism presents the contents of the 
+  DTM as a read-only subset of the DOM.</p>
+
+
+<a name="settings">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>DTM performance settings</h3>
+  <p>Xalan-Java implements two DTM performance features that you can control with the TransformerFactory
+  <a href="apidocs/javax/xml/transform/TransformerFactory.html#setAttribute(java.lang.String,    java.lang.Object)">setAttribute(String name, Object value)</a> method.</p>
+  <table border="1">
+  <tr>
+    <th class="content" rowspan="1" colspan="1">Attribute name (URL)</th>
+    <th class="content" rowspan="1" colspan="1">Default setting</th>
+    <th class="content" rowspan="1" colspan="1">Description</th>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">"http://xml.apache.org/xalan/features/incremental"</td>
+    <td class="content" rowspan="1" colspan="1">false</td>
+    <td class="content" rowspan="1" colspan="1">
+<a href="#incremental">incremental transforms</a>
+</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">"http://xml.apache.org/xalan/features/optimize"</td>
+    <td class="content" rowspan="1" colspan="1">true</td>
+    <td class="content" rowspan="1" colspan="1">
+<a href="#optimized">optimized transforms</a>
+</td>
+  </tr> 
+  </table>
+  <p>Both of these DTM settings are described below.</p>
+  
+  <p> </p>
+  <a name="incremental">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>'http://xml.apache.org/xalan/features/incremental'</h4>
+   <p>Set this feature to true to enable incremental transformations. If set to false (the default), 
+      the transform and the parse are performed on the same thread.</p>
+   <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt"> When set to true: If the parser is Xerces, we perform an incremental transform on a single 
+          thread using the Xerces "parse on demand" feature. If the parser is not Xerces, we run the
+          transform in one thread and the parse in another. Exception: if the parser is not Xerces 
+          and the XML source is a DOMSource, setting this feature to true has no effect.</td>
+</tr>
+</table>
+   <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt"> The incremental feature is not currently supported by the XSLT Compiling processor, XSLTC.</td>
+</tr>
+</table>
+   <p>Example: setting incremental transforms to true (for the XSLT Interpretive processor):</p>
+   <blockquote class="source">
+<pre>javax.xml.transform.TransformerFactory tFactory =
+            javax.xml.transform.TransformerFactory.newInstance();
+ // setAttribute() takes a String and an Object.            
+  tFactory.setAttribute
+            ("http://xml.apache.org/xalan/features/incremental", 
+             java.lang.Boolean.TRUE);
+  ...</pre>
+</blockquote>
+  
+  
+  <a name="optimized">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>'http://xml.apache.org/xalan/features/optimize'</h4>
+   <p>When set to true (the default), this feature enables optimizations that may involve structural 
+      rewrites of the stylesheet. Any tool that requires direct access to the stylesheet structure 
+      should set this feature to false.</p>
+  
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>DTM node location tracking setting</h3>
+  <p>The DTM also provides a setting that you can use to track location information for each node in 
+     the source document. See <a href="features.html#source_location">"http://apache.org/xalan/features/source_location"</a>
+</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/extensions.html b/xalan-j/extensions.html
new file mode 100644
index 0000000..4f965db
--- /dev/null
+++ b/xalan-j/extensions.html
@@ -0,0 +1,1663 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Xalan-Java Extensions</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Xalan-Java Extensions</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>Extensions<br />
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Xalan-Java Extensions</h2>
+<ul>
+<li>
+<a href="#intro">Introduction</a>
+</li>
+<li>
+<a href="#supported-lang">Supported languages</a>
+</li>
+<li>
+<a href="#basic-pattern">The basic pattern</a>
+</li>
+<li>
+<a href="#setup-runtime">Setting up the runtime environment</a>
+</li>
+<li>
+<a href="#basic-syntax">Syntax</a>
+</li>
+<li>
+<a href="#ext-elements">Using an extension element</a>
+</li>
+<li>
+<a href="#ext-functions">Using extension functions</a>
+</li>
+<li>
+<a href="#java-namespace">Alternative: using the abbreviated syntax for extensions implemented in Java</a>
+</li>
+<li>Examples: <a href="#ex-basic">basic JavaScript example</a>, <a href="#ex-java-namespace">using the java namespace</a>, <a href="#ex-java">using a Java Hashtable</a>, <a href="#ex-javascript">using a JavaScript array</a>
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Unless otherwise specified, the Xalan-Java extensions discussed in this section refers to 
+the Xalan-Java Interpretive processor. See <a href="extensions_xsltc.html">Extensions for XSLTC</a> for 
+more information.</td>
+</tr>
+</table>
+<br />
+<a name="intro">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3>
+  <p>For those situations where you would like to augment the functionality of XSLT with calls to a 
+     procedural language, Xalan-Java supports the creation and use of extension elements and extension 
+     functions. Xalan-Java also provides a growing <a href="extensionslib.html">extensions library</a> 
+     available for your use. An extension (a collection of elements and functions) inhabits a namespace, 
+     either a namespace you declare and designate as an extensions namespace, or one of the predefined 
+     namespaces that Xalan-Java provides. For information about XML namespaces, see 
+     <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML</a>.</p>
+  <p>
+<b>Extension elements:</b>  Unlike a literal result element, which the stylesheet simply 
+     transfers to the result tree, an extension element performs an action. For example, you can use 
+     the Redirect extension elements shipped with Xalan-Java to redirect portions of your transformation 
+     output to one or more files. Extension elements may contain attributes, text nodes, other elements, 
+     basically any valid XML. Extension elements may perform quite sophisticated actions, given that 
+     the extension routine (the implementation) has direct access to the XSLT processor context object 
+     and to the element. In many cases the implementation returns void or null; if it does return a 
+     value, that value is placed in the transformation result tree.</p>
+  <p>
+<b>Extension functions:</b>  You can think of extension functions as extending the core library 
+     of functions that XPath provides. An extension function passes arguments to the extension 
+     implementation and returns a value. You can use extension functions to return values that XSLT 
+     can interact with directly (node-set, result tree fragment, string, boolean, and number) as well 
+     as values (of any type) that you pass in turn to other extension functions. Extension functions 
+     written in Java can also access certain items in the XSLT execution environment through an 
+     <a href="apidocs/org/apache/xalan/extensions/ExpressionContext.html">ExpressionContext</a> 
+     interface.</p>
+  <p>XSLT extensions are specified in the <a href="http://www.w3.org/TR/xslt#extension">XSLT 
+     Recommendation</a>.  This document focuses on the Xalan-Java implementation of those 
+     requirements, not on XSLT extensions in general. For additional information on extensions, 
+     consult the Recommendation or the other resources listed in <a href="overview.html#uptospeed">Getting up to speed with XSLT</a>.</p>
+
+<a name="supported-lang">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Supported languages</h3>
+<p>Extensions written in Java are directly supported by Xalan-Java.  For extensions written in languages 
+   other than Java, Xalan-Java uses the <a href="http://jakarta.apache.org/bsf/index.html">Bean Scripting Framework (BSF)</a>, an architecture for incorporating 
+   scripting into Java applications and applets. BSF allows an application to take advantage of 
+   scripting while being independent of any specific scripting language. To date, we have tested 
+   extensions implemented in JavaScript. The set of scripting languages supported using BSF is determined
+   by the BSF implementation you are using. If you are using Jakarta BSF, please refer to 
+   <a href="http://jakarta.apache.org/bsf/index.html">Jakarta BSF Supported Languages</a> for other
+   scripting languages with BSF support.</p>
+<p>BSF requires bsf.jar on the classpath. This JAR file is no longer shipped with Xalan-Java. It can be 
+   downloaded from <a href="http://jakarta.apache.org/bsf/index.html">the Apache Jakarta BSF project 
+   web site</a>. It is required only if you have extensions written in languages other than Java. 
+   The additional JAR files or DLLs required to support extensions written in other languages are 
+   listed at the Jakarta BSF web site as <a href="http://jakarta.apache.org/bsf/projects.html"> 
+   Related Projects </a> . These files are available from the sources indicated and are not shipped 
+   with Xalan-Java. </p>
+<a name="BSFManager">‌</a>
+<p>By default Xalan-Java assumes BSF support is provided by the Jakarta BSF implementation. There are three 
+   ways of specifying the class that provides the BSF Manager service:.</p>
+<ul>
+<li>Set the system property org.apache.xalan.extensions.bsf.BSFManager;</li>
+    <li>In the property file "/lib/xalan.properties" in the JRE directory, add the key 
+    org.apache.xalan.extensions.bsf.BSFManager with the value that is the fully qualified BSF 
+    implementation class name;</li>
+    <li>Include a META-INF/services/org.apache.xalan.extensions.bsf.BSFManager 
+    file in your classpath;</li>
+</ul>
+<a name="basic-pattern">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>The basic pattern</h3>
+<p>Let's examine a simple example. The stylesheet below uses an extension element and an 
+   extension function to transform an element in the XML source into a statement in the output 
+   indicating the date by which a customer can expect a response to a given enquiry.</p>
+
+<p>The source element contains a numdays attribute. The extension element contains a multiplier 
+   attribute, which is used to set a variable in the extension. The extension function computes the 
+   deadline, that is the current date plus numdays * multiplier. So for &lt;deadline numdays="3"/&gt; 
+   (in the XML source) and &lt;my-ext:timelapse multiplier="2"/&gt; (in the stylesheet), the 
+   extension computes a deadline 6 days from now, and the stylesheet template transforms the 
+   deadline element into a string along the lines of <code>&lt;p&gt;We have logged your enquiry 
+   and will respond by April 29, 2000 12:07:16 PM EST.&lt;/p&gt;</code>
+</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The extension function could include both numdays and multiplier as arguments, thus bypassing 
+   the need for the extension element, but the purpose here is to illustrate the usage pattern for 
+   extension elements.</td>
+</tr>
+</table>
+<p>As you review this stylesheet, please note the following:</p>
+<ol>
+  <li>The declaration of the xalan namespace, which provides support for the component and
+      component/script elements:<br />
+<br />
+    <code>xmlns:xalan="http://xml.apache.org/xalan"</code>
+<br />
+<br />
+</li>
+  <li>The declaration of a namespace for this extension:<br />
+<br />
+    <code>xmlns:my-ext="ext1"</code>
+<br />
+<br />
+</li>
+  <li>The designation of this namespace prefix as an extension prefix. This causes any element in the 
+      namespace associated with this prefix to be treated as an extension element rather than a literal 
+      result element.<br />
+<br />
+     <code>extension-element-prefixes="my-ext"</code>
+<br />
+<br />
+</li>
+  <li>The xalan:component with attributes designating the namespace prefix and the elements and
+     functions this extension provides.<br />
+<br />
+</li>
+  <li>The xalan:script subelement with a JavaScript implementation of the extension. For Java
+     extensions, the xalan:script element has a src attribute that you set to identify the Java class.</li>
+</ol>
+<a name="ex-basic">‌</a>   
+<blockquote class="source">
+<pre>&lt;?xml version="1.0"?&gt;
+&lt;!--Namespaces are global if you set them in the stylesheet element--&gt;
+&lt;xsl:stylesheet 
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+    version="1.0"   
+    xmlns:xalan="http://xml.apache.org/xalan"
+    xmlns:my-ext="ext1"
+    extension-element-prefixes="my-ext"&gt;
+    
+  &lt;!--The component and its script are in the xalan namespace and define the 
+    implementation of the extension.--&gt;
+  &lt;xalan:component prefix="my-ext" elements="timelapse" functions="getdate"&gt;
+    &lt;xalan:script lang="javascript"&gt;
+      var multiplier=1;
+      // The methods or functions that implement extension elements always take 2
+      // arguments. The first argument is the XSL Processor context; the second 
+      // argument is the element node.
+      function timelapse(xslProcessorContext, elem)
+      {
+        multiplier=parseInt(elem.getAttribute("multiplier"));
+        // The element return value is placed in the result tree.
+        // If you do not want a return value, return null.
+        return null;
+      }
+      function getdate(numdays)
+      {
+        var d = new Date();
+        var totalDays = parseInt(numdays) * multiplier;
+        d.setDate(d.getDate() + totalDays);
+        return d.toLocaleString();
+      }
+    &lt;/xalan:script&gt;
+  &lt;/xalan:component&gt;
+      
+  &lt;xsl:template match="deadline"&gt;
+    &lt;p&gt;&lt;my-ext:timelapse multiplier="2"/&gt;We have logged your enquiry and will 
+      respond by &lt;xsl:value-of select="my-ext:getdate(string(@numdays))"/&gt;.&lt;/p&gt;
+  &lt;/xsl:template&gt;
+
+&lt;/xsl:stylesheet&gt;
+</pre>
+</blockquote>
+
+<a name="setup-runtime">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Setting up the runtime environment</h3>
+<p>To run the preceding example, bsf.jar and js.jar must be on the classpath. Remember that bsf.jar 
+   must be on the classpath to run any extension written in a language other than Java. For extensions 
+   implemented in a scripting language, see the additional requirements in 
+   <a href="#supported-lang">Supported languages</a>.</p>
+
+<a name="basic-syntax">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Syntax</h3>
+<p>You can always use the pattern illustrated above to set up and use extension elements and extension 
+   functions. For extension elements and functions implemented in Java, it is recommended that you use 
+   the abbreviated syntax, described in <a href="#java-namespace">Alternative: using the abbreviated 
+   syntax for extensions implemented in Java</a>. Unless you are using the abbreviated syntax, do 
+   the following:</p>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>1. Declare the xalan namespace</h4>
+<p>
+<br />
+<code>xmlns:xalan="http://xml.apache.org/xalan"</code>
+</p>
+<p>The xalan namespace provides support for the xalan:component element and xalan:script subelement.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The old namespace http://xml.apache.org/xslt is still supported for backward compatibility.</td>
+</tr>
+</table>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>2. Declare a unique namespace for each extension prefix</h4>
+<p>
+<br />
+<code>xmlns:<b>
+<i>prefix</i>
+</b>=<b>
+<i>URI</i>
+</b>
+</code>
+</p>
+<p>The <b>
+<i>prefix</i>
+</b> identifies the namespace, and <b>
+<i>URI</i>
+</b> is an arbitrary (but unique) 
+string that matches the value of the prefix attribute of an xalan:component element in the 
+stylesheet.<br />
+Example: <code>xmlns:ext1="xyz"</code>
+<br />
+<br />
+</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>3. If you are using extension elements, designate the extension element prefixes</h4>
+<p>
+<br />This step is required only if you are using extension elements.  If you are using extension 
+functions only, you can skip this step.</p>
+<p>In the stylesheet element, write:</p> 
+<p>
+<code>extension-element-prefixes="<b>
+<i>prefix-1 prefix-2 ...</i>
+</b>"</code>
+</p>
+<p>In a literal result element or extension element include the xsl prefix:</p>
+<p>
+<code>xsl:extension-element-prefixes="<b>
+<i>prefix1 prefix2 ...</i>
+</b>"</code>
+</p>
+<p>Keep in mind that where you declare namespaces and designate extension prefixes determines the scope of those namespaces.To make your extensions available throughout the stylesheet, include these settings and attribute in the stylesheet element.</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>4. (Optional) Exclude the extension namespace declaration from the result tree</h4>
+<p>
+<br />By default, namespace declarations are included in the transformation output. To exclude 
+namespaces from the output, use</p>
+<p>
+<code>exclude-result-prefixes="<b>
+<i>prefix-1 prefix-2 ...</i>
+</b>"</code>
+</p>
+<p>in the stylesheet element or</p>
+<p>
+<code>xsl:exclude-result-prefixes="<b>
+<i>prefix-1 prefix-2 ...</i>
+</b>"</code>
+</p> 
+<p>in a literal result element or extension element.</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>5. Set up an xalan:component</h4>
+<p>
+<br />In the scope of the xalan namespace declaration:</p>
+<p>
+<code>&lt;xalan:component prefix="<b>
+<i>prefix</i>
+</b>" </code>
+<br />
+   <code>    functions="<b>
+<i>func-1 func-2 ...func-n</i>
+</b>"</code>
+<br /> 
+   <code>    elements="<b>
+<i>elem-1 elem-2 ...elem-n</i>
+</b>"&gt;</code>
+<br />
+   <code>  &lt;!--See xalan:script below--&gt;</code>
+<br />
+   <code>&lt;/xalan:component&gt;</code>
+</p>
+<p>where <b>
+<i>func-1 func-2 ... func-n</i>
+</b> and <b>
+<i>elem-1 elem-2 ... elem-n</i>
+</b> designate the 
+functions and elements the extension provides and the stylesheet uses. You can use the function-available 
+and element-available functions to determine at run time whether a function or element designated in the 
+xalan:component is actually available.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">If the component is implemented in Java, the values of the functions and elements attributes are 
+ignored. The function-available and element-available functions use reflection to examine the actual 
+Java methods.</td>
+</tr>
+</table>
+
+<a name="setup-script">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>6. Set up the xalan:script element</h4>
+<p>
+<br />In each xalan:component, you must include exactly one xalan:script element. If the extension 
+is implemented in JavaScript:</p>
+<p>
+<code>&lt;xalan:script lang="javascript" &gt;</code>
+<br />
+<code>  &lt;!--The implementation script--&gt;</code>
+<br />
+<code>&lt;/xalan:script&gt;</code>
+</p>
+<p>For other scripting languages supported by BSF, use the same approach as for JavaScript.
+The src attribute is also supported in the xalan:script element. If it is present, the script will
+be loaded from the URL specified in the src attribute. Otherwise the script is taken from the text child
+of the xalan:script element.</p>
+<p>If the extension is implemented in Java, you have three choices for the format of the src attribute 
+in the xalan:script element.</p>
+<p>
+<code>&lt;xalan:script lang="javaclass" src="xalan://<b>
+<i>FQCN</i>
+</b>"/&gt;</code>
+<br />where <b>
+<i>FQCN</i>
+</b> is the fully qualified class name.
+<br />Example: <code>&lt;xalan:script lang="javaclass" src="xalan://java.util.Hashtable"/&gt;</code>
+</p>
+<p>
+<code>&lt;xalan:script lang="javaclass" src="xalan://<b>
+<i>PJPN</i>
+</b>"/&gt;</code>
+<br />where <b>
+<i>PJPN</i>
+</b> is the beginning of or the complete name of a java package.
+<br />Example: <code>&lt;xalan:script lang="javaclass" src="java.util"/&gt;</code>
+</p>
+<p>
+<code>&lt;xalan:script lang="javaclass" src="http://xml.apache.org/xalan/java"/&gt;</code>
+</p>
+<p>The different formats for the value of the src attribute when using Java extensions are more fully 
+explained in <a href="#java-namespace-declare">Declare the namespace</a>.</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Implicit DTD for xalan:component</h4>
+<blockquote class="source">
+<pre>&lt;!ELEMENT xalan:component (xalan:script)&gt;
+&lt;!ATTLIST xalan:component
+  prefix CDATA #REQUIRED
+  elements NMTOKENS #IMPLIED
+  functions NMTOKENS #IMPLIED&gt;
+
+&lt;!ELEMENT xalan:script (#PCDATA | EMPTY)?&gt;
+&lt;!ATTLIST xalan:script
+  lang CDATA #REQUIRED
+  src CDATA #IMPLIED&gt;</pre>
+</blockquote>
+
+<a name="ext-elements">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using an extension element</h3>
+<p>Extension elements pass the extension two objects:</p>
+<ul>
+<li>
+<a href="apidocs/org/apache/xalan/extensions/XSLProcessorContext.html">
+org.apache.xalan.extensions.XSLProcessorContext</a>, which provides access to the XSL processor, 
+the XML source tree, the stylesheet tree, the current context node, and the current mode (if any).
+<br />
+<br />
+</li>
+<li>
+<a href="apidocs/org/apache/xalan/templates/ElemExtensionCall.html">
+org.apache.xalan.templates.ElemExtensionCall</a>, which provides the API for interacting with 
+the extension element.</li>
+</ul>
+<p>You can use the ElemExtensionCall getAttribute(String name) method, for example, to read element 
+attributes in their raw form.  Use the getAttribute(String name, Node sourceNode, XSLTEngineImpl 
+processor) method to evaluate the attribute as an attribute value template.  Note that the method 
+names are the same but the method signatures are different.  For full details, see the 
+<a href="apidocs/org/apache/xalan/templates/ElemExtensionCall.html">Javadoc</a> for the 
+ElemExtensionCall class.</p>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Implementing an extension element</h4>
+<p>For each extension element in a namespace, the implementation must be a Java method with the 
+following signature, or the scripting language equivalent:</p>
+<p>
+<code>
+<b>
+<i>Type element</i>
+</b>(org.apache.xalan.extensions.XSLProcessorContext, </code>
+<br />
+<code>             org.apache.xalan.templates.ElemExtensionCall extensionElement)</code>
+</p>
+<p>where <b>
+<i>Type</i>
+</b> designates the return type and <b>
+<i>element</i>
+</b> is the local part of the 
+extension element name (the element name without the namespace prefix). In the method signature, you 
+may also use superclasses of the indicated types.</p>
+<p>If the extension element is implemented in a loosely typed scripting language, such as JavaScript, 
+the arguments and return value are untyped.</p>
+<p>
+<b>Caution:</b> The value returned by an extension element is placed in the transformation result. 
+If you are not interested in a return value, use a public void Java method or return null from a 
+scripting language function.</p>
+<p>Java example: <code>public void myElement</code>
+<br />
+<code>         (org.apache.xalan.extensions.XSLProcessorContext, </code>
+<br />
+<code>          org.apache.xalan.templates.ElemExtensionCall extensionElement)</code>
+</p>
+<p>JavaScript example: <code>function myElement(xslProcContext, element)</code>
+</p>
+<p>The <a href="extensionslib.html#redirect">Redirect extension</a> in the extensions 
+library contains three extension elements.</p>
+
+
+<a name="ext-functions">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using extension functions</h3>
+<p>Extension functions may include arguments of any type and return a value of any type.</p>
+<p>XSLT recognizes five data types: node-set, result-tree-fragment, string, boolean, and number. You 
+can use XPath expressions to set variables with values of these types. You can also pass literals for 
+string, boolean, and number arguments. If you want to pass an argument of a type that XSLT does not 
+recognize, use another extension function to return an object of that type. The stylesheet that appears 
+in <a href="#format-date-stylesheet">Formatting a date</a>, for example uses extension functions 
+to return a Date object and a SimpleDateFormat object, and then uses these objects to call another 
+extension function.</p>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Data type mapping and method selection</h4>
+<p>When calling an extension function written in a language other than Java, objects of the following 
+Java classes will always be passed to the extension function:</p>
+  <table border="1">
+    <tr>
+      <th class="content" rowspan="1" colspan="1">XSLT Type</th>
+      <th class="content" rowspan="1" colspan="1">Java Type</th>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">Node-Set</td>
+       <td class="content" rowspan="1" colspan="1">org.w3c.dom.traversal.NodeIterator</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">String</td>
+       <td class="content" rowspan="1" colspan="1">java.lang.String</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">Boolean</td>
+       <td class="content" rowspan="1" colspan="1">java.lang.Boolean</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">Number</td>
+       <td class="content" rowspan="1" colspan="1">java.lang.Double</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">Result Tree Fragment</td>
+       <td class="content" rowspan="1" colspan="1">org.w3c.dom.DocumentFragment</td>
+    </tr>
+  </table>
+<p>Any non-XSLT type is passed without conversion.</p>
+<p>When calling an extension function written in Java, the extension function signature can specify 
+any of the indicated Java types, as explained below:</p>
+  <table border="1">
+    <tr>
+      <th class="content" rowspan="1" colspan="1">XSLT Type</th>
+      <th class="content" rowspan="1" colspan="1">Java Types</th>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">Node-Set</td>
+       <td class="content" rowspan="1" colspan="1">org.w3c.dom.traversal.NodeIterator, org.w3c.dom.NodeList, org.w3c.dom.Node or its 
+           subclasses, java.lang.String, java.lang.Object, char, [double, float, long, int, short, byte,] 
+           boolean</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">String</td>
+       <td class="content" rowspan="1" colspan="1">java.lang.String, java.lang.Object, char, [double, float, long, int, short, byte,] boolean</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">Boolean</td>
+       <td class="content" rowspan="1" colspan="1">boolean, java.lang.Boolean, java.lang.Object, java.lang.String</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">Number</td>
+       <td class="content" rowspan="1" colspan="1">double, java.lang.Double, float, long, int, short,char, byte, boolean, java.lang.String, 
+           java.lang.Object</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">Result Tree Fragment</td>
+       <td class="content" rowspan="1" colspan="1">org.w3c.dom.traversal.NodeIterator, org.w3c.dom.NodeList, org.w3c.dom.Node or its subclasses, 
+           java.lang.String, java.lang.Object, char, [double, float, long, int, short, byte,] boolean</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">Non-XSLT Type</td>
+       <td class="content" rowspan="1" colspan="1">the native type or any of its superclasses, double, float, long, int, short, char, byte, 
+           java.lang.String</td>
+    </tr>
+  </table>
+<p>When calling extension functions written in Java, Xalan-Java selects the method to call as follows:</p>
+<ol>
+  <li>Xalan-Java selects all methods whose name matches the extension function name as specified in 
+      <a href="#ext-func-calls">Extension function Java calls</a>.</li>
+  <li>From this list of methods, Xalan-Java determines which methods are <b>
+<i>qualified</i>
+</b>.</li>
+  <li>Each qualified method is assigned a score based on the table shown above. To assign the score 
+      to a given method, Xalan-Java examines each of the XSLT argument types in the function invocation 
+      in the stylesheet. For each argument, the appropriate row in the table above is selected. Then, 
+      the corresponding Java parameter type in the method signature in the Java program is scored. 
+      Types which appear earlier in the list are given a higher score.  That is, the list appears in 
+      order of scoring preference from highest to lowest. Types shown in square brackets have equal 
+      priority.</li>
+  <li>The method with the highest score is invoked after the arguments are converted to the appropriate 
+      type. If more than one method has the highest score, an exception is thrown.</li>
+</ol>
+<p>Any extension function written in Java can have a first parameter of 
+type <code>org.apache.xalan.extensions.ExpressionContext</code>. Any method with an 
+ExpressionContext as the first parameter will score higher than any method which does not have an 
+ExpressionContext as a first parameter.</p>
+
+
+<a name="ext-func-retval">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Return values</h4>
+<p>The Xalan-Java extension mechanism examines the class of the value returned from a function and 
+   converts the value into an XSLT type according to the following table:</p>
+  <table border="1">
+    <tr>
+      <th class="content" rowspan="1" colspan="1">Java Types</th>
+      <th class="content" rowspan="1" colspan="1">XSLT Type</th>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">org.w3c.dom.traversal.NodeIterator<br />org.apache.xml.dtm.DTM<br />org.apache.xml.dtm.DTMAxisIterator<br />org.apache.xml.dtm.DTMIterator<br />org.w3c.dom.Node</td>
+       <td class="content" rowspan="1" colspan="1">Node-Set</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">java.lang.String</td>
+       <td class="content" rowspan="1" colspan="1">String</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">java.lang.Boolean</td>
+       <td class="content" rowspan="1" colspan="1">Boolean</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">java.lang.Number</td>
+       <td class="content" rowspan="1" colspan="1">Number</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">org.w3c.dom.DocumentFragment</td>
+       <td class="content" rowspan="1" colspan="1">Result Tree Fragment</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">org.apache.xpath.objects.XObject</td>
+       <td class="content" rowspan="1" colspan="1">Specified XSLT Type</td>
+    </tr>
+    <tr>
+       <td class="content" rowspan="1" colspan="1">All other classes</td>
+       <td class="content" rowspan="1" colspan="1">Non-XSLT Type</td>
+    </tr>
+  </table>
+  <p>Note that the above test is applied using <code>instanceof</code> so that any subclasses of the 
+     classes listed above will be treated the same as the listed superclass.  For example, a 
+     <code>java.lang.Double</code> will be treated the same as a <code>java.lang.Number</code> and 
+     will be converted to an XSLT Number.</p>
+  <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The return value conversion can somtimes cause confusion.  For example, if your 
+     extension function returns an object that is a subclass of NodeIterator, that object will be 
+     converted by Xalan-Java to an XSLT Node-Set.  If you later attempt to treat that object as a 
+     non-XSLT object of your original class and try to invoke a method on that object, your method 
+     invocation will fail.</td>
+</tr>
+</table>
+
+
+<a name="ext-func-calls">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Extension function Java calls</h4>
+<p>The technique for instantiating Java objects and calling Java methods depends on the format of the 
+   extension namespace that was declared.  See <a href="#java-namespace-declare">Declare the 
+   namespace</a> for the three different formats of namespace declarations for Java extensions. 
+   For each namespace format, the section below describes how to instantiate an object, how to invoke 
+   an instance method, and how to invoke a static method. The sections below explain, for each syntax, 
+   which methods are <b>
+<i>qualified</i>
+</b> for method selection as described in the preceeding section.</p>
+<h5>Class format namespace</h5>
+<p>
+<br />
+<b>To create an instance of an object</b>:
+<br />
+<code>
+<b>
+<i>prefix</i>
+</b>:new (<b>
+<i>args</i>
+</b>)</code>
+</p>
+<p>where <b>
+<i>prefix</i>
+</b> is the extension namespace prefix. A new instance is to be created with 
+   the <b>
+<i>args</i>
+</b> constructor arguments (if any). All constructor methods are qualified for method 
+   selection.
+<br />Example: <code>&lt;xsl:variable name="myType"</code>
+<br />
+<code>       select="my-class:new()"&gt;</code>
+</p>
+
+<p>
+<b>To invoke an instance method on a specified object</b>:
+<br />
+<code>
+<b>
+<i>prefix</i>
+</b>:<b>
+<i>methodName</i>
+</b> (<b>
+<i>object</i>
+</b>, <b>
+<i>args</i>
+</b>)</code>
+</p>
+<p>where <b>
+<i>prefix</i>
+</b> is the extension namespace prefix and <b>
+<i>methodName</i>
+</b> is the name of 
+   the method to invoke on <b>
+<i>object</i>
+</b> with the <b>
+<i>args</i>
+</b> arguments. <b>
+<i>object</i>
+</b> must 
+   be an object of the class indicated by the namespace declaration.  Otherwise, the case shown 
+   immediately below will apply. Only instance methods with  the name <b>
+<i>methodName</i>
+</b> are 
+   qualified methods. If a matching method is found, <b>
+<i>object</i>
+</b> will be used to identify the 
+   object instance and <b>
+<i>args</i>
+</b> will be passed to the invoked method.
+<br />
+Example: <code>&lt;xsl:variable name="new-pop"</code>
+<br />
+<code>     select="my-class:valueOf($myType, string(@population))"&gt;</code>
+</p>
+
+<p>
+<b>To invoke an instance method on a default object</b>:
+<br />
+<code>
+<b>
+<i>prefix</i>
+</b>:<b>
+<i>methodName</i>
+</b> (<b>
+<i>args</i>
+</b>)</code>
+</p>
+<p>where <b>
+<i>prefix</i>
+</b> is the extension namespace prefix and <b>
+<i>methodName</i>
+</b> is the name of 
+the method to invoke with the <b>
+<i>args</i>
+</b> arguments. The first <b>
+<i>arg</i>
+</b>, if any, must not be 
+an object of the class indicated by the namespace declaration.  Otherwise, the case shown immediately 
+above will apply. Only instance methods with the name <b>
+<i>methodName</i>
+</b> are qualified methods. If 
+a matching method is found, a default instance of the class will be created if it does not already 
+exist.
+<br />
+Example: <code>&lt;xsl:variable name="new-pop"</code>
+<br />
+<code>     select="my-class:valueOf(string(@population))"&gt;</code>
+</p>
+
+<p>
+<b>To invoke a static method</b>:
+<br />
+<code>
+<b>
+<i>prefix</i>
+</b>:<b>
+<i>methodName</i>
+</b> (<b>
+<i>args</i>
+</b>)</code>
+</p>
+<p>where <b>
+<i>prefix</i>
+</b> is the extension namespace prefix and <b>
+<i>methodName</i>
+</b> is the name of 
+the method to invoke with the <b>
+<i>args</i>
+</b> arguments. Only static methods with the name 
+<b>
+<i>methodName</i>
+</b> are qualified methods. If a matching method is found, <b>
+<i>args</i>
+</b> will 
+be passed to the invoked static method.
+<br />
+Example: <code>&lt;xsl:variable name="new-pop"</code>
+<br />
+<code>     select="my-class:printit(string(@population))"&gt;</code>
+</p>
+
+<h5>Package format namespace</h5>
+<p>
+<br />
+<b>To create an instance of an object</b>:
+<br />
+<code>
+<b>
+<i>prefix</i>
+</b>:<b>
+<i>subpackage</i>
+</b>.<b>
+<i>class</i>
+</b>.new (<b>
+<i>args</i>
+</b>)</code>
+</p>
+<p>where <b>
+<i>prefix</i>
+</b> is the extension namespace prefix, <b>
+<i>subpackage</i>
+</b> is the rest of the 
+package name (the beginning of the package name was in the namespace declaration), and <b>
+<i>class</i>
+</b> 
+is the name of the class. A new instance is to be created with the <b>
+<i>args</i>
+</b> constructor 
+arguments (if any). All constructor methods are qualified for method selection.
+<br />Example: <code>&lt;xsl:variable name="myType"</code>
+<br />
+<code>       select="my-package:extclass.new()"&gt;</code>
+</p>
+
+<p>
+<b>To invoke an instance method on a specified instance</b>:
+<br />
+<code>
+<b>
+<i>prefix</i>
+</b>:<b>
+<i>methodName</i>
+</b> (<b>
+<i>object</i>
+</b>, <b>
+<i>args</i>
+</b>)</code>
+</p>
+<p>where <b>
+<i>prefix</i>
+</b> is the extension namespace prefix and <b>
+<i>methodName</i>
+</b> is the name of 
+the method to invoke on <b>
+<i>object</i>
+</b> with the <b>
+<i>args</i>
+</b> arguments. Only instance methods of 
+the <b>
+<i>object</i>
+</b> with the name <b>
+<i>methodName</i>
+</b> are qualified methods. If a matching method 
+is found, <b>
+<i>object</i>
+</b> will be used to identify the object instance and <b>
+<i>args</i>
+</b> will be 
+passed to the invoked method.
+<br />
+Example: <code>&lt;xsl:variable name="new-pop"</code>
+<br />
+<code>     select="my-package:valueOf($myType, string(@population))"&gt;</code>
+</p>
+
+<p>
+<b>To invoke a static method</b>:
+<br />
+<code>
+<b>
+<i>prefix</i>
+</b>:<b>
+<i>subpackage</i>
+</b>.<b>
+<i>class</i>
+</b>.<b>
+<i>methodName</i>
+</b> (<b>
+<i>args</i>
+</b>)</code>
+</p>
+<p>where <b>
+<i>prefix</i>
+</b> is the extension namespace prefix, <b>
+<i>subpackage</i>
+</b> is the rest of 
+the package name (the beginning of the package name was in the namespace declaration), <b>
+<i>class</i>
+</b> 
+is the name of the class, and <b>
+<i>methodName</i>
+</b> is the name of the method to invoke with the 
+<b>
+<i>args</i>
+</b> arguments. Only static methods with the name <b>
+<i>methodName</i>
+</b> are qualified 
+methods. If a matching method is found, <b>
+<i>args</i>
+</b> will be passed to the invoked static method.
+<br />
+Example: <code>&lt;xsl:variable name="new-pop"</code>
+<br />
+<code>     select="my-package:extclass.printit(string(@population))"&gt;</code>
+</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Unlike the class format namespace, there is no concept of a default object since the namespace 
+declaration does not identify a unique class.</td>
+</tr>
+</table>
+
+<h5>Java format namespace</h5>
+<p>
+<br />
+<b>To create an instance of an object</b>:
+<br />
+<code>
+<b>
+<i>prefix</i>
+</b>:<b>
+<i>FQCN</i>
+</b>.new (<b>
+<i>args</i>
+</b>)</code>
+</p>
+<p>where <b>
+<i>prefix</i>
+</b> is the extension namespace prefix for the Java namespace and <b>
+<i>FQCN</i>
+</b> 
+is the fully qualified class name of the class whose constructor is to be called. A new instance is to 
+be created with the <b>
+<i>args</i>
+</b> constructor arguments (if any). All constructor methods are 
+qualified for method selection.
+<br />Example: <code>&lt;xsl:variable name="myHash"</code>
+<br />
+<code>       select="java:java.util.Hashtable.new()"&gt;</code>
+</p>
+
+<p>
+<b>To invoke an instance method on a specified instance</b>:
+<br />
+<code>
+<b>
+<i>prefix</i>
+</b>:<b>
+<i>methodName</i>
+</b> (<b>
+<i>object</i>
+</b>, <b>
+<i>args</i>
+</b>)</code>
+</p>
+<p>where <b>
+<i>prefix</i>
+</b> is the extension namespace prefix and <b>
+<i>methodName</i>
+</b> is the name of 
+the method to invoke on <b>
+<i>object</i>
+</b> with the <b>
+<i>args</i>
+</b> arguments. Only instance methods of 
+the <b>
+<i>object</i>
+</b> with the name <b>
+<i>methodName</i>
+</b> are qualified methods. If a matching method 
+is found, <b>
+<i>object</i>
+</b> will be used to identify the object instance and <b>
+<i>args</i>
+</b> will be 
+passed to the invoked method.
+<br />
+Example: <code>&lt;xsl:variable name="new-pop"</code>
+<br />
+<code>     select="java:put($myHash, string(@region), $newpop)"&gt;</code>
+</p>
+
+<p>
+<b>To invoke a static method</b>:
+<br />
+<code>
+<b>
+<i>prefix</i>
+</b>:<b>
+<i>FQCN</i>
+</b>.<b>
+<i>methodName</i>
+</b> (<b>
+<i>args</i>
+</b>)</code>
+</p>
+<p>where <b>
+<i>prefix</i>
+</b> is the extension namespace prefix, <b>
+<i>FQCN</i>
+</b> is the fully qualified 
+class name of the class whose static method is to be called, and <b>
+<i>methodName</i>
+</b> is the name of 
+the method to invoke with the <b>
+<i>args</i>
+</b> arguments. Only static methods with the name 
+<b>
+<i>methodName</i>
+</b> are qualified methods. If a matching method is found, <b>
+<i>args</i>
+</b> will be 
+passed to the invoked static method.
+<br />
+Example: <code>&lt;xsl:variable name="new-pop"</code>
+<br />
+<code>     select="java:java.lang.Integer.valueOf(string(@population))"&gt;</code>
+</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Unlike the class format namespace, there is no concept of a default object since the namespace 
+declaration does not identify a unique class.</td>
+</tr>
+</table>
+
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Passing Nodes to java</h4>
+<p>Please keep in mind that <b>all</b> LocationPath expressions return a node-set, even if the 
+expression only returns a single attribute or a text node (node-sets with one member). You can use 
+the XSLT string() function (as in the syntax examples above) to convert a node-set value to string, 
+and the number() function to convert a node-set value to number (a double).</p>
+<p>If you want to pass a node-set to an extension function, set up a Java method to accept an 
+org.w3c.dom.NodeList (or an org.apache.xpath.NodeSet, which implements NodeList, if you want to modify 
+the nodes).</p>
+<p>Suppose, for example, you have a myExtensions.ProcessNodes class with the following doSomething 
+method:</p>
+<p>
+<code>public static boolean doSomething(org.w3c.dom.NodeList nList)</code>
+</p>
+<p>Assuming you set up this extension in the node-ext namespace, any of the following extension calls 
+from a stylesheet are syntactically possible:</p>
+<p>
+<code>&lt;!--Process the current node--&gt;</code>
+<br />
+<code>&lt;xsl:variable name="success" select="node-ext:MyExtensions.ProcessNodes.doSomething(.)"/&gt;</code>
+</p>
+<p>
+<code>&lt;!--Process all nodes in current context--&gt;</code>
+<br />
+<code>&lt;xsl:variable name="success" select="node-ext:MyExtensions.ProcessNodes.doSomething(*)"/&gt;</code>
+</p>
+<p>
+<code>&lt;!-- Process all nodes --&gt;</code>
+<br />
+<code>&lt;xsl:variable name="success" select="node-ext:MyExtensions.ProcessNodes.doSomething(/*)"/&gt;</code>
+</p>
+<p>
+<code>&lt;!--Process the foo/baz nodes in current context --&gt;</code>
+<br />
+<code>&lt;xsl:variable name="success" select="node-ext:MyExtensions.ProcessNodes.doSomething(foo/baz)"/&gt;</code>
+</p>
+<p>
+<code>&lt;!--Process the/foo/baz and /bar/saz nodes --&gt;</code>
+<br />
+<code>&lt;xsl:variable name="success" select="node-ext:MyExtensions.ProcessNodes.doSomething(/foo/baz | /bar/saz)"/&gt;</code>
+</p>
+<p>The NodeList is in fact a list of references into the XML document, so keep in mind that 
+getNextSibling(), for example, gets you the next sibling in the document, which may not be the next 
+Node in the NodeList.</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Implementing extension functions</h4>
+<p>For each extension function in a namespace which is implemented in a language other than Java, the 
+implementation must include a method with the following signature, or the scripting language 
+equivalent:</p>
+<p>
+<code>public <b>
+<i> object function</i>
+</b>(<b>
+<i>args</i>
+</b>)</code>
+</p>
+<p>where <b>
+<i>object</i>
+</b> is the return type, <b>
+<i>function</i>
+</b> is the local part of the extension 
+function name (the function name without the namespace prefix), and <b>
+<i>args</i>
+</b> correspond to the 
+arguments in the function call.</p>
+<p>In addition, for extension functions implemented in Java, the implementation may include either a 
+Java method with the signature shown above or one with the following signature:</p>
+<p>
+<code>public <b>
+<i> object function</i>
+</b>(org.apache.xalan.extensions.ExpressionContext, 
+<b>
+<i>args</i>
+</b>)</code>
+</p>
+
+<a name="java-namespace">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Alternative: using the abbreviated syntax for extensions implemented in Java</h3>
+<p>For extension functions and extension elements implemented in Java, Xalan-Java permits an abbreviated 
+syntax. When you use the abbreviated syntax, you do not use an xalan:component to designate the 
+functions.</p>
+<p>The abbreviated syntax supports the use of extension functions and extension elements implemented 
+in Java. You cannot use this syntax with extensions implemented in JavaScript or another scripting 
+language.</p>
+<a name="java-namespace-declare">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Declare the namespace</h4>
+<p>Declare the namespace for your extensions using one of the following three formats. The 
+technique for invoking an extension for each format is explained in 
+<a href="#ext-func-calls">Extension function Java calls</a>.</p>
+<p>
+<b>class format:</b> <code>xmlns:my-class="xalan://<b>
+<i>FQCN</i>
+</b>"</code>
+</p>
+<p>where <b>
+<i>FQCN</i>
+</b> is the fully qualified class name.
+<br />Examples: <code>xmlns:my-class="xalan://java.util.Hashtable"</code>
+<br />               
+<code>xmlns:my-class="xalan://mypackage.myclass"</code>
+</p>
+<p>
+<b>package format:</b> <code>xmlns:my-class="xalan://<b>
+<i>PJPN</i>
+</b>"</code>
+</p>
+<p>where <b>
+<i>PJPN</i>
+</b> is a partial java package name.  That is, it is the beginning of or the 
+complete name of a java package.
+<br />Examples: <code>xmlns:my-package="xalan://java.util"</code>
+<br />               
+<code>xmlns:my-package="xalan://mypackage"</code>
+</p>
+<p>
+<b>Java format:</b> <code>xmlns:java="http://xml.apache.org/xalan/java"</code>
+</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The old namespace http://xml.apache.org/xslt/java is still supported for backward compatibility.
+</td>
+</tr>
+</table>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Although the namespace declarations for the class and package formats are shown with the 
+xalan:// prefix, the current implementation for those formats will simply use the string to the right 
+of the rightmost forward slash as the Java class name. This format, however, is the preferred 
+format for extension namespace declarations.</td>
+</tr>
+</table>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The class: prefix which was sometimes required in earlier versions of Xalan-Java is no longer 
+required.</td>
+</tr>
+</table>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">These formats are also available when coding the src attribute of the xalan:script element 
+as explained in <a href="#setup-script">Set up the xalan:script element</a>.</td>
+</tr>
+</table>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Use the namespace when you make extension calls</h4>
+<p>Use the declared prefix with the syntax described in <a href="#ext-func-calls">Extension 
+function Java calls</a>.</p>
+<p>That is all. You do not include an xalan:component element. Using the abbreviated syntax clearly 
+involves less setup than using the xalan:component/xalan:script approach.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">We recommend that, for extensions coded in Java, the abbreviated syntax should always be used 
+since the xalan:component/xalan:script constructs add no functionality.</td>
+</tr>
+</table>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The abbreviated syntax is supported in XSLTC, but the xalan:component/xalan:script constructs 
+are not.</td>
+</tr>
+</table>
+<a name="ex-java-namespace">‌</a> 
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Example: Formatting a date</h4>
+<p>This example uses extension functions to call the SimpleDateFormat class and the IntDate class. 
+IntDate uses String arguments to set up a Date object:</p>
+<blockquote class="source">
+<pre>import java.util.Date;
+import java.util.Calendar;
+
+public class IntDate
+{
+  public static Date getDate(String year, String month, String day)
+    {
+      // Date(int, int, int) has been deprecated, so use Calendar to
+      // set the year, month, and day.
+      Calendar c = Calendar.getInstance();
+      // Convert each argument to int.
+      c.set ( Integer.parseInt(year),
+              Integer.parseInt(month),
+              Integer.parseInt(day) );
+      return c.getTime();
+    }
+}</pre>
+</blockquote>
+<p>The template transforms date elements with four attributes. For example, it transforms 
+<code>&lt;date format="EEEE, MMM dd, yyyy" year="2000" month="4" day="27"/&gt;</code> 
+into &lt;p&gt;Date: Thursday, April 27, 2000.&lt;/p&gt;.</p>
+<p>As you review this stylesheet, please keep the following in mind:</p>
+ <ul>
+  <li>The exclude-result-prefixes stylesheet attribute prevents the java namespace declaration from
+   appearing in the output.</li>
+  <li>The XSLT type returned by any LocationPath expression is node-set, so the XSLT string
+    function is used to convert the format, year, month, and day attribute values from node-sets to
+    strings.</li>
+  <li>The format attribute provides a String argument for constructing a java.text.SimpleDateFormat
+    object.</li>
+    <li>The IntDate class uses String values provided by the year, month, and day attributes, to set the
+    date. XSLT can pass number values, but these are converted into doubles.</li>
+  <li>The formatter variable holds a SimpleDateFormat object, and the date variable holds a Date object.
+    XSLT does not understand either of these types, but they are used to call the SimpleDateFormat format
+     method. In that call, $formatter is the object, and $date is the argument. The syntax for calling
+     Java constructors and methods is described above in <a href="#ext-func-calls">Extension 
+     function Java calls</a>.</li>    
+ </ul>
+<a name="format-date-stylesheet">‌</a>   
+<blockquote class="source">
+<pre>&lt;?xml version="1.0"?&gt;
+&lt;xsl:stylesheet 
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+    version="1.0"   
+    xmlns:java="http://xml.apache.org/xalan/java"
+    exclude-result-prefixes="java"&gt;
+    
+  &lt;!--Other templates for transforming the rest of
+                                            the XML source documents--&gt;
+  
+  &lt;xsl:template match="date"&gt; 
+    &lt;xsl:variable name="year" select="string(./@year)"/&gt;
+    &lt;xsl:variable name="month" select="string(./@month)"/&gt; 
+    &lt;xsl:variable name="day" select="string(./@day)"/&gt;          
+    &lt;xsl:variable name="format" select="string(./@format)"/&gt;
+
+    &lt;xsl:variable name="formatter"       
+        select="java:java.text.SimpleDateFormat.new($format)"/&gt;
+
+    &lt;xsl:variable name="date" 
+        select="java:IntDate.getDate($year, $month, $day)"/&gt;
+
+    &lt;p&gt;Date: &lt;xsl:value-of select="java:format($formatter, $date)"/&gt;&lt;/p&gt;
+  &lt;/xsl:template&gt;
+&lt;/xsl:stylesheet&gt;  
+</pre>
+</blockquote>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Examples: using Java and JavaScript to implement the same extension</h3>
+<p>This section contains two examples. The first example uses a Java extension to transform a set of 
+name elements  into an alphabetical and numbered list. The second example uses a JavaScript script 
+to do the same. Both examples include equivalent extension elements and an extension function.</p>
+<a name="ex-java">‌</a> 
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Java implementation</h4>
+<p>MyCounter.java</p>
+<blockquote class="source">
+<pre>Import java.util.*;
+
+public class MyCounter {
+  Hashtable counters = new Hashtable ();
+
+  public MyCounter () 
+  {}
+
+  public void init
+             ( org.apache.xalan.extensions.XSLProcessorContext context,
+               org.apache.xalan.templates.ElemExtensionCall extElem ) 
+  {
+    String name = extElem.getAttribute("name");
+    String value = extElem.getAttribute("value");
+    int val;
+    try 
+    {
+      val = Integer.parseInt (value);
+    } 
+    catch (NumberFormatException e) 
+    {
+      e.printStackTrace ();
+      val = 0;
+    }
+    counters.put (name, new Integer (val));
+  }
+
+  public int read(String name) 
+  {
+    Integer cval = (Integer) counters.get (name);
+    return (cval == null) ? 0 : cval.intValue ();
+  }
+
+  public void incr
+             ( org.apache.xalan.extensions.XSLProcessorContext context,
+               org.apache.xalan.templates.ElemExtensionCall extElem) 
+  {
+    String name = extElem.getAttribute("name");
+    Integer cval = (Integer) counters.get(name);
+    int nval = (cval == null) ? 0 : (cval.intValue () + 1);
+    counters.put (name, new Integer (nval));
+  }
+}
+</pre>
+</blockquote>
+<p>An XML source document:</p>
+<blockquote class="source">
+<pre>&lt;?xml version="1.0"?&gt;
+&lt;doc&gt;
+  &lt;name first="David" last="Marston"/&gt;
+  &lt;name first="David" last="Bertoni"/&gt;
+  &lt;name first="Donald" last="Leslie"/&gt;
+  &lt;name first="Emily" last="Farmer"/&gt;
+  &lt;name first="Jack" last="Donohue"/&gt;
+  &lt;name first="Myriam" last="Midy"/&gt;
+  &lt;name first="Paul" last="Dick"/&gt;
+  &lt;name first="Robert" last="Weir"/&gt;
+  &lt;name first="Scott" last="Boag"/&gt;
+  &lt;name first="Shane" last="Curcuru"/&gt;
+&lt;/doc&gt;</pre>
+</blockquote>
+<p>The stylesheet:</p>
+<blockquote class="source">
+<pre>&lt;?xml version="1.0"?&gt; 
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xalan="http://xml.apache.org/xalan"
+                xmlns:counter="MyCounter"
+                extension-element-prefixes="counter"
+                version="1.0"&gt;
+
+  &lt;xalan:component prefix="counter"
+                   elements="init incr" functions="read"&gt;
+    &lt;xalan:script lang="javaclass" src="xalan://MyCounter"/&gt;
+  &lt;/xalan:component&gt;
+
+  &lt;xsl:template match="/"&gt;
+    &lt;HTML&gt;
+      &lt;H1&gt;Names in alphabetical order&lt;/H1&gt;
+      &lt;counter:init name="index" value="1"/&gt;
+      &lt;xsl:for-each select="doc/name"&gt;
+        &lt;xsl:sort select="@last"/&gt;
+        &lt;xsl:sort select="@first"/&gt;
+        &lt;p&gt;
+        &lt;xsl:text&gt;[&lt;/xsl:text&gt;
+        &lt;xsl:value-of select="counter:read('index')"/&gt;
+        &lt;xsl:text&gt;]. &lt;/xsl:text&gt;
+        &lt;xsl:value-of select="@last"/&gt;
+        &lt;xsl:text&gt;, &lt;/xsl:text&gt;
+        &lt;xsl:value-of select="@first"/&gt;
+        &lt;/p&gt;
+        &lt;counter:incr name="index"/&gt;
+      &lt;/xsl:for-each&gt;
+    &lt;/HTML&gt;
+  &lt;/xsl:template&gt;
+ 
+&lt;/xsl:stylesheet&gt;
+</pre>
+</blockquote>
+<p>Transformation output:</p>
+<blockquote class="source">
+<pre>&lt;HTML&gt;
+&lt;H1&gt;Names in alphabetical order&lt;/H1&gt;
+&lt;p&gt;[1]. Bertoni, David&lt;/p&gt;
+&lt;p&gt;[2]. Boag, Scott&lt;/p&gt;
+&lt;p&gt;[3]. Curcuru, Shane&lt;/p&gt;
+&lt;p&gt;[4]. Dick, Paul&lt;/p&gt;
+&lt;p&gt;[5]. Donohue, Jack&lt;/p&gt;
+&lt;p&gt;[6]. Farmer, Emily&lt;/p&gt;
+&lt;p&gt;[7]. Leslie, Donald&lt;/p&gt;
+&lt;p&gt;[8]. Marston, David&lt;/p&gt;
+&lt;p&gt;[9]. Midy, Myriam&lt;/p&gt;
+&lt;p&gt;[10]. Weir, Robert&lt;/p&gt;
+&lt;/HTML&gt;</pre>
+</blockquote>
+<a name="ex-javascript">‌</a> 
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>JavaScript implementation</h4>
+<p />
+<blockquote class="source">
+<pre>&lt;?xml version="1.0"?&gt; 
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xalan="http://xml.apache.org/xalan"
+                xmlns:counter="MyCounter"
+                extension-element-prefixes="counter"
+                version="1.0"&gt;
+
+  &lt;xalan:component prefix="counter"
+                   elements="init incr" functions="read"&gt;
+    &lt;xalan:script lang="javascript"&gt;
+      var counters = new Array();
+
+      function init (xslproc, elem) {
+        name = elem.getAttribute ("name");
+        value = parseInt(elem.getAttribute ("value"));
+        counters[name] = value;
+        return null;
+      }
+
+      function read (name) {
+        // Return a string.
+        return "" + (counters[name]);
+      }
+
+      function incr (xslproc, elem)
+      {
+        name = elem.getAttribute ("name");
+        counters[name]++;
+        return null;
+      }
+    &lt;/xalan:script&gt;
+  &lt;/xalan:component&gt;
+
+  &lt;xsl:template match="/"&gt;
+    &lt;HTML&gt;
+      &lt;H1&gt;Names in alphatebical order&lt;/H1&gt;
+      &lt;counter:init name="index" value="1"/&gt;
+      &lt;xsl:for-each select="doc/name"&gt;
+        &lt;xsl:sort select="@last"/&gt;
+        &lt;xsl:sort select="@first"/&gt;
+        &lt;p&gt;
+        &lt;xsl:text&gt;[&lt;/xsl:text&gt;
+        &lt;xsl:value-of select="counter:read('index')"/&gt;
+        &lt;xsl:text&gt;]. &lt;/xsl:text&gt;
+        &lt;xsl:value-of select="@last"/&gt;
+        &lt;xsl:text&gt;, &lt;/xsl:text&gt;
+        &lt;xsl:value-of select="@first"/&gt;
+        &lt;/p&gt;
+        &lt;counter:incr name="index"/&gt;
+      &lt;/xsl:for-each&gt;
+    &lt;/HTML&gt;
+  &lt;/xsl:template&gt;
+ 
+&lt;/xsl:stylesheet&gt;
+</pre>
+</blockquote>
+<p>This stylesheet produces the same output as the preceding example with the Java extension.</p>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/extensions_xsltc.html b/xalan-j/extensions_xsltc.html
new file mode 100644
index 0000000..ad5f31c
--- /dev/null
+++ b/xalan-j/extensions_xsltc.html
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Extensions for XSLTC</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Extensions for XSLTC</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>XSLTC Exts<br />
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Extensions for XSLTC</h2>
+<ul>
+<li>
+<a href="#intro">Introduction</a>
+</li>
+<li>
+<a href="#constraints">Constraints</a>
+</li>
+<li>
+<a href="#java_ext">Java extension</a>
+</li>
+<li>
+<a href="#exslt_ext">EXSLT extensions</a>
+</li>
+<li>
+<a href="#nodeset_ext">nodeset</a>
+</li>
+<li>
+<a href="#redirect_ext">output/redirect</a>
+</li>
+</ul>
+<a name="intro">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3>
+  <p>XSLTC supports the use of extension functions implemented in external Java classes. It also
+  supports the <a href="#nodeset_ext">nodeset</a>, <a href="#redirect_ext">output/redirect</a> 
+  and <a href="#exslt_ext">EXSLT</a> extension functions. Extension support in XSLTC is
+  still under development. It is currently not as complete as the extension support in the
+  Xalan-Java Interpretive processor. There are constraints in some areas.</p>
+  
+
+<a name="constraints">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Constraints</h3>
+  <p>In addition to the constraints listed below for each particular extension, extension support
+  in XSLTC also has the following limitations:</p>
+  <ol>
+  <li>
+<a href="extensions.html#ext-elements">Extension element</a> is not supported.
+  The extension element mechanism is closely related to the internal implementation of the XSLT processor.
+  The current extension element mechansim is designed for the Xalan-Java Interpretive processor. It does not work with XSLTC.</li>
+  <li>The <a href="extensions.html#supported-lang">xalan:component and xalan:script</a> extension elements are not supported at the moment. This has
+  the implication that you cannot use scripting languages (e.g. javascript) with XSLTC.</li>
+  <li>
+<a href="extensionslib.html#sql">The SQL extension</a> is not supported in XSLTC at the moment.</li>
+  </ol>
+  
+  
+<a name="java_ext">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Java extension</h3>
+  <p>Java extension is supported in XSLTC. Constructors, static and instance methods are all supported.
+  You can use any of the <a href="extensions.html#ext-func-calls">three namespace formats</a>
+   (Java, package and class) in your stylesheet.
+  </p>
+  <p>The official namespace for the Java extension is <code>http://xml.apache.org/xalan/java</code>. The old XSLTC Java namespace
+  <code>http://xml.apache.org/xalan/xsltc/java</code> and the old Xalan-Java namespace <code>http://xml.apache.org/xslt/java</code>
+  are also supported for backward compatibility.</p>
+  <p>All usage syntax for the Xalan-Java Interpretive processor also applies to XSLTC with only one 
+  exception: XSLTC does not support the notion of default object 
+  in <a href="extensions.html#ext-func-calls">class format namespace</a>. 
+  When using instance methods, you should always specify the class instance as the first argument
+  to the extension function.</p>
+  <p>The following example shows you how to call constructors, static, and nonstatic functions,
+  using different namespace formats:</p>
+
+  <blockquote class="source">
+<pre>&lt;xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:date="http://xml.apache.org/xalan/java/java.util.Date"
+    xmlns:java_lang="http://xml.apache.org/xalan/java/java.lang"
+    exclude-result-prefixes="date java_lang"&gt;
+
+  &lt;!--
+  * test: construction of Date object using a parameter calculated
+  *       by a static call to the java.lang.Math object. Then call
+  *       a non-static method (getTime()) on the newly created Date
+  *       object. Demonstrates calling constructors, static functions
+  *       (Math.max) and non-static functions (getTime()).
+  *
+  * Output:
+  *   &lt;?xml version="1.0" encoding="UTF-8"?&gt;
+  *     Date of object: Sat Nov 30 17:32:41 EST 2002
+  *     Time of object: 1038695561000
+  *
+  --&gt;
+
+  &lt;xsl:template match="/"&gt;
+   &lt;!-- create Date object with calculated parameter --&gt;
+   &lt;xsl:variable name="dateObject"
+     select="date:new(
+         java_lang:Math.max(1027695561000,1038695561000)
+     )"/&gt;
+   Date of object: &lt;xsl:value-of select="$dateObject"/&gt;
+   Time of object: &lt;xsl:value-of select="date:getTime($dateObject)"/&gt;
+  &lt;/xsl:template&gt;
+
+  &lt;/xsl:stylesheet&gt;
+  </pre>
+</blockquote>
+  <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Always use the abbreviated syntax for Java extension, because the xalan:component/xalan:script
+  constructs are not supported in XSLTC.</td>
+</tr>
+</table>
+  
+  
+<a name="exslt_ext">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>EXSLT extensions</h3>
+  <p>The following EXSLT extension modules are supported in XSLTC:</p>
+  <ul>
+  <li>
+<a href="apidocs/org/apache/xalan/lib/ExsltCommon.html">EXSLT common functions</a>
+</li>
+  <li>
+<a href="apidocs/org/apache/xalan/lib/ExsltMath.html">EXSLT math functions</a>
+</li>
+  <li>
+<a href="apidocs/org/apache/xalan/lib/ExsltSets.html">EXSLT set functions</a>
+</li>
+  <li>
+<a href="apidocs/org/apache/xalan/lib/ExsltDatetime.html">EXSLT date-and-time functions</a>
+</li>
+  <li>
+<a href="apidocs/org/apache/xalan/lib/ExsltStrings.html">EXSLT string functions</a>
+</li>
+  </ul> 
+  <p>The functions in the <a href="apidocs/org/apache/xalan/lib/ExsltDynamic.html">dynamic</a> module 
+  (e.g. evaluate) are not supported because of the XSLTC design limitation.
+  Work is currently underway on <a href="http://www.exslt.org/func/elements/function/index.html">user 
+  defined EXSLT functions (with the function and result elements)</a>.</p>
+  <p>The <code>nodeset</code> and <code>objectType</code> extension functions in the <a href="apidocs/org/apache/xalan/lib/ExsltCommon.html">common</a> 
+  module are implemented natively in XSLTC. For all other EXSLT extension functions,
+  XSLTC uses the same implementation as the Xalan-Java Interpretive processor. The implementation classes 
+  are under <code>org.apache.xalan.lib</code>.
+  Depending on the packaging, these classes can be in a separate jar file (e.g. xalan.jar) from
+  the XSLTC classes. In this case you need to add the jar file containing the EXSLT classes to your
+  classpath in order to use EXSLT extensions in XSLTC.</p>
+  
+  
+<a name="nodeset_ext">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>nodeset</h3>
+  <p>XSLTC also supports the nodeset() extension function for transforming an RTF (result 
+    tree fragment) into a node set.</p>
+    <p>The nodeset extension can be used as an XSLTC extension function in the namespace
+    <code>http://xml.apache.org/xalan/xsltc</code>, a Xalan-Java extension function in the namespace
+    <code>http://xml.apache.org/xalan</code>, an EXSLT extension function in the namespace 
+    <code>http://exslt.org/common</code> or as a standard XPATH function. When it is used as
+    an EXSLT extension function, you need to refer to the nodeset extension function as 
+    <code>node-set</code>.</p>
+    <p>The following exmaple shows you how to use the nodeset extension
+    function in different namespaces:</p>
+    <blockquote class="source">
+<pre>&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"        
+  xmlns:xsltc-extension="http://xml.apache.org/xalan/xsltc"
+  xmlns:xalan="http://xml.apache.org/xalan"
+  xmlns:exslt="http://exslt.org/common"
+  version="1.0"&gt;
+  &lt;xsl:template match="/"&gt;
+    &lt;xsl:variable name="rtf"&gt;
+      &lt;docelem&gt;
+        &lt;elem1&gt;elem1&lt;/elem1&gt;
+        &lt;elem2&gt;elem2&lt;/elem2&gt;
+      &lt;/docelem&gt;
+    &lt;/xsl:variable&gt;
+    &lt;!-- Use nodeset as an XSLTC extension function --&gt;
+    &lt;xsl:value-of select="xsltc-extension:nodeset($rtf)/docelem/elem1"/&gt;
+    &lt;!-- Use nodeset as a Xalan-Java extension function --&gt;
+    &lt;xsl:value-of select="xalan:nodeset($rtf)/docelem/elem1"/&gt;
+    &lt;!-- Use nodeset as an EXSLT extension function --&gt;
+    &lt;xsl:value-of select="exslt:node-set($rtf)/docelem/elem1"/&gt;
+    &lt;!-- Use nodeset as standard function --&gt;
+    &lt;xsl:value-of select="nodeset($rtf)/docelem/elem1"/&gt;
+  &lt;/xsl:template&gt; 
+&lt;/xsl:stylesheet&gt;
+</pre>
+</blockquote>
+<br />
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The preferred solution is to use the EXSLT node-set function so that it can work
+with multiple XSLT processors.</td>
+</tr>
+</table>
+  
+  
+<a name="redirect_ext">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>output/redirect</h3>
+  <p>XSLTC supports the output extension element for redirecting the output to one 
+  or more files. The output extension element is also aliased to the write extension element 
+  in the namespace <code>http://xml.apache.org/xalan/redirect</code>. Therefore you can use
+  it in the same way as the <a href="extensionslib.html#redirect">redirect</a> 
+  extension in Xalan-Java.</p>
+  <p>You can use the file and append attributes with the output/redirect extension. The value of the file
+  attribute is an attribute value template. If the value of the append attribute is true or yes, the
+  output is appended to the file rather than overwriting the file.</p>
+  <p>The following example shows you how to use the output/redirect extension:</p>
+    <blockquote class="source">
+<pre> &lt;xsl:stylesheet 
+   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+   xmlns:xsltc="http://xml.apache.org/xalan/xsltc"
+   xmlns:redirect="http://xml.apache.org/xalan/redirect"
+   extension-element-prefixes="xsltc redirect"
+   version="1.0"&gt;
+   &lt;xsl:template match="/"&gt;
+     &lt;xsl:text&gt;This goes to standard output&lt;/xsl:text&gt;
+     &lt;xsltc:output file="blob.xml"&gt;
+       &lt;xsl:text&gt;This ends up in the file 'blob.xml'&lt;/xsl:text&gt;
+     &lt;/xsltc:output&gt;
+     &lt;redirect:write file="blob2.xml"&gt;
+       &lt;xsl:text&gt;This ends up in the file 'blob2.xml'&lt;/xsl:text&gt;
+     &lt;/redirect:write&gt;
+   &lt;/xsl:template&gt;
+&lt;/xsl:stylesheet&gt;</pre>
+</blockquote>  
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/extensionslib.html b/xalan-j/extensionslib.html
new file mode 100644
index 0000000..c21b7c3
--- /dev/null
+++ b/xalan-j/extensionslib.html
@@ -0,0 +1,1022 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Extensions library</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Extensions library</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>Extensions Library<br />
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Extensions library</h2>
+<ul>
+<li>
+<a href="#intro">Introduction</a>
+</li>
+<li>
+<a href="#exslt">EXSLT extensions</a>
+</li>
+<li>
+<a href="#xalanns">Xalan namespace</a>
+</li>
+<li>
+<a href="#redirect">Redirect</a>
+</li>
+<li>
+<a href="#nodeset">nodeset</a>
+</li>
+<li>
+<a href="#nodeinfo">NodeInfo extension functions</a>
+</li>
+<li>
+<a href="#sql">SQL library</a>
+</li>
+<li>
+<a href="#pipedocument">PipeDocument</a>
+</li>
+<li>
+<a href="#evaluate">evaluate</a>
+</li>
+<li>
+<a href="#tokenize">tokenize</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">Extensions for XSLTC</a>
+</li>
+<li>Examples: <a href="#ex-redirect">Redirect</a>, <a href="#ex-nodeset">nodeset</a>, 
+<a href="#ex-sql">SQL library</a>
+</li>
+</ul>
+
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Unless otherwise specified, the Xalan-Java extensions library discussed in this section refers to 
+the Xalan-Java Interpretive processor. See <a href="extensions_xsltc.html">Extensions for XSLTC</a> for 
+more information.</td>
+</tr>
+</table>
+<br />
+
+<a name="intro">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3>
+<p>Extension elements and functions provide a powerful mechanism
+for extending and simplifying what you can do with an XLST processor like
+Xalan. With input and contributions from the XML open-source developer community, we are working on 
+placing the most useful extensions in an extensions library distributed with Xalan-Java. If you have 
+ideas and/or contributions you would like to make, please email us at 
+the <a href="mailto:dev@xalan.apache.org">Xalan Development Mailing List</a>.</p>
+<a name="exslt">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>EXSLT extensions</h3>
+ <p>Xalan-Java supports the <a href="http://exslt.org/">EXSLT</a> initiative to provide a set of
+standard extension functions and elements to XSLT users. Xalan-Java includes implementations for the 
+following EXSLT extension modules:</p>
+<ul>
+<li>
+<a href="apidocs/org/apache/xalan/lib/ExsltCommon.html">EXSLT common functions</a>
+</li>
+<li>
+<a href="apidocs/org/apache/xalan/lib/ExsltMath.html">EXSLT math functions</a>
+</li>
+<li>
+<a href="apidocs/org/apache/xalan/lib/ExsltSets.html">EXSLT set functions</a>
+</li>
+<li>
+<a href="apidocs/org/apache/xalan/lib/ExsltDatetime.html">EXSLT date-and-time functions</a>
+</li>
+<li>
+<a href="apidocs/org/apache/xalan/lib/ExsltDynamic.html">EXSLT dynamic functions</a>
+</li>
+<li>
+<a href="apidocs/org/apache/xalan/lib/ExsltStrings.html">EXSLT string functions</a>
+</li>
+<li>The EXSLT func:function and func:result elements (see 
+<a href="http://www.exslt.org/func/elements/function/index.html">EXSLT - func:function)</a>
+</li>
+</ul>
+<p>All EXSLT extensions use namespaces specified in the EXSLT specification. For example, to use the 
+EXSLT math functions, specify a namespace URI as follows:</p>
+<p>     <code>xmlns:math="http://exslt.org/math"</code>
+</p>
+<p>Anyone who would like to help by implementating other EXSLT extensions is more than welcome. Please 
+email us at the <a href="mailto:dev@xalan.apache.org">Xalan Development Mailing List</a>.</p>
+
+<a name="xalanns">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Xalan namespace</h3>
+<p>The Xalan extensions are implemented in one of the classes under org.apache.xalan.lib. The main 
+extension class is <a href="apidocs/org/apache/xalan/lib/Extensions.html">
+org.apache.xalan.lib.Extensions</a>. Some extension
+functions (e.g. intersection, difference, etc.) used to be in this class are now moved to the 
+corresponding <a href="#exslt">EXSLT</a> modules. All Xalan extensions use namespace URIs 
+starting with:</p>
+<p>     <code>http://xml.apache.org/xalan</code>
+</p>
+<p>If you are calling Xalan-Java-supplied extensions, we recommend that you define the corresponding 
+namespace in your stylesheet, and call the extension using the namespace prefix that you have associated 
+with that namespace. That way, if we later reorganize how the Xalan-Java-supplied extensions are stored, 
+you won't have to modify your stylesheet.</p>
+<p>For an example that uses this namespace, see <a href="#ex-nodeset">Example with the nodeset 
+extension function</a>.</p>
+<a name="redirect">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Redirect</h3>
+<p>A standard XSL transformation involves an XSL stylesheet, an XML source tree, and the transformation
+result tree. The transformation sends the entire result to a single 
+<a href="apidocs/javax/xml/transform/Result.html">javax.xml.transform.Result</a> object.</p> 
+<p>The namespace for the <a href="apidocs/org/apache/xalan/lib/Redirect.html">Redirect</a> 
+extension is:</p>
+<p>     <code>http://xml.apache.org/xalan/redirect</code>
+</p>
+<p>It supplies three extension elements that you can use to redirect portions of your transformation 
+output to multiple files: &lt;open&gt;, &lt;write&gt;, and &lt;close&gt;. If you use the &lt;write&gt; 
+element alone, the extension opens a file, writes to it, and closes the file immediately. If you want 
+explicit control over the opening and closing of files, use &lt;write&gt; in conjunction with 
+the &lt;open&gt; and &lt;close&gt; elements.</p>
+<p>The &lt;open&gt; and &lt;write&gt; elements include a file attribute and/or a select attribute to 
+designate the output file. The file attribute takes a string, so you can use it to directly specify 
+the output file name. The select attribute takes an XPath expression, so you can use it to dynamically 
+generate the output file name. If you include both attributes, the Redirect extension first evaluates 
+the select attribute, and falls back to the file attribute if the select attribute expression does 
+not return a valid file name.</p>
+<p>The &lt;open&gt; and &lt;write&gt; elements also support an append attribute. If the append attribute 
+is set to true or yes, then the result is appended to the output file.</p>
+<a name="ex-redirect">‌</a> 
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Example with the Redirect extension</h4>
+<p>Suppose you are outputting the bulk of your result tree to one file, but you want to output the 
+transformation of all &lt;foo&gt; elements and their children to another file. The following example 
+illustrates the basic structure of the XML source:</p>
+<blockquote class="source">
+<pre>&lt;?xml version="1.0"?&gt; 
+&lt;doc&gt;
+  &lt;foo file="foo.out"&gt;
+    Testing Redirect extension:
+      &lt;bar&gt;A foo subelement text node&lt;/bar&gt;
+  &lt;/foo&gt;
+  &lt;main&gt;
+    Everything else
+  &lt;/main&gt;  
+&lt;/doc&gt;</pre>
+</blockquote>
+<p>This stylesheet redirects part of the output to a secondary file:</p>
+<blockquote class="source">
+<pre>
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version="1.0"
+    xmlns:redirect="http://xml.apache.org/xalan/redirect"
+    extension-element-prefixes="redirect"&gt;
+
+  &lt;xsl:template match="/"&gt;
+    &lt;standard-out&gt;
+      Standard output:
+      &lt;xsl:apply-templates/&gt;
+    &lt;/standard-out&gt;
+  &lt;/xsl:template&gt;
+  
+  &lt;xsl:template match="main"&gt;
+    &lt;main&gt;
+      &lt;xsl:apply-templates/&gt;
+    &lt;/main&gt;
+  &lt;/xsl:template&gt;
+  
+  &lt;xsl:template match="/doc/foo"&gt;
+    &lt;redirect:write select="@file"&gt;
+      &lt;foo-out&gt;
+        &lt;xsl:apply-templates/&gt;
+      &lt;/foo-out&gt;
+    &lt;/redirect:write&gt;
+  &lt;/xsl:template&gt;
+  
+  &lt;xsl:template match="bar"&gt;
+    &lt;foobar-out&gt;
+      &lt;xsl:apply-templates/&gt;
+    &lt;/foobar-out&gt;
+  &lt;/xsl:template&gt;
+  
+&lt;/xsl:stylesheet&gt;</pre>
+</blockquote>
+<p>The standard output is:</p>
+<blockquote class="source">
+<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;standard-out&gt;
+  Standard output:
+  &lt;main&gt;
+    Everything else.
+  &lt;/main&gt;
+&lt;standard-out&gt;</pre>
+</blockquote>
+<p>The output redirected to foo.out is:</p>
+<blockquote class="source">
+<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;foo-out&gt;
+    Testing Redirect extension:
+    &lt;foobar-out&gt;foo subelement text node&lt;/foobar-out&gt;
+  &lt;/foo-out&gt;</pre>
+</blockquote>
+<p>For more information on using the Redirect extension to send output to multiple files, examine 
+the <a href="samples.html#ext1">SimpleRedirect</a> sample and see the 
+<a href="apidocs/org/apache/xalan/lib/Redirect.html">Redirect</a> class Javadoc.</p>  
+<a name="nodeset">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>nodeset</h3>
+<p>Implemented in <a href="apidocs/org/apache/xalan/lib/Extensions.html">
+org.apache.xalan.lib.Extensions</a>,<br />
+<code>nodeset (result-tree-fragment)</code>  casts a result tree fragment into a node-set.</p>
+<p>To use the nodeset extension, you can either use the <code>nodeset</code> function in the 
+namespace <code>xmlns:xalan="http://xml.apache.org"</code> or the <a href="#exslt">EXSLT</a> 
+extension function <code>node-set</code> in the namespace 
+<code>xmlns:common="http://exslt.org/common"</code>.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">When you bind a variable to a template, rather than to the value generated by a select 
+expression, the data type of the variable is result tree fragment. For more information, 
+see <a href="http://www.w3.org/TR/xslt#section-Result-Tree-Fragments">Result Tree 
+Fragments</a>.</td>
+</tr>
+</table>
+<a name="ex-nodeset">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Example with the nodeset extension function</h4>
+<p>The following stylesheet uses the nodeset extension function to cast a result tree fragment 
+into a node-set that can then be navigated in standard XPath manner. It uses the 
+http://xml.apache.org/xalan namespace to provide access to the nodeset() method in 
+xml.apache.xalan.lib.Extensions.</p>
+<blockquote class="source">
+<pre>&lt;?xml version="1.0"?&gt;
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                   version="1.0"
+                   xmlns:xalan="http://xml.apache.org/xalan"
+                   exclude-result-prefixes="xalan"&gt;
+&lt;xsl:template match="/"&gt;
+  &lt;out&gt;
+	  &lt;xsl:variable name="rtf"&gt;
+      &lt;docelem&gt;
+        &lt;elem1&gt;
+          &lt;elem1a&gt;ELEMENT1A&lt;/elem1a&gt;
+          &lt;elem1b&gt;,ELEMENT1B&lt;/elem1b&gt;
+        &lt;/elem1&gt;
+        &lt;elem2&gt;
+          &lt;elem2a&gt;ELEMENT2A&lt;/elem2a&gt;
+        &lt;/elem2&gt;
+      &lt;/docelem&gt;
+    &lt;/xsl:variable&gt;     
+      &lt;xsl:for-each select="xalan:nodeset($rtf)/docelem//*"&gt;
+        &lt;xsl:value-of select="name(.)"/&gt;&lt;xsl:text&gt;,&lt;/xsl:text&gt;
+      &lt;/xsl:for-each&gt;
+  &lt;/out&gt;
+&lt;/xsl:template&gt; 
+&lt;/xsl:stylesheet&gt;</pre>
+</blockquote>
+<p>The output of running this stylesheet (with any XML input source) is a comma-delimited list of 
+the element names in the node-set<br />
+  <code>&lt;out&gt;elem1,elem1a,elem1b,elem2,elem2a&lt;/out&gt;</code>
+</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">For illustration purposes, the preceding stylesheet pays no attention to the structure and 
+content of the XML input document. Instead, it processes the template (in the stylesheet) bound 
+to the variable named rtf.</td>
+</tr>
+</table>
+
+
+
+
+<a name="nodeinfo">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>NodeInfo</h3>
+<p>
+<a href="apidocs/org/apache/xalan/lib/NodeInfo.html">org.apache.xalan.lib.NodeInfo</a> provides 
+extension elements that you can use to get information about the location of nodes in the source 
+document:</p>
+<ul>
+<li>
+<a href="#systemid">systemId</a>
+</li>
+<li>
+<a href="#publicid">publicId</a> (to be done)</li>
+<li>
+<a href="#linenumber">lineNumber</a>
+</li>
+<li>
+<a href="#columnnumber">columnNumber</a>
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">If you want to use the NodeInfo extension elements, you MUST set the TransformerFactory 
+<a href="features.html#source_location">source_location</a> attribute to true. 
+You can use the <a href="commandline.html">command-line utility</a> -L flag or the 
+<a href="apidocs/javax/xml/transform/TransformerFactory.html#setAttribute(java.lang.String, java.lang.Object)">TransformerFactory.setAttribute()</a> method to set this attribute.</td>
+</tr>
+</table>
+
+<a name="systemid">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>systemId</h4>
+<p>Implemented in <a href="apidocs/org/apache/xalan/lib/NodeInfo.html">
+org.apache.xalan.lib.NodeInfo</a>,
+<code>systemId()</code> returns the system ID for the current node, and
+<code>systemId(node-set)</code> returns the system ID of the first node in the node-set.</p>
+
+
+<a name="publicid">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>publicId</h4>
+<p>
+<b>To be done.</b> Implemented in <a href="apidocs/org/apache/xalan/lib/NodeInfo.html">
+org.apache.xalan.lib.NodeInfo</a>,
+<code>publicId()</code> will return the public ID for the current node, and
+<code>publicId(node-set)</code> will return the public ID of the first node in the node-set.</p>
+
+
+<a name="linenumber">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>lineNumber</h4>
+<p>Implemented in <a href="apidocs/org/apache/xalan/lib/NodeInfo.html">
+org.apache.xalan.lib.NodeInfo</a>,
+<code>lineNumber()</code> returns the line number in the source document for the current node, and
+<code>lineNumber(node-set)</code> returns the line number in the source document for the first node 
+in the node-set.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This function returns -1 if the line number is not known (for example, the source is a 
+DOM Document).</td>
+</tr>
+</table>
+
+
+<a name="columnnumber">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>columnNumber</h4>
+<p>Implemented in <a href="apidocs/org/apache/xalan/lib/NodeInfo.html">
+org.apache.xalan.lib.NodeInfo</a>, <code>columnNumber()</code> returns the column number in the 
+source document for the current node, and <code>columnNumber(node-set)</code> returns the column 
+number in the source document for the first node in the node-set.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This function returns -1 if the column number is not known (for example, the source is a DOM 
+Document).</td>
+</tr>
+</table>
+
+
+
+<a name="sql">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>SQL library</h3>
+<ul>
+ <li>
+<a href="#sqlconn">Setting up a connection</a>
+</li>
+ <li>
+<a href="#sqlparam">Parameterized queries</a>
+</li>
+ <li>
+<a href="#ex-sql">SQL library example</a>
+</li>
+ <li>
+<a href="samples.html#sql">SQL library sample applications</a>
+</li>
+</ul>
+<p>The namespace for the SQL extension is:</p>
+  <code>http://xml.apache.org/xalan/sql</code>
+<p>
+ The SQL extension provides extension functions for connecting to a JDBC data source, 
+ executing a query, and working incrementally through a "streamable" result set. Streaming 
+ (reuse of a single row node to traverse the result set) is the default mode of operation. 
+ if you want unlimited access to the entire result set, you can cache the query result set 
+ (1 row node for each row in the result set).</p>
+<p>
+<b>If you use streaming mode (the default), you can only access row elements one at a time 
+ moving forward through the result set. The use of XPath expressions in your stylesheet, for 
+ example, that attempt to return nodes from the result set in any other manner may produce 
+ unpredictable results.</b>
+</p>
+ <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Many features of the SQL library, including support for connection pools, parameterized 
+ queries, caching, and added support for extracting connection information and query parameters 
+ from XML source documents exist thanks to John Gentilin (johnglinux@eyecatching.com), who has 
+ also added a number of <a href="samples.html#sql">SQL library samples</a>.
+</td>
+</tr>
+</table>
+<p>
+<a href="apidocs/org/apache/xalan/lib/sql/XConnection.html">org.apache.xalan.lib.sql.XConnection</a> 
+ provides a number of extension functions that you can use in your stylesheet.</p>
+<ol>
+<li>new() -- Use one of the XConnection constructors to connect to a data source, and return an 
+XConnection object. You can use one of the constructors creates a connection pool from which 
+stylesheets can obtain connections to a datasource. To support connection pools, SQL library 
+includes a ConnectionPool interface and a implementation: DefaultConnectionPool. You can also 
+provide your own ConnectionPool implementation.<br />
+<br />
+</li>
+<li>query() -- Use the XConnection object query() method to return a "streamable" result set in 
+the form of a row-set node. Work your way through the row-set one row at a time. The same row 
+element is used over and over again, so you can begin "transforming" the row-set before the 
+entire result set has been returned.<br />
+<br />
+</li>
+<li>pquery(), addParameter(), addParameterFromElement(), clearParameters() -- 
+Use the XConnection pquery() method in conjunction with these other methods to 
+set up and execute parameterized queries.<br />
+<br />
+</li>
+<li>Use enableStreamingMode() to use a single row node to "stream" through the result set, and 
+disableStreamingMode() to cache the query result set. <br />
+<br />
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">
+enableStreamingMode and disableStreamingMode() are depricated
+See <a href="extensionslib.html#sql-ext-features">SQL Extension Features</a>.
+</td>
+</tr>
+</table>
+<br />
+</li>
+<li>close() -- Use the XConnection object close() method to terminate the connection.</li>      
+</ol>
+
+<a name="sql-ext-features">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>SQL Extension Feature Settings</h4>
+<p>The SQL Extension allows features of the extension to be set through the setFeature / getFeature interface.</p>
+<p>To set a feature, use: <br />
+    <code>
+      &lt;xsl:value-of select="<br />
+      sql:setFeature($db, 'feature-name', 'feature-value')"/&gt;
+    </code>
+<br />
+<br />
+    To retrive the current value of the feature, use: <br />
+     <code>
+      &lt;xsl:value-of select="<br />
+      sql:getFeature($db, 'feature-name')"/&gt;
+      </code>
+<br /> 
+    </p>
+    <table border="1">
+     <tr>
+      <th class="content" rowspan="1" colspan="1">Feature</th>
+      <th class="content" rowspan="1" colspan="1">Valid Values</th>
+      </tr>
+      <tr>
+       <td class="content" rowspan="1" colspan="1">streaming</td>
+       <td class="content" rowspan="1" colspan="1">true or false</td>
+      </tr>
+    </table>
+
+   
+<p>The query() and pquery() extension functions return a Document node that contains (as needed)       
+an array of column-header elements, a single row element that is used repeatedly, and an array 
+of col elements. Each column-header element (one per column in the row-set) contains an attribute 
+(ColumnAttribute) for each of the column descriptors in the ResultSetMetaData object.  Each col 
+element contains a text node with a textual representation of the value for that column in the 
+current row.</p>
+
+<a name="sqlconn">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Setting up a connection</h4>
+<p>You can place connection information (JDBC driver, datasource URL, and usually user ID 
+and password) in stylesheets or in XML source documents.</p> 
+<p>The following stylesheet fragment uses stylesheet parameters to designate a JDBC driver 
+and datasource. The default parameter values can be overridden with runtime parameter values.</p>
+<blockquote class="source">
+<pre>
+      &lt;xsl:param name="driver" select="'org.apache.derby.jdbc.EmbeddedDriver'"/&gt;
+      &lt;xsl:param name="datasource" select="'jdbc:derby:sampleDB'"/&gt;
+      &lt;xsl:param name="query" select="'SELECT * FROM import1'"/&gt;
+</pre>
+</blockquote>
+<p>You can also obtain connection information from the XML source document that you use for the 
+transformation. Suppose you have the following DBINFO nodeset in an XML document:</p>
+<blockquote class="source">
+<pre>
+      &lt;DBINFO&gt;
+      &lt;dbdriver&gt;org.apache.derby.jdbc.EmbeddedDriver&lt;/dbdriver&gt; 
+      &lt;dburl&gt;jdbc:derby:sampleDB&lt;/dburl&gt; 
+      &lt;user&gt;jbloe&lt;/user&gt; 
+      &lt;password&gt;geron07moe&lt;/password&gt; 
+      &lt;/DBINFO&gt;
+</pre>
+</blockquote>
+<p>In the stylesheet, you can extract this information as follows:</p>
+<blockquote class="source">
+<pre>
+     &lt;xsl:stylesheet version 1.0
+           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+           xmlns:sql="http://xml.apache.org/xalan/sql"
+           extension-element-prefixes="sql"&gt;
+        &lt;xsl:param name="cinfo" select="//DBINFO"/&gt;
+        &lt;xsl:variable name="db" select="sql:new($cinfo)"/&gt;
+      ....
+</pre>
+</blockquote> 
+<p>For an example of both approaches, see <a href="samples.html#basic-conn">Basic Connection</a> 
+samples.</p>
+<p>You can also create a named connection pool that is maintained external to Xalan-Java.</p>
+<blockquote class="source">
+<pre>
+        import org.apache.xalan.lib.sql.DefaultConnectionPool;
+        import org.apache.xalan.lib.sql.XConnectionPoolManager;
+        ...
+        DefaultConnectionPool cp = new DefaultConnectionPool();
+        cp.setDriver("org.apache.derby.jdbc.EmbeddedDriver");
+        cp.setURL("jdbc:derby:sampleDB");
+        cp.setUser("");
+        cp.setPassword("");
+        // Start with 10 connections.
+        cp.setMinConnections(10);
+        cp.enablePool();
+        // Register the connection pool so stylesheets can use it.
+        XConnectionPoolManager pm = new XConnectionPoolManager();
+        pm.registerPool("extpool", cp);
+</pre>
+</blockquote>
+<p>A stylesheet can use this connection pool as follows:</p>
+<blockquote class="source">
+<pre>
+       &lt;xsl:stylesheet version 1.0
+       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+       xmlns:sql="http://xml.apache.org/xalan/sql"
+       extension-element-prefixes="sql"&gt;
+       ...
+        &lt;xsl:variable name="db" select="sql:new($driver, 'extpool')"/&gt;
+</pre>
+</blockquote>
+<p>For an example, see the <a href="samples.html#ext-conn">ExternalConnection</a> 
+sample.</p>
+
+
+<a name="sqlparam">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Parameterized queries</h4>
+<p>To define a parameterized query, use a SQL query string with a question mark (?) for each 
+parameter. You can provide the parameter values at runtime with stylesheet parameters or with 
+nodes in the XML source document. 
+For each parameter, you should also designate the SQL data type.</p>
+<p>XConnection provides a number of addParameter() methods and an addParameterFromElement() method 
+that you can use as extension functions to pull in the parameter values (in the order the 
+parameters appear in the query). To execute the query and return the result set, call the pquery() 
+method as an extension function. There are two variations of the pquery() method. The one you 
+should ordinarily use includes as arguments the SQL query string and a string list 
+(delimited by the space, tab, or line feeds) of parameter types. For example:</p>
+<blockquote class="source">
+<pre>
+        &lt;xsl:variable name="resultset" 
+        select=sql:pquery($XConnectionObj, 
+                          'select * from X where Y = ? and Z = ?',
+                          'int string')"/&gt;
+</pre>
+</blockquote>
+<p>
+For a complete example, see the <a href="samples.html#pquery">Parameterized query</a> sample.
+</p>
+
+
+<a name="ex-sql">‌</a> 
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Example with SQL library</h4>
+<p>This example displays the result set from a table in a sample Derby database. It is also
+available as a sample application; see <a href="samples.html#sql">SQl Extension Samples</a>.</p>
+<blockquote class="source">
+<pre>
+      &lt;?xml version="1.0"?&gt;
+      &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="1.0"
+          xmlns:sql="http://xml.apache.org/xalan/sql"
+          extension-element-prefixes="sql"&gt;
+      &lt;xsl:output method="html" indent="yes"/&gt;
+      &lt;xsl:param name="query" select="'SELECT * FROM import1'"/&gt;
+      &lt;xsl:template match="/"&gt;
+      &lt;!-- 1. Make the connection --&gt;
+      &lt;xsl:variable name="products"
+              select="sql:new('org.apache.derby.jdbc.EmbeddedDriver',
+             'jdbc:derby:sampleDB')"/&gt;
+      &lt;HTML&gt;
+      &lt;HEAD&gt;
+      &lt;/HEAD&gt;
+      &lt;BODY&gt;
+        &lt;TABLE border="1"&gt;
+        &lt;!--2. Execute the query --&gt;
+        &lt;xsl:variable name="table" select='sql:query($products, $query)'/&gt;
+          &lt;TR&gt;
+          &lt;!-- Get column-label attribute from each column-header--&gt;
+          &lt;xsl:for-each select="$table/sql/metadata/column-header"&gt;
+            &lt;TH&gt;&lt;xsl:value-of select="@column-label"/&gt;&lt;/TH&gt;
+          &lt;/xsl:for-each&gt;
+          &lt;/TR&gt;
+          &lt;xsl:apply-templates select="$table/sql/row-set/row"/&gt;
+          &lt;xsl:text&gt;&amp;#10;&lt;/xsl:text&gt;
+        &lt;/TABLE&gt;
+      &lt;/BODY&gt;
+    &lt;/HTML&gt; 
+    &lt;!-- 3. Close the connection --&gt;
+    &lt;xsl:value-of select="sql:close($products)"/&gt;
+  &lt;/xsl:template&gt;
+
+  &lt;xsl:template match="row"&gt;
+        &lt;TR&gt;
+          &lt;xsl:apply-templates select="col"/&gt;
+        &lt;/TR&gt;
+  &lt;/xsl:template&gt;
+
+  &lt;xsl:template match="col"&gt;
+    &lt;TD&gt;
+      &lt;!-- Here is the column data --&gt;
+      &lt;xsl:value-of select="text()"/&gt;
+    &lt;/TD&gt;
+  &lt;/xsl:template&gt;
+
+&lt;/xsl:stylesheet&gt;
+</pre>
+</blockquote>
+
+
+
+<a name="pipedocument">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>pipeDocument</h3>
+<p>Implemented in <a href="apidocs/org/apache/xalan/lib/PipeDocument.html">
+org.apache.xalan.lib.PipeDocument</a>,<br />
+the pipeDocument extension element pipes an XML document through a series of one or more 
+transformations. The output of each transformation is piped to the next transformation. The 
+final transformation creates a target file.</p>
+<p>The namespace for the pipeDocument extension is:</p>
+<p>     <code>http://xml.apache.org/xalan/PipeDocument</code>
+</p>
+<p>Suppose, for example,you have a stylesheet that is processing a "book" document with elements 
+designating the documents to be transformed. This primary stylesheet generates a table of 
+contents for the book. For each source document it uses a pipeDocument extension element to pipe 
+the document through a series of one or more transformations.</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Sample: generating a table of contents and an HTML "book"</h4>
+<p>An XML "book" document contains a number of doc elements like the following:<br />
+<code>&lt;doc source="sources/intro.xml" id="intro" label="Introduction"&gt;</code>
+</p>
+<p>The source attribute identifies the document to be transformed, the id is the output file name, 
+and the primary stylesheet places the label in the table-of-contents link.</p>
+<p>The stylesheet declares the pipeDocument namespace, designates the namespace prefix as an 
+extension element prefix, and contains a parameter designating where the output files are to 
+be placed:</p>
+<blockquote class="source">
+<pre>&lt;xsl:stylesheet version="1.0"
+   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+   xmlns:pipe="http://xml.apache.org/xalan/PipeDocument"
+   extension-element-prefixes="pipe"&gt;
+   
+&lt;xsl:param  name="destdir" value="html/output"&gt;
+...</pre>
+</blockquote>
+<p>This stylesheet contains a template where each doc element is processed. For each doc element, the 
+stylesheet adds an entry to the table-of-contents document. The extension element pipes the specified 
+document through a series of two transformations, with an stylesheet input parameter for the first 
+transformation. The pipeDocument target attribute designates the output from the second 
+transformation.</p>
+
+<blockquote class="source">
+<pre>&lt;xsl:template match="doc"&gt;
+  &lt;p&gt;
+    &lt;a href={$destdir}&gt;&lt;xsl:value-of select="@label"/&gt;&lt;a&gt;
+  &lt;/p&gt;
+
+  &lt;pipe:pipeDocument   source="{@source}" target="{$destdir/@id}"&gt;
+    &lt;stylesheet href="ss1.xsl"&gt;
+      &lt;param name="doc-id" value="@id"/&gt;
+    &lt;/stylesheet&gt;
+    &lt;stylesheet href="ss2.xsl"/&gt;   
+  &lt;/pipe:pipeDocument&gt;
+  
+&lt;/xsl:template&gt;</pre>
+</blockquote>
+ 
+<p>Notes:</p>
+ <ul>
+ <li>The base URI for the source attribute is the XML "book" document.</li>
+ <li>The target attribute is taken as is (the base is the current user directory from which this 
+     transformation is being run).</li>
+ <li>The stylsheet containg the extension element is the base URI for the stylesheet hrefs.</li>
+ </ul>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Variation: using pipeDocument in an empty stylesheet</h4>
+<p>Suppose you want to pipe a document through a series of transformations. You can use the pipeDocument 
+extension element to perform this operation by placing the extension element in an otherwise empty 
+stylesheet.</p>
+<p>The following stylesheet is used to merge the Xalan documents into a book (the first transformation), 
+and transform the book into a tree of formatting objects, which can then be used to generate a PDF file. 
+This transformation is invoked as follows:</p>
+<p>
+<code>java org.apache.xalan.xslt.Process -in printbook.xml</code>
+<br />
+<code> -param source printbook.xml</code>
+<br />
+<code> -param target xalanbook.fo</code>
+</p>
+<p>There is no XML input document or output document for the primary transformation, which does no more 
+than invoke the extension element.</p>
+<blockquote class="source">
+<pre>&lt;?xml version='1.0'?&gt;
+
+&lt;xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:pipe="http://xml.apache.org/xalan/PipeDocument"
+                extension-element-prefixes="pipe"&gt;
+
+&lt;xsl:param name="source"/&gt;
+&lt;xsl:param name="target"/&gt;
+
+&lt;xsl:template match="/"&gt;
+
+  &lt;pipe:pipeDocument 
+        source="{$source}"
+        target="{$target}"&gt;
+    &lt;stylesheet href="printbook_assemble.xsl"/&gt;
+    &lt;stylesheet href="bkbook8x11_xalan.xsl"/&gt;
+  &lt;/pipe:pipeDocument&gt;
+  
+&lt;/xsl:template&gt;
+
+&lt;/xsl:stylesheet&gt;</pre>
+</blockquote>
+
+  
+
+
+<a name="evaluate">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>evaluate</h3>
+<p>Implemented in <a href="apidocs/org/apache/xalan/lib/Extensions.html">
+org.apache.xalan.lib.Extensions</a>,<br />
+<code>evaluate (xpath-expression)</code> function returns the result of evaluating the xpath-expression 
+in the current XPath expression context (automatically passed in by the extension mechanism).</p>
+<p>Use the evaluation extension function when the value of the expression is not known until run time.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Although you can still use the evaluate extension function in the main Extensions class, the 
+preferred solution is to use the same function in the EXSLT dynamic package. This will make your 
+stylesheet more portable across XSLT processors that support EXSLT extensions.</td>
+</tr>
+</table>
+
+
+<a name="tokenize">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>tokenize</h3>
+<p>Implemented in <a href="apidocs/org/apache/xalan/lib/Extensions.html">
+org.apache.xalan.lib.Extensions</a>,<br /> 
+<code>tokenize (tokenize-string, delimiters)</code>
+<br />
+or<br />
+<code>tokenize (tokenize-string)</code> function returns a node-set containing one text node for each 
+token in the tokenize-string.</p>
+<p>The delimiters determine which characters are used to divide the tokenize-string into individual 
+tokens. If you do not include the delimiters argument, the function uses tab (&amp;#x09), linefeed 
+(&amp;#x0A), return (&amp;#x0D), and space (&amp;#x20) as delimiters. if tokenize-string is an empty 
+string or contains only delimiters, the result is an empty node-set.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Although you can still use the tokenize extension function in the main Extensions class, the 
+preferred solution is to use the same function in the EXSLT strings package. This will make your 
+stylesheet more portable across XSLT processors that support EXSLT extensions.</td>
+</tr>
+</table>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/faq.html b/xalan-j/faq.html
new file mode 100644
index 0000000..fc5d256
--- /dev/null
+++ b/xalan-j/faq.html
@@ -0,0 +1,1187 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Frequently asked questions</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Frequently asked questions</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>FAQs<br />
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2 class="faqSubHead">Questions</h2>
+<h3>General XSLT</h3>
+<ol start="1">
+<li>
+<a href="#faq-1">Where do I go to learn about XSLT</a>
+</li>
+<li>
+<a href="#faq-2">Where can I ask questions about XSLT</a>
+</li>
+<li>
+<a href="#faq-3">TrAX and JAXP</a>
+</li>
+</ol>
+<h3>Versions</h3>
+<ol start="4">
+<li>
+<a href="#faq-4">Determining Xalan-Java Version</a>
+</li>
+<li>
+<a href="#faq-5">Determining the Serializer Version</a>
+</li>
+<li>
+<a href="#faq-6">Which version of Xerces should I be using?</a>
+</li>
+<li>
+<a href="#faq-7">Compatibility with Xalan-Java version 1</a>
+</li>
+<li>
+<a href="#faq-8">Issues running Xalan-Java on JDK 1.3</a>
+</li>
+<li>
+<a href="#faq-9">Issues running Xalan-Java on JDK/JRE 1.4 or higher</a>
+</li>
+<li>
+<a href="#faq-10">Issues running Xalan-Java on Tomcat with JDK 1.4</a>
+</li>
+<li>
+<a href="#faq-11">Issues running Applets with XSLTC in Web Browsers with JAVA Plug-in (JRE 1.4)</a>
+</li>
+<li>
+<a href="#faq-12">Using the 'signature' file to verify a download</a>
+</li>
+</ol>
+<h3>Performance Issues</h3>
+<ol start="13">
+<li>
+<a href="#faq-13">Speeding up transformations</a>
+</li>
+<li>
+<a href="#faq-14">JAXP factory lookup procedure</a>
+</li>
+</ol>
+<h3>Namespace Related</h3>
+<ol start="15">
+<li>
+<a href="#faq-15">Retrieving nodes in the default namespace</a>
+</li>
+<li>
+<a href="#faq-16">Setting the parser to be namespace aware</a>
+</li>
+</ol>
+<h3>Common Errors</h3>
+<ol start="17">
+<li>
+<a href="#faq-17">NoClassDefFound errors</a>
+</li>
+<li>
+<a href="#faq-18">a "DOM006 Hierarchy request error"</a>
+</li>
+<li>
+<a href="#faq-19">Namespace not supported by SAXParser</a>
+</li>
+<li>
+<a href="#faq-20">Missing xsl:version attribute error</a>
+</li>
+<li>
+<a href="#faq-21">StackOverflowError with recursive stylesheet</a>
+</li>
+<li>
+<a href="#faq-22">OutOfMemoryError processing multiple documents</a>
+</li>
+<li>
+<a href="#faq-23">File Not Found error</a>
+</li>
+<li>
+<a href="#faq-24">No more DTM IDs are available</a>
+</li>
+<li>
+<a href="#faq-25">IllegalAccessError or could not load output_xml.properties                 on JDK 1.4</a>
+</li>
+</ol>
+<h3>Miscellaneous</h3>
+<ol start="26">
+<li>
+<a href="#faq-26">Chaining transformations</a>
+</li>
+<li>
+<a href="#faq-27">Stylesheet validation</a>
+</li>
+<li>
+<a href="#faq-28">Setting output encoding</a>
+</li>
+<li>
+<a href="#faq-29">Getting line and column numbers for errors in XML input documents and XSL stylesheets</a>
+</li>
+<li>
+<a href="#faq-30">Servlet unable to find classes for extension functions/elements</a>
+</li>
+<li>
+<a href="#faq-31">Translet name doesn't match stylesheet name</a>
+</li>
+</ol>
+<h2 class="faqSubHead">Answers</h2>
+<h3 id="faq-1" class="faqTitle">1. Where do I go to learn about XSLT</h3>
+<div class="faqQuestion">Where do I go to learn about XSLT?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>The definitive sources are the W3C XSLT and XPath recommendations:
+          <a href="http://www.w3.org/TR/xslt">XSL Transformations (XSLT) Version 1.0</a> and
+          <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version 1.0</a>.
+        </p>
+        <p>For a brief listing of tutorials, discussion forums, and other materials, see
+          <a href="overview.html#uptospeed">Getting up to speed with XSLT</a>.
+        </p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-2" class="faqTitle">2. Where can I ask questions about XSLT</h3>
+<div class="faqQuestion">Where can I ask questions about XSLT?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>
+<a href="http://marc.theaimsgroup.com/?l=xalan-dev&amp;r=1&amp;w=2">xalan-dev</a> and
+           <a href="http://marc.theaimsgroup.com/?l=xalan-j-users&amp;r=1&amp;w=2">xalan-j-users</a>
+           are for Xalan-Java questions only. This is not the best 
+           forum to ask general XSLT questions. The <a href="http://mulberrytech.com/xsl/xsl-list/index.html">Mulberry XSL Mailing List</a> is an 
+           excellent place to ask XSLT questions; please search
+          <a href="http://www.dpawson.co.uk/xsl/">XSL Frequently Asked Questions</a> to ensure your question has not been already asked.
+        </p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-3" class="faqTitle">3. TrAX and JAXP</h3>
+<div class="faqQuestion">What are TrAX and JAXP, and are they related?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+      	<p>
+<a name="trax">‌</a>
+</p>
+        <p>TrAX is the Transformation API for XML. In November 2000, TrAX was revised and incorporated 
+           into JAXP, the JAVA API for XML Processing. JAXP (including TrAX) provides users a standard, 
+           vendor-neutral API for working with (and transforming) XML documents. You can use this API 
+           to build applications that are not bound to the particular implementation details of a given 
+           XML parser or XSL transformer.</p>
+        <p>Xalan-Java includes the JAXP packages, implements the TrAX portion of 
+           that API (javax.xml.transform....), implements the XPath API of JAXP (javax.xml.xpath....), 
+           and includes xercesImpl.jar from  
+           <a href="http://xerces.apache.org/xerces2-j/index.html">Xerces-Java 2.11.0</a>, which implements the parser portion of the API 
+           (javax.xml.parser....).</p>
+        <p>For more information, see <a href="trax.html">Using the JAXP Transform APIs</a> and
+          <a href="https://jaxp.java.net/">Java API for XML Processing (JAXP) 1.3</a>.
+        </p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-4" class="faqTitle">4. Determining Xalan-Java Version</h3>
+<div class="faqQuestion">How do I see what version of Xalan-Java I'm running? How do I determine 
+         which parser I'm using?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>
+          <a name="environmentcheck">‌</a>
+        </p>
+        <p>
+          <b>Using the EnvironmentCheck utility:</b> To help diagnose classpath problems and also 
+              determine which version of Xalan-Java is being used, try running 
+              Xalan-Java's environment checking utility.
+        </p>
+        <p>You can run this utility from the command line as follows:</p>
+        <p>
+          <code>java org.apache.xalan.xslt.EnvironmentCheck [-out outFile]</code>
+        </p>
+        <p>You can also call this utility from within your application. For example,</p>
+        <p>
+          <code>boolean environmentOK = (new EnvironmentCheck()).checkEnvironment (yourPrintWriter);</code>
+        </p>
+        <p>Be sure to run EnvironmentCheck in the environment where you are experiencing the problem. 
+           For example, if you get a NoClassDefFound error from a command-line application, run 
+           EnvironmentCheck on the command line with exactly the same classpath. If the error occurs 
+           inside your Java application (or in a servlet, etc.), be sure to call the EnvironmentCheck 
+           checkEnvironment(...) method from within your running application.</p>
+        <p>Best of all, you can call checkEnvironment from a stylesheet using extensions:</p>
+        <blockquote class="source">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+    xmlns:xalan="http://xml.apache.org/xalan"
+    exclude-result-prefixes="xalan"&gt;
+&lt;xsl:output indent="yes"/&gt;
+
+&lt;xsl:template match="/"&gt;
+  &lt;out&gt;
+    &lt;xsl:copy-of select="xalan:checkEnvironment()"/&gt;
+  &lt;/out&gt;
+&lt;/xsl:template&gt;
+&lt;/xsl:stylesheet&gt;</pre>
+</blockquote>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-5" class="faqTitle">5. Determining the Serializer Version</h3>
+<div class="faqQuestion">How do I see what version of the Serializer I'm running? </div>
+<br />
+<hr />
+<div class="faqAnswer">
+          <a name="serlializercheck">‌</a>          
+        <p>
+          Xalan's serialier is now shared with Xerces. It may be packaged in Xalan, or Xerces,
+          or in the JRE itself. You can run the serializer's <b>Version</b> utility from the command line as follows:
+        </p>
+        <p>
+          <code>java org.apache.xml.serializer.Version</code>
+        </p>
+        The output should indicate which serializer you are using.
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-6" class="faqTitle">6. Which version of Xerces should I be using?</h3>
+<div class="faqQuestion">Which version of Xerces-Java should I be using?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>
+<a href="http://xalan.apache.org/xalan-j">Xalan-Java Version 2.7.2</a> has been tested with <a href="http://xerces.apache.org/xerces2-j/index.html">Xerces-Java 2.11.0</a>. 
+           See <a href="readme.html#status">Status</a>.
+        </p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-7" class="faqTitle">7. Compatibility with Xalan-Java version 1</h3>
+<div class="faqQuestion">How do I run applications that use the Xalan-Java version 1 API with Xalan-Java</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>The Xalan-Java version 1 compatibility API has been deprecated and removed, so you 
+           must use the Xalan-Java version 2 API. We strongly encourage you to use the 
+           <a href="https://jaxp.java.net/">Java API for XML Processing (JAXP) 1.3</a>. For more information, see 
+           the FAQ on <a href="#trax">TrAX and JAXP.</a>
+</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-8" class="faqTitle">8. Issues running Xalan-Java on JDK 1.3</h3>
+<div class="faqQuestion">I'm having a problem building or running Xalan-Java on the JDK 1.3.</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>
+<a name="jdk13">‌</a>
+</p>
+        <p>The JDK 1.3 automatically places everything in the lib/ext directory in front of everything 
+           you place on the classpath. If this directory contains a version of DOM, JAXP, or Xerces 
+           that predates the Xalan-Java distribution you are using, you may have problems!</p>
+        <p>The IBM JDK 1.3 includes an earlier version of xerces.jar in the lib/ext directory, a 
+           version that does not implement the JAXP 1.3 interfaces and therefore does not work with the 
+           current Xalan-Java release. Accordingly, you must either remove the 
+           xerces.jar that is in that directory or replace it with the xercesImpl.jar that is included 
+           with the Xalan-Java distribution.</p>
+        <p>The SUN JDK 1.3 includes a pre-1.1 version of the JAXP in crimson.jar. Either remove the 
+           crimson.jar in that directory or overwrite it with a newer crimson.jar that includes and 
+           implements the JAXP 1.3 interfaces.</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-9" class="faqTitle">9. Issues running Xalan-Java on JDK/JRE 1.4 or higher</h3>
+<div class="faqQuestion">I'm having a problem running Xalan-Java on JDK/JRE 1.4 or higher</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>
+<a name="jdk14">‌</a>
+</p>      
+        <p>JDK/JRE 1.4, and JDK/JRE 5.0 is packaged with an old version of Xalan-Java. The JDK/JRE 
+           will attempt to use this version instead of any on the classpath. Unfortunately, 
+           this causes problems when attempting to use a newer version of Xalan-Java.</p>
+        <p>You can always determine which version of Xalan-Java you are running 
+           by using the <a href="#environmentcheck">EnvironmentCheck</a> class or by using the 
+           xalan:checkEnvironment extension function. It is highly recommended that you use this 
+           method to verify the version of Xalan-Java you are running, especially 
+           before opening a bug report.</p>
+        <p>To use a newer version of Xalan-Java and override the one packaged with the JDK:</p>
+        <ul>
+          <li>use the
+            <a href="http://java.sun.com/j2se/1.4.2/docs/guide/standards/">Endorsed Standards Override Mechanism</a>. Place the xalan.jar, serializer.jar, xercesImpl.jar 
+            and xml-apis.jar in the 
+            &lt;java-home&gt;\lib\endorsed directory, where
+            &lt;java-home&gt; is where the runtime software is installed.
+          </li>
+        </ul>
+        <p>The following methods
+          <b>do not work</b>:
+        </p>
+        <ul>
+          <li>Using the CLASSPATH environment variable or using -classpath to place the new classes 
+              in the classpath.</li>
+          <li>Using the -jar option to explicitly execute the classes inside the new jar files.</li>
+        </ul>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-10" class="faqTitle">10. Issues running Xalan-Java on Tomcat with JDK 1.4</h3>
+<div class="faqQuestion">I got java.lang.IllegalAccessError running Xalan-Java on Tomcat with JDK 1.4.</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>
+<a name="tomcat">‌</a>
+</p>
+        <p>
+<a href="http://tomcat.apache.org/index.html">jakarta-tomcat 4.1.*</a> is packed
+           with an old version of xercesImpl.jar. Based on the <a href="http://java.sun.com/j2se/1.4.2/docs/guide/standards/">Endorsed Standards Override Mechanism</a>, you should
+           replace it with the newer xercesImpl.jar. You should add a newer xalan.jar and serializer.jar 
+           to Tomcat as well.  
+           Read the FAQ about <a href="#jdk14">Issues running Xalan-Java on JDK/JRE 1.4 or higher</a>. Place the 
+           xalan.jar, serializer.jar, and xercesImpl.jar in the &lt;Tomcat_Home&gt;\common\endorsed directory, where 
+           &lt;Tomcat_Home&gt; is where the Tomcat application server is installed.</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-11" class="faqTitle">11. Issues running Applets with XSLTC in Web Browsers with JAVA Plug-in (JRE 1.4)</h3>
+<div class="faqQuestion">I got javax.xml.transform.TransformerException running my applet which uses XSLTC in JRE 1.4.</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>
+<a name="applet">‌</a>
+</p>
+        <p>To overwrite an older version of Xalan Java; packaged with JRE 1.4 or higher you can add a newer 
+        xalan.jar and serializer.jar to the &lt;jre-home&gt;\lib\endorsed directory. Read the FAQ about 
+        <a href="#jdk14">Issues running 
+        Xalan-Java on JDK/JRE 1.4 or higer</a>.  If there is a META-INF/services/javax.xml.transform.TransformerFactory
+        file in xalan.jar (as there is in the Xalan Java distributions), then the TransformerFactoryImpl 
+        setting in this file will be used by the JVM during the factory finder lookup procedure.  
+        The TransformerFactoryImpl for the Xalan Java Interpretive processor is the default setting in the 
+        META-INF/services/javax.xml.transform.TransformerFactory file, therefore, you will get an error
+        when your applet attempts to use the XSLTC implementation.</p>
+        <p>To work around this problem, you can change the contents of the 
+        META-INF/services/javax.xml.transform.TransformerFactory file in xalan.jar so that it refers to the
+        transformer factory class implementation for XSLTC, org.apache.xalan.xsltc.trax.TransformerFactoryImpl. </p>
+        <p>Another solution is to create a jar that contains a META-INF/services/javax.xml.transform.TransformerFactory file 
+        containing the value org.apache.xalan.xsltc.trax.TransformerFactoryImpl.  Place the jar in the 
+         &lt;jre-home&gt;\lib\endorsed directory. When you name your jar file, the ASCII code of the first 
+        character should be smaller than the ASCII code of "X" to ensure that your jar will be loaded before 
+        xalan.jar</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-12" class="faqTitle">12. Using the 'signature' file to verify a download</h3>
+<div class="faqQuestion">How do I use the "signature" file to verify my download?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>For each Xalan-Java download file there is a corresponding signature file. 
+        The signature file for xalan-j_2_0_1.tar.gz, for example, is xalan-j_2_0_1.tar.gz.sig.
+        </p>
+        <p>The .sig files are PGP signatures of the actual .zip or .tar.gz
+        download files.  You can use these files to verify the authenticity of the download. You do not 
+        need the .sig file to use the corresponding download file.</p>
+        <p>To check the authenticity of a Xalan-Java distribution, you need a copy of
+        PGP which is available in a number of licenses, including some free
+        non-commercial licenses, either from an mit.edu site or on
+        the pgp.com site. Once you have a version of PGP installed, you
+        should be able to 'verify the signature' of the .sig file, which basically verifies that the 
+        corresponding .zip or tar.gz file has not been changed since we signed it.</p>
+        <p>The PGP key can be found in 
+        <a href="http://svn.apache.org/viewvc/xalan/java/trunk/KEYS">KEYS.</a>
+</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-13" class="faqTitle">13. Speeding up transformations</h3>
+<div class="faqQuestion">What can I do to speed up transformations?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>In the ongoing development of Xalan-Java, enhancing performance is 
+           the primary goal of the Xalan-Java team.  Here are some preliminary 
+           suggestions for you to keep in mind as you set up your applications:</p>
+        <ul>
+          <li>Use a Templates object (with a different Transformers for each transformation) to 
+              perform multiple transformations with the same set of stylesheet instructions (see
+            <a href="usagepatterns.html#multithreading">Multithreading</a>).
+            <br />
+            <br />
+          </li>
+          <li>Set up your stylesheets to function efficiently.
+            <br />
+            <br />
+          </li>
+          <ul>
+            <li>Don't use "//" (descendant axes) patterns near the root of a large document.
+              <br />
+              <br />
+            </li>
+            <li>Use xsl:key elements and the key() function as an efficient way to retrieve node sets.
+              <br />
+              <br />
+            </li>
+            <li>Where possible, use pattern matching rather than xsl:if or xsl:when statements.
+              <br />
+              <br />
+            </li>
+            <li>xsl:for-each is fast because it does not require pattern matching.
+              <br />
+              <br />
+            </li>
+            <li>Keep in mind that xsl:sort prevents incremental processing.
+              <br />
+              <br />
+            </li>
+            <li>When you create variables, <br />
+<code>&lt;xsl:variable name="fooElem" select="foo"/&gt;</code>
+<br /> is usually faster than
+              <br />
+<code>&lt;xsl:variable name="fooElem"&gt;&lt;xsl:value-of-select="foo"/&gt;&lt;/xsl:variable&gt;</code>
+              <br />
+              <br />
+            </li>
+            <li>Be careful using the last() function.
+              <br />
+              <br />
+            </li>
+            <li>The use of index predicates within match patterns can be expensive.
+              <br />
+              <br />
+            </li>
+            <li>Decoding and encoding is expensive.
+              <br />
+              <br />
+            </li>
+          </ul>
+          <li>For the ultimate in server-side scalability, perform transform operations on the client. 
+              For examples, see
+            <a href="samples.html#appletxmltohtml">appletXMLtoHTML</a> and
+            <a href="samples.html#get-todo-list">get-todo-list</a>.
+          </li>
+        </ul>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-14" class="faqTitle">14. JAXP factory lookup procedure</h3>
+<div class="faqQuestion">What is the JAXP factory lookup procedure and does it affect performance?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+      <p>JAXP uses an ordered lookup procedure to find factory implementations, such as
+         an implementation of javax.xml.transform.TransformerFactory.  For information
+         on this procedure, refer to Section 3 Plugability in <a href="https://jaxp.java.net/">JAXP 1.3</a>.  
+       </p>
+       <p>In most cases, Factory classes need only be looked up once for an application, so
+          performance is not an issue.  However, there may be scenarios where the lookup
+          procedure executes multiple times which could impact performance.  In these cases,
+          users may want to set system properties or populate the jaxp.properties file in order
+          to shorten the time spent in the lookup procedure.
+       </p>   
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-15" class="faqTitle">15. Retrieving nodes in the default namespace</h3>
+<div class="faqQuestion">XPath isn't retrieving nodes that are in the default namespace I defined. How do I get them?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>If you are looking for nodes in a namespace, the XPath expression must include a namespace 
+           prefix that you have mapped to the namespace with an xmlns declaration. If you have declared 
+           a default namespace, it does not have a prefix (see 
+           <a href="http://www.w3.org/TR/xpath.html#node-tests">XPath Node Tests</a>). In order 
+           to construct XPath expressions to retrieve nodes from this namespace, you must add a 
+           namespace declaration that provides a prefix you can include in the XPath expressions.</p>
+        <p>Suppose, for example, you you want to locate nodes in a default namespace declared as follows:
+          <br />
+          <code>xmlns="http://my-namespace"</code>
+        </p>
+        <p>Add a namespace declaration with a prefix:
+          <br />
+          <code>xmlns:foo="http://my-namespace"</code>
+        </p>
+        <p>Then you can use foo: in your XPath expression.</p>
+        <p>Hint: Avoiding the use of default namespaces will prevent this problem from occuring.</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-16" class="faqTitle">16. Setting the parser to be namespace aware</h3>
+<div class="faqQuestion">
+        How do I set my parser to be namespace aware?
+      </div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>
+<a name="namespace-aware">‌</a>
+</p>
+        <p>If you use a TransformerFactory to process a stylesheet Source and generate a Transformer, 
+           the TransformerFactory instructs the SAXParserFactory to set the parser's namespaceAware 
+           property to true. But if you call the parser directly, you may need to set the namespaceAware 
+           property yourself. for example:</p>
+        <blockquote class="source">
+<pre>javax.xml.parsers.SAXParserFactory spFactory =
+  javax.xml.parsers.SAXParserFactory.newInstance();
+spFactory.setNamespaceAware(true);</pre>
+</blockquote>
+        <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">For more information about setting the namespaceAware property, and SAX2 vs. JAXP default 
+              settings, see <a href="http://people.apache.org/~edwingo/jaxp-faq.html#nsDefaults">JAXP FAQ: 
+              Warning about namespace processing defaults</a>.
+        </td>
+</tr>
+</table>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-17" class="faqTitle">17. NoClassDefFound errors</h3>
+<div class="faqQuestion">I'm getting a NoClassDefFound error. What has to be on the classpath?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <ol>
+          <li>xalan.jar, serializer.jar, xml-apis.jar, and xercesImpl.jar -- or the XML parser you are using -- must 
+              always be on the classpath.
+            <br />
+            <br />
+          </li>
+          <li>To run the samples in the samples subdirectories, xalansamples.jar must be on the 
+              classpath. To run the servlet samples, you must place xalanservlet.war 
+              on a web server with a servlet engine and you must put the javax.servlet and
+              javax.servlet.http packages on the classpath.  These packages 
+              are available via the servlet.jar file found in Apache Tomcat ( see <a href="http://tomcat.apache.org/">The Jakarta Site - Apache Tomcat</a> ).
+            <br />
+            <br />
+          </li>
+          <li>To run extensions which use the component and script extension elements (including the 
+              samples in samples/extensions), bsf.jar must be on the classpath. To run extensions 
+              implemented in JavaScript, js.jar must also be on the classpath. For information on what 
+              you need to run extensions implemented in other scripting languages, see
+              <a href="extensions.html#supported-lang">Supported languages</a>.
+          </li>
+        </ol>
+    You can check the correctness of your environment with the
+        <a href="#environmentcheck">EnvironmentCheck</a> feature.
+        <p>For more information, see
+          <a href="getstarted.html#classpath">Setting up the system classpath</a>.
+        </p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-18" class="faqTitle">18. a "DOM006 Hierarchy request error"</h3>
+<div class="faqQuestion">Why do I get a "DOM006 Hierarchy request error" when I try to transform into a DOM Document node?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>This error occurs when Xalan-Java tries to add a Node to a Document node 
+           where it isn't allowed. For example, attempting to add non-whitespace text to the DOM Document 
+           node produces this error.</p>
+        <p>The error can also occur when a Document node is created with the DOMImplementation 
+           createDocument() method, which takes a qualified name as an argument and creates an element 
+           node.  If you then pass the returned Document node to Xalan-Java, you 
+           get a "DOM006 Hierarchy request error" when Xalan-Java tries to add a 
+           second element to the Document node. The solution is to either use the DocumentBuilder 
+           newDocument() method to create a Document that does not contain an element node, or use a 
+           DocumentFragment. It should be noted that the DocumentBuilder newDocument() method is 
+           "Non-preferred" according to the JAXP 1.3 documentation.</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-19" class="faqTitle">19. Namespace not supported by SAXParser</h3>
+<div class="faqQuestion">Why am I getting a "Namespace not supported by SAXParser exception?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>We have seen this problem arise for two quite different reasons:</p>
+        <ul>
+          <li>SAX1 interfaces are on your classpath in front of the SAX2 interfaces provided with 
+              your XML parser.
+            <br />
+            <br />
+  or
+            <br />
+            <br />
+          </li>
+          <li>The parser you are using to process a stylesheet Source and generate a Transformer does 
+              not have the namespaceAware property set to true.</li>
+        </ul>
+        <p>
+          <b>SAX1 on the classpath</b>
+        </p>
+        <p>SAX1 should not be on your classpath. The SAX1 interfaces and implementations of the SAX1 
+           SAX parser are not namespace aware.</p>
+        <p>To help diagnose your classpath, you can use the
+          <a href="#environmentcheck">EnvironmentCheck
+  utility</a>. If you are running under JDK 1.3, see
+          <a href="#jdk13">Issues running Xalan-Java on JDK
+  1.3</a>. If you are running a servlet, make sure the webserver is not placing SAX1 on the
+  classpath.
+        </p>
+        <p>When you create a Transformer, you must use a
+          <a href="#namespace-aware">namespace-aware</a> parser to parse the stylesheet.
+        </p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-20" class="faqTitle">20. Missing xsl:version attribute error</h3>
+<div class="faqQuestion">I'm getting an error about my stylesheet missing the xsl:version attribute - what's wrong?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>There are two common causes for this error.</p>
+        <ol>
+          <li>Using the wrong URI for the xsl: prefix will cause this message. URIs, and namespace 
+              URIs in particular, are case sensitive. Ensure the URI for the xsl namespace is 
+              "http://www.w3.org/1999/XSL/Transform".<br />
+<br />
+</li>
+          <li>The parser you are using to process a stylesheet Source and generate a Transformer 
+              does not have the namespaceAware property set to true.<br />
+          When you create a Transformer, you must use a <a href="#namespace-aware">namespace-aware</a> parser to parse the stylesheet.</li>
+        </ol>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-21" class="faqTitle">21. StackOverflowError with recursive stylesheet</h3>
+<div class="faqQuestion">Xalan-Java dies with a java.lang.StackOverflowError when I run a deeply 
+         recursive stylesheet. The same stylesheet worked fine in the past (or on other machines). 
+         What's happening?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>That may not be our fault.  As of JDK 1.3.x, many Java Virtual Machine publishers reduced 
+           the default size of a thread's call stack from 1MB to 256KB. This allows more threads to 
+           run simultaneously, but it means that each thread is more limited in how deeply its function 
+           calls can be nested.</p>
+	<p>Some JVMs may offer an option that allows you to raise this limit. For example, in Sun 
+	   JDK 1.3.1 you can start JVM with the -Xss1m option to allow each thread to use a full 
+	   megabyte.  In IBM's JDK you can start with the -Xss1m and -Xoss1m options.  Other JVMs 
+	   may set this in other ways, or may not allow you to control it at all; check the 
+	   documentation on your system for details.</p>
+        <p>Note too that on some platforms 1MB is an architectural upper limit on the stack size, so 
+           setting -Xss2m (or equivalent) may not allow deeper recursion than -Xss1m.</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-22" class="faqTitle">22. OutOfMemoryError processing multiple documents</h3>
+<div class="faqQuestion">I get a java.lang.OutOfMemoryError when I try to process multiple documents with the 
+         document() function. What can I do?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>As a general rule, Xalan-Java currently caches all of the documents 
+           that you read in with the document() function during a transformation.</p>
+        <p>If your objective is to transform a series of documents, you can break the process into a 
+           series of transformations. The
+          <a href="extensionslib.html#pipedocument">PipeDocument</a> extension element 
+          provides one strategy for batching a series of parallel transformations.</p>
+        <p>Another alternative is to place your document() call in the select attribute of an 
+           xsl:for-each instruction element and use a custom PI (Processing Instruction) to turn off 
+           document caching. Include an XPath expression in your document() call if you do not 
+           need to process the entire document.</p>
+        <p>Sample stylesheet fragment:</p>
+        <blockquote class="source">
+<pre>
+&lt;xsl:template match="doc"&gt;
+  &lt;xsl:for-each select="document(@href)/bar/zulu"&gt;
+    &lt;?xalan-doc-cache-off?&gt;
+    &lt;!-- process each document --&gt;
+  &lt;xsl:for-each&gt;
+&lt;/xsl:template&gt;</pre>
+</blockquote>
+        <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">PIs do not ordinarily uses namespaces, so "xalan:" is a 'fake' namespace we have 
+        included to indicate that this is not a standard PI.</td>
+</tr>
+</table>
+        <p>If you include an XPath expression in your document() call, you can also turn on
+          <a href="dtm.html#incremental">incremental transform</a> to eliminate the need 
+          to read in the entire document. In fact, you can take advantage of the incremental transform 
+          feature even if you are not turning off document caching.
+        </p>
+        <p>You can also increase your JVM heap size with the -Xmx or -mx flag, depending on which JVM 
+           you are using (you can include both flags, and the JVM will ignore the one it doesn't 
+           understand). For example, to give your JVM 64 meg, try
+          <br />
+          <code> java -Xmx64m -mx64m
+            <b>
+<i>Class</i>
+</b>
+          </code>
+        </p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-23" class="faqTitle">23. File Not Found error</h3>
+<div class="faqQuestion">Why do I get 'file not found' when I pass c:\path\filename.txt?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>Xalan-Java often requires legal URLs as system identifiers, not local 
+           pathnames (this is partly due to underlying parsers requiring this). A simple (but not always 
+           correct!) way to change a local pathname into a URL in Java 1.1x is:</p>
+        <blockquote class="source">
+<pre>
+  public static String filenameToURL(String filename)
+  {
+    File f = new File(filename);
+    String tmp = f.getAbsolutePath();
+    if (File.separatorChar == '\\')
+    {
+      tmp = tmp.replace('\\', '/');
+    }
+    // Note: gives incorrect results when filename already begins with
+file:///
+    return "file:///" + tmp;
+  }
+        </pre>
+</blockquote>
+        <p>For a slightly more detailed example, see org.apache.xml.utils.SystemIDResolver.</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-24" class="faqTitle">24. No more DTM IDs are available</h3>
+<div class="faqQuestion">What does: "XSLT Error (javax.xml.transform.TransformerException): 
+          org.apache.xml.dtm.DTMException: No more DTM IDs are available" mean?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+         <p>It means you are probably using a very old version of Xalan or Xalan-Java, 
+            likely the version 2.2D11 which was packaged in JDK1.4.  Architectural changes made in 
+            early 2002 should have eliminated this issue for almost all cases.</p>
+         <p>You should verify the version of Xalan-Java you are using by running 
+            the <a href="#environmentcheck">EnvironmentCheck</a> utility, 
+            and read the FAQ about <a href="#jdk14">Issues running Xalan-Java
+            on JDK 1.4</a>.</p>
+        </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-25" class="faqTitle">25. IllegalAccessError or could not load output_xml.properties                 on JDK 1.4</h3>
+<div class="faqQuestion">Why do I get a "java.lang.IllegalAccessError" or the message
+         "Could not load the property file 'output_xml.properties'" when I try
+         to transform using XSLTC or Xalan-Java Interpretive?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>These errors may occur if you use JDK 1.4 or later releases.</p>
+        <p>JRE 1.4 and later releases contain copies of Xalan-Java.  In some
+        cases, the JRE includes only Xalan-Java Interpretive, while in other cases it also
+        includes XSLTC.  Typically, the copy of the processor packaged
+        with the JRE will be loaded in preference to any copy of Xalan-Java on
+        your class path.</p>
+        <p>Beginning with Xalan-Java 2.5, Xalan-Java Interpretive and XSLTC are both
+        packaged in xalan.jar, and share some of the same classes.  If you
+        are using a version of the JRE that contains Xalan-Java Interpretive, but not
+        XSLTC, and you try to use XSLTC on your class path,
+        classes from that version of XSLTC may be loaded along with
+        classes from the version of Xalan-Java packaged with your JRE.</p>
+        <p>Because the classes may be from different versions of Xalan-Java, the
+        results may be unpredictable.  In particular, a
+        <code>java.lang.IllegalAccessError</code> may be thrown, or an
+        <code>org.apache.xml.utils.WrappedRuntimeException</code> containing
+        the message:  <code>"Could not load the property file
+        'output_xml.properties' for output method 'xml' (check
+        CLASSPATH)"</code> may be thrown.</p>
+        <p>To work around those problems, please read the FAQ entitled
+        <a href="#jdk14">Issues running Xalan-Java on JDK 1.4</a>.</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-26" class="faqTitle">26. Chaining transformations</h3>
+<div class="faqQuestion">How do you chain together a series of transformations?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>Xalan-Java supports two strategies for chaining together a series of 
+           transformations such that the output of each transformation provides input for the next 
+           transformation.</p>
+        <ul>
+          <li>For each transformation in the series, you can set one SAX ContentHandler to process 
+              the input, and another ContentHandler to process the output.
+            <br />
+            <br />
+          </li>
+          <li>You can also set up a series of parent-child relationships between an XMLReader and 
+              one or more XMLFilters.</li>
+        </ul>
+        <p>For the details and links to examples, see
+          <a href="usagepatterns.html#outasin">Using transformation output as input for 
+          another transformation</a>.</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-27" class="faqTitle">27. Stylesheet validation</h3>
+<div class="faqQuestion">How do I validate an XSL stylesheet?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>An XSL stylesheet is an XML document, so it can have a DOCTYPE and be subject to 
+           validation, right?</p>
+        <p>The XSLT Recommendation includes a
+          <a href="http://www.w3.org/TR/xslt#dtd">DTD Fragment 
+          for XSL Stylesheets</a> with some indications of what you need to do to create a 
+          complete DTD for a given stylesheet. Keep in mind that stylesheets can include literal 
+          result elements and produce output that is not valid XML.</p>
+        <p>You can use the xsl:stylesheet doctype defined in xsl-html40s.dtd for stylesheets that 
+           generate HTML.</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-28" class="faqTitle">28. Setting output encoding</h3>
+<div class="faqQuestion">Why is the output character encoding I set in the stylesheet not being used?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>If you use a character output stream to instantiate the
+          <a href="apidocs/javax/xml/transform/stream/StreamResult.html">StreamResult</a> object 
+          which holds the transformation output, the Writer uses its own encoding, not the encoding 
+          you specify in the stylesheet.</p>
+        <p>If you want to use the stylesheet output encoding, do not use StreamResult(java.io.Writer) 
+           to instantiate the holder for the output. Alternatively, you can specify the encoding when 
+           you create a Writer (java.io.OutputStreamWriter). Once the Writer exists, you cannot change 
+           its encoding. If the transformation is run in a servlet, it is possible
+           that the Writer is coming from the ServletResponse object.
+        </p>
+        <p>
+          If the stylesheet is run using the JAXP APIs and the Transformer's setOutputProperty() 
+          method is invoked, it is possible to set the <b>"encoding"</b> property and
+          over-ride the value in the stylesheet.
+        </p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-29" class="faqTitle">29. Getting line and column numbers for errors in XML input documents and XSL stylesheets</h3>
+<div class="faqQuestion">How do I get line numbers for errors in the XML or XSL input when I am performing a 
+         transformation?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>Use or mimic the command-line processor (<a href="apidocs/org/apache/xalan/xslt/Process.html">org.apache.xalan.xslt.Process</a>).
+        </p>
+        <p>A
+          <a href="apidocs/javax/xml/transform/TransformerException.html">TransformerException</a> generally wraps another exception, often a SAXParseException. The command-line processor uses the static
+          <a href="apidocs/org/apache/xml/utils/DefaultErrorHandler.html">org.apache.xml.utils.DefaultErrorHandler</a> printLocation() method to chase down the exception cause and get a
+          <a href="apidocs/javax/xml/transform/SourceLocator.html">SourceLocator</a> that can usually report line and column number.
+        </p>
+        <p>Suppose you wanted to modify the ValidateXMLInput sample in the samples/Validate 
+           subdirectory to include line and column numbers . All you need to do is call 
+           DefaultErrorHandler.printLocation() in the the Handler internal class error() and warning() 
+           methods. For example, replace</p>
+        <blockquote class="source">
+<pre>public void error (SAXParseException spe)
+  throws SAXException
+{
+  System.out.println("SAXParseException error: " + spe.getMessage());
+}</pre>
+</blockquote>
+        <p>with</p>
+        <blockquote class="source">
+<pre>public void error (SAXParseException spe)
+  throws SAXException
+{
+  PrintWriter pw = new PrintWriter(System.out, true);
+  org.apache.xml.utils.DefaultErrorHandler.printLocation(pw, spe);
+  pw.println("SAXParseException error: " + spe.getMessage());
+}</pre>
+</blockquote>
+        <p>You can also replicate code from the printLocation() method to obtain a SourceLocator, and 
+           then use the SourceLocator getLineNumber() and getColumnNumber() methods. The 
+           getRootSourceLocator() method below returns a SourceLocator.</p>
+        <blockquote class="source">
+<pre>
+import javax.xml.transform.SourceLocator;
+import javax.xml.transform.TransformerException;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.apache.xml.utils.SAXSourceLocator;
+import org.apache.xml.utils.WrappedRuntimeException;
+....
+public static SourceLocator getRootSourceLocator(Throwable exception)
+{
+  SourceLocator locator = null;
+  Throwable cause = exception;
+    
+  // Try to find the locator closest to the cause.
+  do
+  {
+    if(cause instanceof SAXParseException)
+    {
+      locator = new SAXSourceLocator((SAXParseException)cause);
+    }
+    else if (cause instanceof TransformerException)
+    {
+      SourceLocator causeLocator = 
+                    ((TransformerException)cause).getLocator();
+      if(null != causeLocator)
+        locator = causeLocator;
+    }
+    if(cause instanceof TransformerException)
+      cause = ((TransformerException)cause).getCause();
+    else if(cause instanceof WrappedRuntimeException)
+      cause = ((WrappedRuntimeException)cause).getException();
+    else if(cause instanceof SAXException)
+      cause = ((SAXException)cause).getException();
+    else
+      cause = null;
+  }
+  while(null != cause);
+        
+  return locator;
+}</pre>
+</blockquote>
+        <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">
+          <b>Xalan-Java exception handling:</b>  The exception architecture 
+          in Xalan-Java and with transforms in general is tricky because of 
+          multiple layers of exception handling, involving movement back and forth between SAX and 
+          Transformer exceptions and across pipes. Xalan-Java often uses a 
+          WrappedRuntimeException to throw over many layers of checked exceptions, in order not to 
+          have every possible checked exception be declared for every function in the stack, which 
+          means it has to catch this exception at the upper levels and unwrap the exception to pass 
+          it on as a TransformerException.
+          <br />
+          <br />A JAXP 1.3 TransformerException often wraps another exception. Two of the 
+          TransformerException structures that are frequently used to construct contained exceptions 
+          in JAXP 1.3 do not set the locator.  The locator is not set because we don't know the type 
+          of exception that the Throwable argument represents.  The solution is to chase up the 
+          contained exceptions to find the root cause, which will usually have a location set for 
+          you.  This can be somewhat tricky, as not all the exceptions may be TransformerExceptions.  
+          A good sample is in the DefaultHandler static printLocation() method, which the 
+          Xalan-Java command-line processor uses to report errors. You can also 
+          roll your own functions along the lines of the getRootSourceLocator() example above.
+        </td>
+</tr>
+</table>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-30" class="faqTitle">30. Servlet unable to find classes for extension functions/elements</h3>
+<div class="faqQuestion">My servlet cannot find classes that implement extension functions or elements. What can I do?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>If you install xalan.jar in the webserver's lib directory (e.g., tomcat/lib), as 
+           opposed to the servlet application's lib directory, then the Xalan-Java classes 
+           are loaded by a classloader that does not see the classes in the application's classloader 
+           (i.e., the extension classes, if you placed them there). The Xalan-Java
+           classes try to load the extension classes using their own classloader, and that attempt 
+           fails.</p>
+        <p>Workaround: place xalan.jar in the servlet application's lib directory and NOT in the webserver's 
+           lib directory. Another workaround is to place the extension classes also in the webserver's
+           lib directory, but you generally want to avoid cluttering that directory.</p>
+        <p>Thanks to Gunnlauger Thor Briem (gthb@dimon.is) for providing this information.</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3 id="faq-31" class="faqTitle">31. Translet name doesn't match stylesheet name</h3>
+<div class="faqQuestion">My stylesheet is named <code>foo-bar.xsl</code>, but XSLTC
+         created a translet named <code>foo_bar</code>.  Is that a bug?</div>
+<br />
+<hr />
+<div class="faqAnswer">
+        <p>No.  The name of a translet is usually the name of the stylesheet,
+           the name specified using the <code>translet-name</code> attribute on
+           the XSLTC <code>TransformerFactory</code> or the name
+           specified for the translet on the command-line invocation.
+           However, the name of the translet is also the name of a Java class.
+           Any character that is not permitted in a class name is replaced with
+           an underscore.</p>
+      </div>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/features.html b/xalan-j/features.html
new file mode 100644
index 0000000..0c29cee
--- /dev/null
+++ b/xalan-j/features.html
@@ -0,0 +1,509 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Transform Features</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Transform Features</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>Features<br />
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Transform Features</h2>
+<p>Transform features are identified by URI Strings and fall into the following categories:</p>
+<ul>
+<li>
+<a href="#factoryfeature">Standard TransformationFactory features</a>
+</li>
+<li>
+<a href="#factoryattribute">Implementation-specific TransformerFactory attributes</a>
+</li>
+</ul>
+<a name="factoryfeature">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Standard TransformerFactory features</h3>
+<p>
+<a href="https://jaxp.java.net/">Java API for XML Processing (JAXP) 1.3</a> defines objects and methods for processing input and producing 
+output in a variety of formats, including character streams, SAX event streams, and DOM Documents.</p>
+<p>JAXP 1.3 defines the following features:</p>
+<ul>
+<li>
+<a href="#streamsource">StreamSource feature</a>
+</li>
+<li>
+<a href="#streamresult">StreamResult feature</a>
+</li>
+<li>
+<a href="#domsource">DOMSource feature</a>
+</li>
+<li>
+<a href="#domresult">DOMResult feature</a>
+</li>
+<li>
+<a href="#saxsource">SAXSource feature</a>
+</li>
+<li>
+<a href="#saxresult">SAXResult feature</a>
+</li>
+<li>
+<a href="#saxtransformerfactory">SAXTransformerFactory feature</a>
+</li>
+<li>
+<a href="#xmlfilter">XMLFilter feature</a>
+</li>
+<li>
+<a href="#secureprocessing">Secure processing feature</a>
+</li>
+</ul>
+<p>You can use the 
+ <a href="apidocs/javax/xml/transform/TransformerFactory.html#getFeature(java.lang.String)">TransformerFactory.getFeature(String)</a> 
+method to return a boolean indicating whether the implementation you are using supports the use of one of these objects or methods. For the String argument, provide the static String variable or literal URI String as detailed below.</p>
+<p>You can use the 
+<a href="apidocs/javax/xml/transform/TransformerFactory.html#setFeature(java.lang.String, boolean)">TransformerFactory.setFeature(String, boolean)</a>
+method to set the value of a feature. Xalan-Java only supports setting of the
+<a href="apidocs/javax/xml/XMLConstants.html#FEATURE_SECURE_PROCESSING">XMLConstants.FEATURE_SECURE_PROCESSING</a>
+feature. For all other features, TransformerFactory exposes their values, but cannot change their states.</p>
+<p>Xalan-Java supports <b>all</b> TransformerFactory features.</p>
+<a name="streamsource">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>StreamSource feature</h4>
+<p>
+<b>URI:</b> "http://javax.xml.transform.stream.StreamSource/feature"</p>
+<p>The implementation supports the processing of <a href="apidocs/javax/xml/transform/stream/StreamSource.html">StreamSource</a> input objects.</p>
+<p>To determine whether your implementation supports this feature (Xalan-Java does), you can use the static StreamSource.FEATURE variable  (equivalent to the URI String above) as follows:</p>
+<blockquote class="source">
+<pre>import javax.xml.transform.TransformerFactory;
+import javax.xml.stream.StreamSource;
+
+TransformerFactory tFact = TransformerFactory.newInstance();
+if (tFact.getFeature(StreamSource.FEATURE)){
+  // Can process a StreamSource.
+  ..
+}</pre>
+</blockquote>
+<p>For a example that uses this feature, see <a href="samples.html#simpletransform">SimpleTransform</a>.</p>
+<a name="streamresult">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>StreamResult feature</h4>
+<p>
+<b>URI:</b> "http://javax.xml.transform.stream.StreamResult/feature"</p>
+<p>The implementation supports the production of transformation output in the form of <a href="apidocs/javax/xml/transform/stream/StreamResult.html">StreamResult</a> objects.</p>
+<p>To determine whether your implementation supports this feature (Xalan-Java does), you can use the static StreamResult.FEATURE variable  (equivalent to the URI String above) as follows:</p>
+<blockquote class="source">
+<pre>import javax.xml.transform.TransformerFactory;
+import javax.xml.stream.StreamResult;
+..
+TransformerFactory tFact = TransformerFactory.newInstance();
+if (tFact.getFeature(StreamResult.FEATURE)){
+  // Can generate a StreamResult.
+  ..
+}</pre>
+</blockquote>
+<p>For a example that uses this feature, see <a href="samples.html#simpletransform">SimpleTransform</a>.</p>
+<a name="domsource">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>DOMSource feature</h4>
+<p>
+<b>URI:</b> "http://javax.xml.transform.dom.DOMSource/feature"</p>
+<p>The implementation supports the processing of XML input in the form of <a href="apidocs/javax/xml/transform/dom/DOMSource.html">DOMSource</a> objects.</p>
+<p>To determine whether your implementation supports this feature (Xalan-Java does), you can use the static DOMSource.FEATURE string variable (equivalent to the URI String above) as follows:</p>
+<blockquote class="source">
+<pre>import javax.xml.transform.TransformerFactory;
+import javax.xml.dom.DOMSource;
+..
+TransformerFactory tFact = TransformerFactory.newInstance();
+if (tFact.getFeature(DOMSource.FEATURE)){
+  // Can process DOM input
+  ..
+}</pre>
+</blockquote>
+<p>For a example that uses this feature, see <a href="samples.html#dom2dom">DOM2DOM</a>.</p>
+<a name="domresult">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>DOMResult feature</h4>
+<p>
+<b>URI:</b> "http://javax.xml.transform.dom.DOMResult/feature"</p>
+<p>The implementation supports the production of transformation output in the form of <a href="apidocs/javax/xml/transform/dom/DOMResult.html">DOMResult</a> objects.</p>
+<p>To determine whether your implementation supports this feature (Xalan-Java does), you can use the static DOMResult.FEATURE variable  (equivalent to the URI String above) as follows:</p>
+<blockquote class="source">
+<pre>import javax.xml.transform.TransformerFactory;
+import javax.xml.dom.DOMResult;
+..
+TransformerFactory tFact = TransformerFactory.newInstance();
+if (tFact.getFeature(DOMResult.FEATURE)){
+  // Can generate DOM output.
+  ..
+}</pre>
+</blockquote>
+<p>For a example that uses this feature, see <a href="samples.html#dom2dom">DOM2DOM</a>.</p>
+<a name="saxsource">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>SAXSource feature</h4>
+<p>
+<b>URI:</b> "http://javax.xml.transform.dom.SAXSource/feature"</p>
+<p>The implementation supports the processing of XML input in the form of <a href="apidocs/javax/xml/transform/sax/SAXSource.html">SAXSource</a> objects.</p>
+<p>To determine whether your implementation supports this feature (Xalan-Java does), you can use the static SAXSource.FEATURE string variable (equivalent to the URI String above) as follows:</p>
+<blockquote class="source">
+<pre>import javax.xml.transform.TransformerFactory;
+import javax.xml.sax.SAXSource;
+..
+TransformerFactory tFact = TransformerFactory.newInstance();
+if (tFact.getFeature(SAXSource.FEATURE)){
+  // Can process SAX events.
+  ..
+}</pre>
+</blockquote>
+<a name="saxresult">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>SAXResult feature</h4>
+<p>
+<b>URI:</b> "http://javax.xml.transform.dom.SAXResult/feature"</p>
+<p>The implementation supports the production of transformation output in the form of <a href="apidocs/javax/xml/transform/sax/SAXResult.html">SAXResult</a> objects.</p>
+<p>To determine whether your implementation supports this feature (Xalan-Java does), you can use the static SAXResult.FEATURE variable  (equivalent to the URI String above) as follows:</p>
+<blockquote class="source">
+<pre>import javax.xml.transform.TransformerFactory;
+import javax.xml.sax.SAXResult;
+..
+TransformerFactory tFact = TransformerFactory.newInstance();
+if (tFact.getFeature(SAXResult.FEATURE)){
+  // Can output SAX events.
+  ..
+}</pre>
+</blockquote>
+<p>For a example that uses this feature, see <a href="samples.html#sax2sax">SAX2SAX</a>.</p>
+<a name="saxtransformerfactory">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>SAXTransformerFactory feature</h4>
+<p>
+<b>URI:</b> "http://javax.xml.transform.sax.SAXTransformerFactory/feature"</p>
+<p>The implementation provides a <a href="apidocs/javax/xml/transform/sax/SAXTransformerFactory.html">SAXTransformerFactory</a>. 
+You may safely cast the TransformerFactory returned by TransformerFactory.newInstance() to a SAXTransformerFactory.</p>
+<p>To determine whether your implementation supports this feature (Xalan-Java does), you can use the static SAXTransformerFactory.FEATURE 
+variable (equivalent to the URI String above) as follows:</p>
+<blockquote class="source">
+<pre>import javax.xml.transform.TransformerFactory;
+import javax.xml.sax.SAXTransformerFactory;
+..
+TransformerFactory tFact = TransformerFactory.newInstance();
+if (tFact.getFeature(SAXTransformerFactory.FEATURE)){
+  SAXTransformerFactory saxTFact = (SAXTransformerFactory)tFact;
+  ..
+}</pre>
+</blockquote>
+<p>For a example that uses this feature, see <a href="samples.html#sax2sax">SAX2SAX</a>.</p>
+<a name="xmlfilter">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>XMLFilter feature</h4>
+<p>
+<b>URI: </b>"http://javax.xml.transform.sax.SAXTransformerFactory/feature/xmlfilter"</p>
+<p>The implementation supports the use of <a href="apidocs/org/xml/sax/XMLFilter.html">XMLFilter</a> to use the output of one 
+transformation as input for another transformation. The SAXTransformerFactory newXMLFilter(Source) and newXMLFilter(Templates) methods 
+are supported.</p>
+<p>To determine whether your implementation supports this feature (Xalan-Java does), you can use the static 
+SAXTransformerFactory.FEATURE_XMLFilter variable (equivalent to the URI String above) as follows:</p>
+<blockquote class="source">
+<pre>import javax.xml.transform.TransformerFactory;
+import javax.xml.sax.SAXTransformerFactory;
+..
+TransformerFactory tFact = TransformerFactory.newInstance();
+if (tFact.getFeature(SAXTransformerFactory.FEATURE_XMLFILTER))){
+  // Can use SAXTransformerFactory to get XMLFilters.
+  ..
+}</pre>
+</blockquote>
+<p>For an example that uses this feature to chain together a series of transformations, see 
+<a href="samples.html#usexmlfilters">UseXMLFilters</a>.</p>
+
+<a name="secureprocessing">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Secure processing feature</h4>
+<p>
+<b>URI: </b>"http://javax.xml.XMLConstants/feature/secure-processing"</p>
+<p>Xalan-Java supports the secure processing feature in both the interpretive and XSLTC 
+processors. When this feature is set to true, the implementation will apply a set of limits on the 
+XSLT/XML processing behavior to make the XSLT processor behave in a secure fashion. The limits are 
+implementation dependent. Xalan-Java applies the following limits when the secure processing feature 
+is set to true:<br />
+<br />
+<li>extension functions and extension elements are disabled.</li>
+<li>parsers created by the XSLT processors will also have the secure processing feature set to true.</li>
+</p>
+
+<a name="factoryattribute">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Xalan-Java TransformerFactory attributes</h3>
+<p>A given implementation may provide TransformerFactory attributes for which you can set and get values. Xalan-Java uses the 
+<a href="dtm.html"> DTM (Document Table Model)</a> to support three attributes which can be set to true or false:</p>
+<ul>
+<li>
+<a href="#optimize">optimize attribute</a>
+</li>
+<li>
+<a href="#incremental">incremental attribute</a>
+</li>
+<li>
+<a href="#source_location">source_location attribute</a>
+</li>
+</ul>
+<p>To get an attribute setting, use the TransformerFactory.getAttribute(String) method, which returns an Object. For these three Xalan-Java 
+attributes, you can cast the return value to a boolean. To set an attribute, use the TransformerFactory.setAttribute(String, Object) method. 
+For the String argument, provide the static String variable or literal URI String as detailed below. For the Object argument, use 
+Boolean.TRUE or Boolean.FALSE (or the Strings "true" or "false").</p>
+<a name="optimize">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>optimize attribute</h4>
+<p>
+<b>URI:</b> "http://xml.apache.org/xalan/features/optimize"</p>
+<p>Optimize stylesheet processing. By default, this attribute is set to true. You may need to set it to false for tooling applications. 
+For more information, see <a href="dtm.html#optimize">DTM optimize</a>.</p>
+<p>To turn optimization off, you can use the TransformerFactoryImpl.FEATURE_OPTIMIZE static variable (equivalent to the URI String above) 
+as follows:</p>
+<blockquote class="source">
+<pre>import javax.xml.transform.TransformerFactory;
+import org.apache.xalan.processor.TransformerFactoryImpl;
+..
+TransformerFactory tFact = TransformerFactory.newInstance();
+if (tFact instanceof TransformerFactoryImpl) {
+  tFact.setAttribute(TransformerFactoryImpl.FEATURE_OPTIMIZE, 
+                     Boolean.FALSE);
+}</pre>
+</blockquote>
+<a name="incremental">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>incremental attribute</h4>
+<p>
+<b>URI:</b> "http://xml.apache.org/xalan/features/incremental"</p>
+<p>Produce output incrementally, rather than waiting to finish parsing the input before generating any output. By default this attribute is set
+to false. You can turn this attribute on to transform large documents where the stylesheet structure is optimized to execute individual templates 
+without having to parse the entire document. For more information, see <a href="dtm.html#incremental">DTM incremental</a>.</p>
+<p>To turn incremental transformations on, you can use the TransformerFactoryImpl.FEATURE_INCREMENTAL static variable (equivalent to the URI String above) as follows:</p>
+<blockquote class="source">
+<pre>import javax.xml.transform.TransformerFactory;
+import org.apache.xalan.processor.TransformerFactoryImpl;
+..
+TransformerFactory tFact = TransformerFactory.newInstance();
+if (tFact instanceof TransformerFactoryImpl) {
+  tFact.setAttribute(TransformerFactoryImpl.FEATURE_INCREMENTAL, 
+                     Boolean.FALSE);
+}</pre>
+</blockquote>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The incremental feature is not currently supported by XSLTC.</td>
+</tr>
+</table>
+
+<a name="source_location">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>source_location attribute</h4>
+<p>
+<b>URI:</b> "http://xml.apache.org/xalan/properties/source-location"</p>
+<p>Provide a <a href="apidocs/javax/xml/transform/SourceLocator.html">SourceLocator</a> that can be used during a transformation
+to obtain the location of individual nodes in a source document (system ID, line number, and column number).</p>
+<p>By default, this attribute is set to false. Setting this attribute to true involves a substantial increase in storage cost per source 
+document node. If you want to use the <a href="extensionslib.html#nodeinfo">NodeInfo</a> extension functions (or some other mechanism) 
+to provide this information during a transform, you must set the attribute to true before generating the Transformer and processing the 
+stylesheet.</p>
+<p>The <a href="commandline.html">command-line utility</a> -L flag sets this attribute to true. To set the source_location attribute
+programmatically, you can use the TransformerFactoryImpl.FEATURE_SOURCE_LOCATION static variable (equivalent to the URI String above) 
+as follows:</p>
+<blockquote class="source">
+<pre>import javax.xml.transform.TransformerFactory;
+import org.apache.xalan.transformer.TransformerImpl;
+import org.apache.xalan.transformer.XalanProperties;
+..
+TransformerFactory tFact = TransformerFactory.newInstance();
+if (tFact instanceof TransformerFactoryImpl) {
+  tFact.setAttribute(TransformerFactoryImpl.FEATURE_SOURCE_LOCATION, 
+                     Boolean.TRUE);
+}</pre>
+</blockquote>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/getstarted.html b/xalan-j/getstarted.html
new file mode 100644
index 0000000..cd38993
--- /dev/null
+++ b/xalan-j/getstarted.html
@@ -0,0 +1,308 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Getting Started</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Getting Started</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>Getting Started<br />
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Getting Started</h2>
+<ul>
+  <li>
+<a href="#classpath">Setting up the system classpath</a>
+</li>
+  <li>
+<a href="#samples">Trying out the samples</a>
+</li>
+  <li>
+<a href="#commandline">Performing your own transformations from the command line</a>
+</li>
+  <li>
+<a href="#java-apps">Setting up your own XSLT applications</a>
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Unless otherwise specified, the usage discussed in this section refers to 
+the Xalan-Java Interpretive processor. See <a href="xsltc_usage.html">Getting Started with XSLTC 
+</a> for information on using the Xalan-Java Compiling processor.</td>
+</tr>
+</table>
+<br />
+<a name="classpath">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Setting up the system classpath</h3>
+  <p>At the very minimum, you must include <code>xalan.jar</code>, <code>serializer.jar</code>, <code>xml-apis.jar</code>, 
+     and <code>xercesImpl.jar</code> -- or another conformant XML parser -- see <a href="usagepatterns.html#plug">Plugging in a Transformer and XML parser</a>) on the system classpath. 
+     To run the Xalan-Java Interpretive processor sample applications, include <code>xalansamples.jar</code> 
+     (all samples other than the servlet) and <code>xalanservlet.jar</code>. All these JAR files are 
+     distributed with Xalan-Java. To run Javascript extensions, include <code>bsf.jar</code>, which can
+     be obtained from the <a href="http://jakarta.apache.org/bsf/index.html">Apache Jakarta
+     BSF project</a>. For extensions implemented in other scripting language, see 
+     <a href="extensions.html#supported-lang"> extensions language requirements</a> 
+     to identify any additional JAR files you must place on the classpath and where you can 
+     get them.</p>
+     
+  <p>If you are using XSLTC, see <a href="xsltc_usage.html">Getting Starting with XSLTC</a>.</p>
+     
+  <p>If you are using JDK or JRE 1.3.x or 1.4.x, include <code>tools.jar</code> on the classpath.  If you
+     are using JDK or JRE 1.1.8 (supported for runtime only), then include <code>classes.zip</code> on the 
+     classpath.</p>
+
+
+<a name="samples">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Trying out the samples</h3>
+  <p>The Xalan-Java distribution includes a number of basic sample applications. These samples are easy 
+     to run, and you can review the source files -- all of which are brief -- to see just how they 
+     work.</p>
+  <p>To run the samples, do the following:</p>
+  <ol>
+    <li>Set up your classpath (see above), including <code>xalansamples.jar</code> and (for the servlet) 
+        <code>xalanservlet.jar</code>.</li>
+    <li>Be sure the java executable is on your path.</li>
+    <li>Go to the samples subdirectory containing the sample (use the DOS shell if you are running 
+        Windows).</li>
+    <li>Use the java executable to run the sample from the command line.</li>
+    <li>Examine the application source and result files.</li>
+  </ol>
+  <p>For example, go to the SimpleTransform subdirectory and issue the following command:</p>
+  <p>
+<code>java SimpleTransform</code>
+</p>
+  <p>The sample writes the transformation result  to a file (birds.out). To see how the example works, 
+     examine the source files: birds.xml, birds.xsl, and SimpleTransform.java.</p>
+  <p>The extensions examples require additional JAR files on the classpath, and the procedure for 
+     running the sample applet and sample servlet is different. For more information about all the 
+     samples, see <a href="samples.html">Xalan-Java Samples</a>.</p>
+
+
+<a name="commandline">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Performing your own transformations from the command line</h3>
+  <p>org.apache.xalan.xslt.Process provides a basic utility for performing transformations from 
+     the command line. You can use this utility, for example, to run several of the extensions samples. 
+     The command line for most standard transformations is as follows:</p>
+  <p>
+<code>java org.apache.xalan.xslt.Process -in <b>
+<i>xmlSource</i>
+</b>
+</code>
+<br />
+     <code>    -xsl <b>
+<i>stylesheet</i>
+</b> -out <b>
+<i>outputfile</i>
+</b>
+</code>
+</p>
+  <p>where <b>
+<i>xmlSource</i>
+</b> is the XML source file name, <b>
+<i>stylesheet</i>
+</b> is the XSL 
+     stylesheet file name, and <b>
+<i>outputfile</i>
+</b> is the output file name.</p>
+  <p>If you want the output to be displayed on the screen, simply omit the -out flag and argument.</p>
+  <p>You can use this utility to try out XSL stylesheets you have written, to make sure they do what 
+     you expect with the XML source files they are designed to transform. The utility provides useful 
+     messages if the source file or stylesheet is not well formed. For more information, see 
+     <a href="commandline.html">Command-Line Utility</a>.</p>
+
+
+<a name="java-apps">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Setting up your own Java applications</h3>
+  <p>You can start by using your own XML source files and XSL stylesheets with the sample applications, 
+     which illustrate a number of the <a href="usagepatterns.html">basic usage patterns</a>.</p>
+  <p>Here is the basic procedure to keep in mind when you set up a transformation:</p>
+  <ol>
+    <li>Use the <a href="apidocs/javax/xml/transform/TransformerFactory.html">TransformerFactory</a> static newInstance() method to instantiate a TransformerFactory.<br />
+<br />
+</li>
+    <li>Use the TransformerFactory newTransformer(Source stylesheet) method to process the 
+        transformation instructions in an XSLT stylesheet Source (producing under the covers a 
+        <a href="apidocs/javax/xml/transform/Templates.html">Templates</a> object) and generate 
+        a <a href="apidocs/javax/xml/transform/Transformer.html">Transformer</a>.<br />
+<br />
+</li>
+    <li>Use the Transformer transform(Source xmlSource, Result transformResult) method to apply the 
+        transformation instructions (the Templates object) to the XML Source and produce the 
+        transformation Result.<br />
+<br />
+</li>
+  </ol>
+  <p>For more information about this procedure and its variations, see <a href="usagepatterns.html">Basic 
+     Usage Patterns</a>.</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/history.html b/xalan-j/history.html
new file mode 100644
index 0000000..8fead4b
--- /dev/null
+++ b/xalan-j/history.html
@@ -0,0 +1,22251 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: History of software changes</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">History of software changes</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>History of software changes</h2>
+<p>The following sections list the core software changes in each release since Xalan-Java version 2.0.D01.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">For XSLTC changes since XSLTC was incorporated into Xalan-Java, see
+                        <a href="xsltc_history.html">XSLTC software changes</a>.</td>
+</tr>
+</table>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.7.0</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/03/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorImport.java ProcessorInclude.java ProcessorLRE.java 
+ProcessorStylesheetElement.java StylesheetHandler.java XSLTElementDef.java xml-xalan/java/src/org/apache/xalan/templates 
+ElemExsltFunction.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Submitted by: Brian Minchau<br />
+Modified code for potential extension of classes with callbacks to the extensions.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>bhakti@apache.org<b>
+<i> on </i>
+</b>2004/03/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added a newline at the end of Encodings.properties to fix bug 27516.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/03/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib/sql ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xslt 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline ObjectFactory.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/dom ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax ObjectFactory.java xml-xalan/java/src/org/apache/xml/dtm 
+ObjectFactory.java xml-xalan/java/src/org/apache/xml/dtm/ref ObjectFactory.java xml-xalan/java/src/org/apache/xml/serializer 
+ObjectFactory.java xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java xml-xalan/java/src/org/apache/xpath/compiler 
+ObjectFactory.java xml-xalan/java/src/org/apache/xpath/functions ObjectFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a bug in the findProviderClass method of ObjectFactory
+classes. The argument of SecurityManager.checkPackageAccess should be a string
+value of a package name, instead of a class name.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/03/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java FunctionTable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch to hide static function table in FunctionTable class. We do not want to expose this table to others.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/03/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The xmlns URI should also be used to add NS decls as attributes to a DOM. However, this was only done for attributes that started 
+with 'xmlns:' and not for 'xmlns' (i.e. not for decls of the default NS).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/04/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xpath/objects 
+DTMXRTreeFrag.java XRTreeFrag.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The problem is that about 1800 * Thread_num  XRTreeFrag  objects were created. 
+It took too long for finalizer to be executed to release the references.<br />
+A lot of the objects have the same DTMs (and one XPathContext per thread).
+In my fix I am suggesting 
+a. to have new class DTMXRTreeFrag. The object of the class would 
+be created only for different DTMs (just 5 objects). 
+b. release the references to  DTM and XPathContext from XPathContext.reset()
+(and remove finalize() ).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/04/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java xml-xalan/java/src/org/apache/xml/utils Trie.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 28435<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Henry Zongaro<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/04/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates AVT.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Scaling Problem in org/apache/xalan/templates/AVT.evaluate. The problem is that synchronized calls 
+StringBufferPool.get() and StringBufferPool.free(buf) are redundant if (null != m_simpleString).
+The bug results in severe performance degradation in multi-thread test.
+The fix is simple just not to the calls when (null != m_simpleString).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2004/05/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/style/stylesheets designdoc2html.xsl<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Provide alternative text for images to address accessibility issues.
+All images should contain a short alternative text description that represents
+the function of the graphic.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2004/05/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs xml-site-style.tar.gz<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update document2html.xsl within this tarball to provide alternative text for images to address accessibility issues.
+All images should contain a short alternative text description that represents the function of the graphic.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/05/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/SAX2SAX SAX2SAX.java xml-xalan/java/samples/Pipe Pipe.java 
+xml-xalan/java/samples/DOM2DOM DOM2DOM.java
+xml-xalan/java/samples/UseStylesheetPI foo.xsl xml-xalan/java/samples/UseStylesheetParam foo.xsl
+xml-xalan/java/samples/UseXMLFilters UseXMLFilters.java
+xml-xalan/java/samples/Trace foo.xsl<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Clean up related to bugzilla 24304.
+There is no longer a space after the XML header. To keep the output
+of this sample the same as before properties were set on the
+serializer (indent="yes" and standalone="no" ).
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Sarah McNamara<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/05/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates AVT.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The problem is that we use an object pool (shared between different threads)
+to allocate  FastStringBuffer objects. The problem results in a serious performance
+degradation  on Z/OS and seems to be invisible on AIX.<br />
+1 Differences in optimization of object pools  for different JVMs and for different 
+platforms are known(I know it now too). It is not surprising that  Z/OS and AIX 
+have different results.<br />
+2. a. Object pools should be used only for very heavy object which live for a long time
+and could be reused in a lot of places. <br />
+b. Small local objects which size cannot be changed could be allocated on the
+stack =&gt; creating them with new in the local scope could be a good idea.<br />
+c. Caching middle size objects which can grow in size seems as a good idea,
+because such objects usually cannot be allocated on the stack.
+This is actually the case for FastStringBuffer objects. <br />
+Solution: Create FastStringBuffer objects in a local scope and use caching whenever possible.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/05/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/client XSLTProcessorApplet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Christine Li<br />
+Fixing binary compatibility (serialization/de-serialization) of XSLTProcessorApplet.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/06/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 29234<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Morris Kwan<br />
+This problem only showed up under XSLTC.  When setting the
+encoding a related field was not set.  Fixed this by over-riding the 
+set method for the stream serializers.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/06/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer WriterToUTF8Buffered.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 29372<br />
+Submitted by:	J Desrochers (john@ASCnet.COM)<br />
+Reviewed by:	Brian Minchau<br />
+
+A safe fix for chunking up an array for output. The length  was multiplied by the
+chunk number (0,1,2... chunks) then divided by "chunks". John's fix uses a 
+"long" to do the arithemetic because multiplying by the chunk number first 
+could cause an overflow.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes ChildIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla bug 28879.  Classes derived from NodeTest need to ensure
+that initNodeTest is called to set the filter for the kinds of nodes accepted.
+Without this change, ChildIterator will reject all nodes.
+
+Patch reviewed by Christine Li (jycli@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>aruny@apache.org<b>
+<i> on </i>
+</b>2004/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Description: Improper Serialization of document type declaration in xml document.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2004/07/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bug 30056.  Recover the performance degradation for xsl:copy and xsl:copy-of.
+Reviewed by Henry Zongaro (zongaro@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/07/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToTextStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 29706<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Christine Li<br />
+
+A fix to add a temporary vs. permanent output state to the serializer
+(AKA result-tree-handler).  In theory the XSLT processor should set the
+temporary or permanent output state, but we observer that when the
+encoding of a ToTextStream serializer is null, then such a serializer is
+in temporary output state.<br />
+
+In temorary output state we don't do any escaping or encoding or other 
+sorts of normalization on output. This will be done by another serializer 
+later on, and that one will be in permanent output state.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/07/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 30142<br />
+Submitted by:	Bruno Dumon (bruno@outerthought.org)<br />
+Reviewed by:	Brian Minchau<br />
+
+Thanks to Bruno for this simple one-line, fix where we forgot to put
+a space between the PUBLIC and SYSTEM ID's in a DOCTYPE declaration
+in serialized HTML output.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/07/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/objects XString.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Submitted by:	Yash Talwar<br />
+Reviewed by:	Brian Minchau<br />
+Fix for bugzilla 29655.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/08/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib Redirect.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: 30658<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Morris Kwan<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/08/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/trace TraceManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: 30301<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Morris Kwan<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/08/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/objects XRTreeFragSelectWrapper.java xml-xalan/java/src/org/apache/xpath/res 
+XPATHErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: 30262<br />
+Submitted by:	Yash Talwar<br />
+Reviewed by:	Henry Zongaro<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2004/08/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm DTMException.java xml-xalan/java/src/org/apache/xpath XPathException.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for printStackTrace when using JDK 1.4.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2004/08/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib/sql ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xslt 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/dom 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax 
+ObjectFactory.java xml-xalan/java/src/org/apache/xml/dtm ObjectFactory.java xml-xalan/java/src/org/apache/xml/dtm/ref ObjectFactory.java 
+xml-xalan/java/src/org/apache/xml/serializer ObjectFactory.java xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java 
+xml-xalan/java/src/org/apache/xpath/compiler ObjectFactory.java xml-xalan/java/src/org/apache/xpath/functions ObjectFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixing a potential memory leak.  The reader used to read the service provider is never closed if an IOException is thrown while 
+reading from it.  Adding a finally block so that the reader will always be closed.  Patch reviewed by Christine Li.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/08/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ObjectFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added serialVersionUID for classes which implement Serializable interface.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/08/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ObjectFactory.java xml-xalan/java/src/org/apache/xalan/lib/sql ObjectFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added serialVersionUID for classes which implement Serializable interface. Was reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/08/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorAttributeSet.java ProcessorCharacters.java ProcessorDecimalFormat.java 
+ProcessorExsltFuncResult.java ProcessorExsltFunction.java ProcessorGlobalParamDecl.java ProcessorGlobalVariableDecl.java 
+ProcessorImport.java ProcessorInclude.java ProcessorKey.java ProcessorLRE.java ProcessorNamespaceAlias.java ProcessorOutputElem.java 
+ProcessorPreserveSpace.java ProcessorStripSpace.java ProcessorStylesheetDoc.java ProcessorStylesheetElement.java ProcessorTemplate.java 
+ProcessorTemplateElem.java ProcessorText.java ProcessorUnknown.java WhitespaceInfoPaths.java XSLTElementProcessor.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added serialVersionUID for classes which implement Serializable interface. Patch created by Christine Li (jycli@ca.ibm.com) 
+and was reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/08/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates AVT.java AVTPart.java AVTPartSimple.java AVTPartXPath.java 
+DecimalFormatProperties.java ElemApplyImport.java ElemApplyTemplates.java ElemAttribute.java ElemAttributeSet.java 
+ElemCallTemplate.java ElemChoose.java ElemComment.java ElemCopy.java ElemCopyOf.java ElemElement.java ElemEmpty.java 
+ElemExsltFuncResult.java ElemExsltFunction.java ElemExtensionCall.java ElemExtensionDecl.java ElemExtensionScript.java 
+ElemFallback.java ElemForEach.java ElemIf.java ElemLiteralResult.java ElemMessage.java ElemNumber.java ElemOtherwise.java 
+ElemParam.java ElemPI.java ElemSort.java ElemTemplate.java ElemTemplateElement.java ElemText.java ElemTextLiteral.java 
+ElemUnknown.java ElemUse.java ElemValueOf.java ElemVariable.java ElemVariablePsuedo.java ElemWhen.java ElemWithParam.java 
+FuncDocument.java FuncFormatNumb.java FuncKey.java KeyDeclaration.java NamespaceAlias.java OutputProperties.java Stylesheet.java 
+StylesheetComposed.java StylesheetRoot.java TemplateList.java TemplateSubPatternAssociation.java WhiteSpaceInfo.java 
+XMLNSDecl.java XUnresolvedVariable.java XUnresolvedVariableSimple.java xml-xalan/java/src/org/apache/xalan/transformer 
+CountersTable.java KeyIterator.java KeyRefIterator.java xml-xalan/java/src/org/apache/xalan/xslt ObjectFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added serialVersionUID for classes which implement Serializable interface. Patch created by Christine Li (jycli@ca.ibm.com) 
+and was reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/08/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm DTMConfigurationException.java DTMDOMException.java ObjectFactory.java 
+xml-xalan/java/src/org/apache/xml/dtm/ref DTMNamedNodeMap.java IncrementalSAXSource_Filter.java ObjectFactory.java 
+xml-xalan/java/src/org/apache/xml/serializer ObjectFactory.java xml-xalan/java/src/org/apache/xml/utils MutableAttrListImpl.java 
+NameSpace.java NodeVector.java ObjectFactory.java ObjectPool.java QName.java SAXSourceLocator.java SerializableLocatorImpl.java 
+StopParseException.java StringVector.java URI.java WrappedRuntimeException.java WrongParserException.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added serialVersionUID for classes which implement Serializable interface. Patch created by Christine Li (jycli@ca.ibm.com) 
+and was reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/08/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath Expression.java FoundIndex.java NodeSetDTM.java XPath.java 
+XPathProcessorException.java xml-xalan/java/src/org/apache/xpath/axes AttributeIterator.java AxesWalker.java 
+BasicTestIterator.java ChildIterator.java ChildTestIterator.java DescendantIterator.java FilterExprIterator.java 
+FilterExprIteratorSimple.java FilterExprWalker.java IteratorPool.java LocPathIterator.java MatchPatternIterator.java 
+NodeSequence.java OneStepIterator.java OneStepIteratorForward.java PredicatedNodeTest.java ReverseAxesWalker.java 
+RTFIterator.java SelfIteratorNoPredicate.java UnionChildIterator.java UnionPathIterator.java WalkingIterator.java 
+WalkingIteratorSorted.java xml-xalan/java/src/org/apache/xpath/compiler ObjectFactory.java 
+xml-xalan/java/src/org/apache/xpath/functions FuncBoolean.java FuncCeiling.java FuncConcat.java FuncContains.java 
+FuncCount.java FuncCurrent.java FuncDoclocation.java FuncExtElementAvailable.java FuncExtFunction.java 
+FuncExtFunctionAvailable.java FuncFalse.java FuncFloor.java FuncGenerateId.java FuncId.java FuncLang.java 
+FuncLast.java FuncLocalPart.java FuncNamespace.java FuncNormalizeSpace.java FuncNot.java FuncNumber.java 
+FuncPosition.java FuncQname.java FuncRound.java FuncStartsWith.java FuncString.java FuncStringLength.java 
+FuncSubstring.java FuncSubstringAfter.java FuncSubstringBefore.java FuncSum.java FuncSystemProperty.java 
+Function.java Function2Args.java Function3Args.java FunctionDef1Arg.java FunctionMultiArgs.java FunctionOneArg.java 
+FuncTranslate.java FuncTrue.java FuncUnparsedEntityURI.java ObjectFactory.java WrongNumberArgsException.java 
+xml-xalan/java/src/org/apache/xpath/objects XBoolean.java XBooleanStatic.java XNodeSet.java XNodeSetForDOM.java 
+XNull.java XNumber.java XObject.java XRTreeFrag.java XRTreeFragSelectWrapper.java XString.java XStringForChars.java 
+XStringForFSB.java xml-xalan/java/src/org/apache/xpath/operations And.java Bool.java Div.java Equals.java Gt.java 
+Gte.java Lt.java Lte.java Minus.java Mod.java Mult.java Neg.java NotEquals.java Number.java Operation.java Or.java 
+Plus.java Quo.java String.java UnaryOperation.java Variable.java VariableSafeAbsRef.java 
+xml-xalan/java/src/org/apache/xpath/patterns ContextMatchStepPattern.java FunctionPattern.java NodeTest.java 
+StepPattern.java UnionPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added serialVersionUID for classes which implement Serializable interface. Patch created by Christine Li (jycli@ca.ibm.com) 
+and was reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/08/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils Trie.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Submitted by:	Brian Minchau<br />
+No external changes to Trie, but some additional APIs to make for a lower case
+only search in a Trie (possibly for future XHTML support where the element
+names are lower-case only).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java ToHTMLStream.java ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Minor changes to CharInfo to map charaters to decorated entities (e.g. "&amp;lt;" ) 
+rather than just entity names (e.g. "lt"), which is a minor performance improvement.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2004/08/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils XMLReaderManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a memory leak problem described in bugzilla 28082.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/09/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer SerializerTraceWriter.java ToStream.java 
+WriterChain.java WriterToASCI.java WriterToUTF8Buffered.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Submitted by:	Brian Minchau<br />
+Code clean up, to have an explicit interface, WriterChain, for writers that wrap other Writers or OutputStreams,
+e.g. WriterToUTF8Buffered.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/09/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToXMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Submitted by:	Brian Minchau<br />
+Javadoc changes, and added a call in ToXMLStream.processingInstruction() 
+method to effectively consider that a startDocument() call was made,
+if none was yet seen.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/09/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToSAXHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 27522<br />
+Submitted by:	Brian Minchau<br />
+committing patch from bugzilla 27522.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2004/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed bug where JDBC execute was being called instead ofg executeQuery.
+executeQuery will always retrurn a result set even if the query does not return any  rows
+where execute won't. This was causing a compatibility issue.
+Added in Record skip code to help with pagination.<br />
+PR: http://nagoya.apache.org/jira/browse/XALANJ-1908<br />
+Submitted by:	John Gentilin<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2004/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed bug where the close document method could not locxate the SQL Document.
+see http://nagoya.apache.org/jira/browse/XALANJ-1925.<br />
+Obtained from:  Moraine Didier mailto://didier.moraine@winterthur.be<br />
+Submitted by:	John Gentilin<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2004/09/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added new targets to support building the distribution packages (*-bin.tar.gz/.zip and *-src.tar.gz/.zip)
+without building the user guide and api docs.
+Reorganized some sections to make the targets more readable.
+Renamed the "*-nojardepends" rules to either "*-compile" or "*-build" to make them more intuitive.
+Reviewed by Christine Li.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/10/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java xml-xalan/java/src/org/apache/xpath/patterns NodeTest.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Yash Talwar (ytalwar@ca.ibm.com) for XALANJ-1186.
+The existing code in the interpretive processor was handling namespace::pre by
+resolving the namespace prefix "pre" in the stylesheet, and then looking for
+namespace nodes with that same URI in the input document.  In fact, it should
+look for namespaces nodes in the input document that declare the prefix "pre",
+without regard to the associated URI. The patch was reviewed by myself (zongaro@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/10/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSL Transformation drops content inside xsl:comment tags.<br />
+PR: XALANJ-1966<br />
+Submitted by:	Yash Talwar<br />
+Reviewed by:	 Brian Minchau<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/10/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/operations Variable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Null Pointer Exception on sorting using a variable.<br />
+PR: XALANJ-1942<br />
+Submitted by:	Yash Talwar<br />
+Reviewed by:	Brian Minchau<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/10/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorNamespaceAlias.java xml-xalan/java/src/org/apache/xalan/res 
+XSLTErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Null Pointer Exception when namespace-alias element says to use "#default" namespace but there is no default namespace.
+PR: XALANJ-1967<br />
+Submitted by:	Yash Talwar<br />
+Reviewed by:	Brian Minchau<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/10/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+At the suggestion of Joseph Kesselman, dropped contents of the org.apache.xml.utils.synthetic package, as they have never been used.
+Patch reviewed by Christine Li (jycli@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/10/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerGeneral.java 
+xml-xalan/java/xdocs/sources/xalan extensions.xml resources.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed of Bug report XalanJ-1822. Added alternative BSF implementation support for extension functions in languages other than Java
+Patch reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/10/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer/utils AttList.java BoolStack.java DOM2Helper.java Messages.java 
+SerializerMessages_en.java SerializerMessages.java StringToIntTable.java SystemIDResolver.java URI.java Utils.java 
+WrappedRuntimeException.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: XALANJ-1891<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Yash Talwar<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/10/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer/utils Messages.java SerializerMessages.java Utils.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Submitted by:	Brian Minchau<br />
+Made some fields final or private to make the objects immutable, especially the messages.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/10/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java CharInfo.java DOMSerializer.java ElemDesc.java 
+EmptySerializer.java EncodingInfo.java Encodings.java ExtendedContentHandler.java ExtendedLexicalHandler.java Method.java 
+NamespaceMappings.java ObjectFactory.java OutputPropertiesFactory.java OutputPropertyUtils.java SerializationHandler.java 
+Serializer.java SerializerBase.java SerializerConstants.java SerializerFactory.java SerializerTrace.java SerializerTraceWriter.java 
+ToHTMLSAXHandler.java ToHTMLStream.java ToSAXHandler.java ToStream.java ToTextSAXHandler.java ToTextStream.java ToUnknownStream.java 
+ToXMLSAXHandler.java ToXMLStream.java TreeWalker.java Utils.java Version.java WriterToASCI.java ElemContext.java TransformStateSetter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Yash Talwar<br />
+Source code changes to the serializer to make it independent of Xalan.
+Mostly message and utility usage changes.
+However multiple classes had their visibility reduced to less than "public".<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/10/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils CharKey.java Trie.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: XALANJ-1891<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Yash Talwar<br />
+Deleting Charkey and Trie which were only used by the serializer.
+These classes are migrated to the serializer package, in the case of
+CharKey, it is now an inner private class.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src MANIFEST.SERIALIZER<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: XALANJ-1891<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Sarah McNamara<br />
+Creating MANIFEST.SERIALIZER, a template like MANIFEST.MF but
+for an independent serializer.jar that is not part of xalan.jar<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: XALANJ-1891<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Sarah McNamara<br />
+Changes to java/build.xml so that the serializer.jar is built and used by Xalan.
+The two new build targets are serializer.jar and serializer-dist.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin serializer.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: XALANJ-1891<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Sarah McNamara, Yash Talwar<br />
+Checking in an initial serializer.jar into java/bin, hopefully this won't change too often.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2004/10/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java XConnection.java SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+This patch makes the close() function behave better but still has a 
+problem when certain iterators are used.  This code is at least safe 
+in all instaces.  It also fixes a minor bug in the default connection pool.<br />
+Obtained from: John Gentilin<br />
+Submitted by:	John Gentilin<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/10/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+A patch to fix Bug XALANJ-1708. Reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/10/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java UnionPathIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+A fix for bug XALANJ-1810. Reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2004/10/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix the samples build. The samples.class.path needs to include the serializer.jar.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2004/10/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+One more fix to enable builds with JDK 1.4.x.  Need to add the serializer classes to the
+xslt.boot.class.path.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/11/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes DescendantIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+String comparison should use String.equals(), instead of ==.
+Even == works fine for most of the cases, for a serializable object, two variable originally reference to the same string
+after deserialization, they no longer reference the same string, although the values are the same. Fix for bug XalanJ-1550.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/11/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerGeneral.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The latest Rhino1_5R5 checks for the script language line/column no.&gt;=0. Fixed for bug XALANJ-1887.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/11/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/META-INF/services org.apache.xalan.extensions.bsf.BSFManager<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added a service provider configuration file to set the Apache BSF as the default implementation for scripting language support.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/11/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin bsf.jar bsf.LICENSE.txt bsf.README.txt<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+remove IBM bsf implementation from the distribution. Xalan is not going to ship any bsf implementation. If users need 
+IBM bsf, they can download it from Attic.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/11/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/compiler Lexer.java XPathParser.java xml-xalan/java/src/org/apache/xpath/domapi 
+XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNamespaceImpl.java XPathNSResolverImpl.java XPathResultImpl.java 
+XPathStylesheetDOM3Exception.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bug XALANJ-1985<br />
+Submitted by:	Yash Talwar<br />
+Reviewed by:	Brian Minchau<br />
+Support for DOM 3 API, for use by an XML Parser.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/11/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-1955.  The equals(Object) method contains a list of
+instanceof checks, and then casts the Object argument to the tested type in
+order to dispatch to a more specific equals method.  In the case where the
+Object argument was an XMLString, the code was actually casting "this" to
+XMLString - thus testing this.equals(this), which will always be true.<br />
+
+Reviewd by Joanne Tong (joannet@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/11/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer KeyTable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-1368.<br />
+The method getKeyDeclaration was looping through all the xsl:key elements
+defined, and returning the first with the required name.  However, more than
+one xsl:key element can specify the same name, and should be treated
+cumulatively.  Modified the method so that it returns all elements with the
+required name, and the caller so that it tries to match against the patterns
+associated with all such elements.<br />
+
+Reviewed by Joanne Tong (joannet@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2004/11/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a memory leak problem in DTMManager (XALANJ-1999).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>joannet@apache.org<b>
+<i> on </i>
+</b>2004/12/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemApplyImport.java xml-xalan/java/src/org/apache/xalan/transformer 
+TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed XALANJ-1824. Changed current template rule when named template executes an xsl:apply-imports.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>joannet@apache.org<b>
+<i> on </i>
+</b>2004/12/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib PipeDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed XALANJ-1662. Allow pipeDocument to throw exceptions.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/12/15<br />
+<b>
+<i>Modified: </i>
+</b> Many files....<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bug report XALANJ-2008<br />
+Based on Sun's Security Code Guidelines, modified the code to improve the security. Major changes includes:<br />
+1. Added final modifier to static variables;<br />
+2. Reduced scope and added public get methods whenever it is appropriate;<br />
+3. Changed some static variable to instance variables;<br />
+4. Changed some interfaces to final classes, if those interfaces are used only to define constants<br />
+5. Removed the usage of System.exit;<br />
+6. For various org.apache.xml.utils.res.XResourceBundle, the getObject() methods return immutable array wrappers instead of arrays<br />
+7. Changed static methods of org.apache.xpath.compiler.FunctionTable to instance methods and the reference of a function table is passed 
+around the processing to create an XPath object;<br />
+8. Changed the flags of FEATURE_INCREMENTAL, FEATURE_OPTIMIZE and FEATURE_SOURCE_LOCATION to instance variables in TransformerFactorImpl. 
+So they will not be changed during a processing once a new Templates is created;<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2004/12/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bug XALANJ-1592. Submitted by Catya Alone (catyaa@hotmail.com).
+Set the parent node for the arguments in extension functions.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/12/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer/utils Messages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Partial fix for bug XALANJ-2021.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/12/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer/utils SerializerMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Partial fix for bug XALANJ-2021 to make key/keyvalue consistent.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/12/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer/utils SerializerMessages_ca.java SerializerMessages_cs.java 
+SerializerMessages_de.java SerializerMessages_es.java SerializerMessages_fr.java SerializerMessages_hu.java 
+SerializerMessages_it.java SerializerMessages_ja.java SerializerMessages_ko.java SerializerMessages_pl.java 
+SerializerMessages_pt_BR.java SerializerMessages_ru.java SerializerMessages_sv.java SerializerMessages_tr.java 
+SerializerMessages_zh_CN.java SerializerMessages_zh_TW.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Other languages, for XALANJ-2021.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/12/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer/utils MsgKey.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+A class containing only message keys, to be shared by all language
+translations (including English).  This is to prevent replication of these
+keys during translation. Related to XALANJ-2021.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/12/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer/utils SerializerMessages_ca.java SerializerMessages_cs.java 
+SerializerMessages_de.java 
+SerializerMessages_es.java SerializerMessages_fr.java SerializerMessages_hu.java SerializerMessages_it.java SerializerMessages_ja.java 
+SerializerMessages_ko.java SerializerMessages_pl.java SerializerMessages_pt_BR.java SerializerMessages_ru.java SerializerMessages_sv.java 
+SerializerMessages_tr.java SerializerMessages_zh_CN.java SerializerMessages_zh_TW.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changes for moving the message keys, to be shared by all language
+translations (including English).  This is to prevent replication of these
+keys during translation. Related to XALANJ-2021.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/12/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer/utils Messages.java SerializerMessages.java URI.java 
+xml-xalan/java/src/org/apache/xml/serializer CharInfo.java OutputPropertiesFactory.java SerializerBase.java 
+SerializerFactory.java ToHTMLStream.java ToStream.java ToTextStream.java ToXMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changes for moving the message keys, to be shared by all language
+translations (including English).  This is to prevent replication of these
+keys during translation. Related to XALANJ-2021.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/12/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/res XMLErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Serializer messages were copied into a message file in the
+org.apache.xml.serializer.utils package.
+The serializer messages in this file are now "dead", so they are being deleted.
+This is part of the cleanup with XALANJ-2021.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/12/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMNamedNodeMap.java DTMNodeProxy.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for Jira bug report XALANJ-1427 on behalf of Yash Talwar (ytalwar@ca.ibm.com).
+
+Completing support for DOM Level 2 Core methods that were previously
+unimplemented, and fixed some bugs in the implementation.  The implementation
+continues to be, of necessity, a read-only implementation.<br />
+
+In particular, implemented the following:<br />
+
+  DTMNamedNodeMap.getNamedItem(String)<br />
+  DTMNodeProxy.getElementsByTagName(String)<br />
+  DTMNodeProxy.getElementsByTagNameNS(String,String)<br />
+  DTMNodeProxy.getElementById(String,String)<br />
+  DTMNodeProxy.getAttributeNodeNS(String,String)<br />
+<br />
+</li>
+  
+  <li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2005/01/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added a FAQ about how to use XSLTC in applet when using JRE1.4. It is a fix for bug report XALANJ-1705. Patch reviewed and 
+modified by Sarah McNamara<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2005/01/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for XALANJ-2013.  Duplicate time zone string returned from EXSLT time() function.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/01/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src manifest.xalan-interpretive<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New manifest file to resolve Jira bug report XALANJ-1853.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/01/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Jira bug report XALANJ-1853 .  Use the new xalan interpretive manifest file
+when building the standalone xalan.jar that only contains the interpretive processor.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/01/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src MANIFEST.MF MANIFEST.SERIALIZER manifest.xsltc<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Jira bug report XALANJ-1852.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/01/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/serialize SerializerUtils.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for Jira bug report XALANJ-1640.<br />
+
+As it's currently written, SerializerUtils.outputResultTreeFragment loops
+through the nodes in a result tree fragment, and for each one, it checks
+whether the node is in some namespace.  If it is not, the code undeclares the
+default namespace by calling handler.startPrefixMapping("", "").  The problem
+is that if the RTF that's being copied just consists of a text node (or PIs or
+comments), that undeclaration of the default namespace hangs around until some
+subsequent child element picks it up as one of its attributes, even if that
+element is in some namespace - even what should be the default!<br />
+
+The fix is to check whether the node that is being output is an element node
+prior to issuing the handler.startPrefixMapping call - that ensures the prefix
+mapping is not issued unless it's actually going to be used by the node that is
+about to be serialized.<br />
+
+This patch was reviewed by Brian Minchau (minchau@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/01/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath CachedXPathAPI.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Jira bug report XALANJ-1811.<br />
+
+Updated Javadocs for constructors to make it clear that a single instance of
+CachecXPathAPI must not be used by multiple threads without synchronization.<br />
+
+Reviewed by Christine Li (jycli@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/01/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Jira bug report XALANJ-1888.<br />
+
+It is possible for the characters SAX event to specify a length of zero.  Text
+nodes should not be created in such situations.  Changed the charactersFlush
+method to guard against this case.<br />
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/01/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Two part fix for Jira bug report XALANJ-1888.<br />
+
+1) It is possible for the characters SAX event to specify a length of zero.
+Text nodes should not be created in such situations.  Changed the
+charactersFlush method to guard against this case.<br />
+
+2) Made a defensive change to references to m_dataOrQName.  If the value in
+this vector is to be interpreted as an index into m_data, it is stored as a
+negative value (via calls to addNode).  However, most references to elements of
+m_dataOrQName were checking whether the value was non-positive, treating a
+value of zero as an index into m_data as well.  The zeroth entry into m_data is
+an invalid entry.<br />
+The fix to charactersFlush described above should ensure that zero is never
+stored in m_dataOrQName, but I thought it was just as well to duplicate the
+interpretation used in storing values in m_dataOrQName.<br />
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2005/02/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Implement Errata E24, when the value attribute of xsl:number is NaN, infinite or less than 0.5. 
+More details please refer to bug report XALANJ-1979. Patch is reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/02/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java xml-xalan/java/src/org/apache/xpath/res 
+XPATHErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Jira bug report XALANJ-1478.<br />
+
+In the recursive descent parsing of an ill-formed XPath expression like "2+",
+when the parser reaches the end of the expression while still looking for an
+operand it ultimately ends up trying to see whether what remains can be parsed
+as a location path.  However, the LocationPath method was silently parsing the
+end of an expression as a location path!  Added an error for that situation.<br />
+
+Reviewed by Brian Minchau (minchau@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/02/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/trax ExampleContentHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Jira bug report XALANJ-2054.<br />
+
+The sample ContentHandler code was printing the namespaceURI argument of
+startElement and of endElement twice, but never printed the localName argument.
+Fixed that typo.<br />
+
+Reviewed by Brian Minchau (minchau@ca.ibm.com)<br />
+<br />
+</li>
+
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/02/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java EmptySerializer.java 
+ExtendedContentHandler.java NamespaceMappings.java SerializerBase.java ToStream.java ToTextSAXHandler.java 
+ToTextStream.java ToUnknownStream.java ToXMLSAXHandler.java ToXMLStream.java xml-xalan/java/src/org/apache/xalan/serialize 
+SerializerUtils.java xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java ElemLiteralResult.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for XALANJ-1886. Multiple problems fixed related to collecting xsl:attributes 
+with over-ridden values and prefix/URI maps.  With this fix, internally the
+serializer correctly identifies attributes by their expanded QName, which 
+includes the URI rather than the prefix.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/02/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java xml-xalan/java/src/org/apache/xml/serializer 
+TreeWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for XALANJ-1985, reviewed by Henry Zongaro. The problem was that a serialized DOM failed to declare a prefix/URI mapping.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/02/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorLRE.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for XALANJ-2037.  The trace information doesn't have the right location information in this case.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/02/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer EmptySerializer.java ExtendedContentHandler.java SerializerBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing serializer.patch5.txt in JIRA issue XALANJ-1886,
+that puts back an old attAttribute() method that takes 5 String arguments.
+There is a new one that takes these 5 String arguments and a boolean to indicate if it is from an xsl:attribute
+or not.  I'm just restoring the old method. Patch reviewed by Henry Zongaro.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/02/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer EmptySerializer.java SerializationHandler.java SerializerBase.java 
+ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for XALANJ-2033 and XALANJ-2051 so that the serializer will serialize DTD
+tags if desired.  The patch was reviewed by Ilene Seeleman.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ytalwar@apache.org<b>
+<i> on </i>
+</b>2005/02/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils URI.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The fix is for XALANJ-2059.<br />
+
+The problem is that when href attribute has aboslute uri with jar scheme and
+base uri is not null, then base uri is pre-appended to uri specified in href attribute.
+The newer patch is according to RFC 2396.
+The newer patch ignores base uri and directly make use of uri specifed href attribute, provided following conditions are met.<br />
+a)If uri specified in href attribute starts with / after the scheme and :
+  For example, href="file:/myDIR/myXSLFile.xsl.<br />
+b)If scheme specified for uri href attribute is not same as scheme for base uri.<br />
+c)If base uri is not hierarchical<br />
+
+Henry Zongaro has helped creating this patch.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>ytalwar@apache.org<b>
+<i> on </i>
+</b>2005/03/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer SerializerConstants.java ToStream.java ToXMLStream.java 
+xml-xalan/java/src/org/apache/xml/serializer/utils MsgKey.java SerializerMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+This patch fix XALANJ-2070.  This patch add XML 1.1 support in term of following:<br />
+- Output Document can be of Version XML 1.1<br />
+- Control Characters in Range C0 and C1 are output as NCR.<br />
+- Namespaces in XML 1.1 can be IRIs.<br />
+- NCNames and QNames can conform to XML 1.1 specifications.<br />
+- NEL and LSEP characters are treated as new end of line character as per XML 1.1 specifications.<br />
+
+Thanks to Brian Minchau for reviewing the patch.  Brian Minchau and Henry Zongaro has also helped how XML 1.1 support should be done.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2005/03/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/templates 
+ElemExtensionCall.java ElemLiteralResult.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added implementation for getAttribute, getAttributeNS and getAttributes for LRE. A fix for bug report XALANJ-1526.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/03/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/design design2_0_0.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-1990.  Fixes broken link to apidocs for Serializer.html.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/03/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2026.  Fixes typo in Debugger interface code example.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/03/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer SerializerFactory.java xml-xalan/java/src/org/apache/xml/serializer/utils 
+MsgKey.java SerializerMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for XALANJ-2074, committing patch2 in that issue, which removes two
+untranslated messages in SerializerFactory, and uses a new common message
+in SerializerMessages.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2005/03/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Marked the code to be privileged, which allows users to load
+customized entity files in sandbox. Fixed bug report XALANJ-2068.
+Patch was reviewed by Brian Minchau (minchau@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>ytalwar@apache.org<b>
+<i> on </i>
+</b>2005/03/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+This patch fixes XALANJ-1431. The patch has been reviewed by Brian.
+The problem is that that when an empty attribute value is encountered, a text node is being created 
+with empty string. 
+Henry Zongaro has helped finding the XSLT 1.0 specs. that suggest a text node with empty string should not be created. 
+URL http://www.w3.org/TR/xslt#value-of has the following information: 
+"The xsl:value-of element is instantiated to create a text node in the result tree. The required select attribute is an 
+expression; this expression is evaluated and the resulting object is converted to a string as if by a call to the string 
+function. The string specifies the string-value of the created text node. If the string is empty, no text node will be 
+created. The created text node will be merged with any adjacent text nodes."<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/03/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan builds.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Jira bug report XALANJ-2079.  Updated links to nightly Gump build. Reviewed by Brian Minchau.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>ytalwar@apache.org<b>
+<i> on </i>
+</b>2005/03/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java xml-xalan/java/src/org/apache/xalan/templates 
+ElemAttribute.java ElemElement.java ElemPI.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java 
+AttributeSet.java CallTemplate.java DecimalFormatting.java Key.java Output.java ProcessingInstruction.java Template.java 
+VariableBase.java WithParam.java xpath.lex XslAttribute.java XslElement.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
+Util.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java xml-xalan/java/src/org/apache/xml/serializer 
+WriterToUTF8Buffered.java xml-xalan/java/src/org/apache/xml/utils QName.java XML11Char.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+This is resolve UTF-8 Charcater support and QName character support for XML 1.1 support in XALANJ-2070.
+Henry Zongaro and Brian Minchau helped in fixing this part of the JIRA issue.
+A new class org.apache.xml.utils.XML11Char has been included to support XML 1.1 characters.
+Also a reference to org.apache.xml.utils.XMLChar has been replaced with a reference to
+org.apache.xml.utils.XML11Char in almost all the places in Xalan.
+org.apache.xml.serializer.WriterToUTF8Buffered has been update to support UTF-8 characters that can be represented in four bytes.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>ytalwar@apache.org<b>
+<i> on </i>
+</b>2005/03/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/domapi package.html<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+This resolves XALANJ-2085. Sarah McNamara has reviewed this change.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>ytalwar@apache.org<b>
+<i> on </i>
+</b>2005/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+This is a fix for XALANJ-2089.
+Christine Li has created this patch.
+Brian Minchau helped in creating this patch.
+Brian Minchau also reviewed this patch.
+org.apache.xalan.templates.ElemNumber.java has raised some performance issue as 
+a static array to hold resources was removed earlier.  However, the removal of static array is necessary
+to fix a potential bug multithread environment, where a given thread can request different locale than another thread.
+
+This patch resolves the performance glicth that was found in internal testing.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/04/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Commiting patch for XALANJ-2095, that tabs in text nodes in XML documents
+are serialized to &amp;#9; but should stay as a tab character.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/04/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from XALANJ-1924 applied. The one deprecated API used is replace
+by the current one, but multiple typos in other examples are corrected.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/04/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing patch for XALANJ-2077.  This performance modification is
+estimated to shave 3% of the serialization stage of small documents.
+Every little bit counts.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/04/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Appling fix for XALANJ-2086, which pointed out that findCharToByteConverterMethod() 
+always returned null.  This bug was introduced some time ago during some security
+fixes.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/04/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for XALANJ-2109 applied (we won't \n to \r\n in an HTML attribute value on
+Windows OS anymore, it will be left as is during serialization).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/04/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils XMLReaderManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch in XALANJ-2105.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/05/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/processor 
+TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/templates ElemLiteralResult.java 
+xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/trax 
+SmartTransformerFactoryImpl.java TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeProxy.java 
+xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTMdefaultNamespaceDeclarationNode.java xml-xalan/java/src/org/apache/xml/utils 
+UnImplNode.java xml-xalan/java/src/org/apache/xpath/domapi XPathNamespaceImpl.java xml-xalan/java/src/org/apache/xpath/operations 
+Variable.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+JAXP 1.3 integration. Integrate the Sun donated JAXP 1.3 implementation into the head branch.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/05/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/jaxp JAXPExtensionsProvider.java JAXPPrefixResolver.java JAXPVariableStack.java 
+XPathExpressionImpl.java XPathFactoryImpl.java XPathImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+JAXP 1.3 integration. Commit the XPath API implementation under org.apache.xpath.jaxp.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/05/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xml-apis.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New xml-apis.jar containing JAXP 1.3 APIs.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2005/05/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java FuncLoader.java FunctionTable.java Keywords.java 
+ObjectFactory.java SecuritySupport.java SecuritySupport12.java XPathParser.java xml-xalan/java/src/org/apache/xpath/functions 
+FuncExtFunctionAvailable.java xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Modified FunctionTable. Although it is not recommanded, but it is doable for users to add a customized function or overwrite 
+the default implementation of a build-in function. Fixed bug report XALANJ-2116. Patch is reviewed by Henry Zongaro.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/05/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java TransformerImpl.java 
+xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Support DOMResult.nextSibling in XalanJ Interpretive. If nextSibling is not null, then result nodes are inserted
+before it.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/05/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/XPathAPI ApplyXPathJAXP.java foo.xml XPathResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add two samples to demonstrate how to use the XPath API in JAXP 1.3.<br />
+1. ApplyXPathJAXP. Basic sample like ApplyXPath, but use JAXP 1.3 XPath API instead.<br />
+2. XPathResolver. Demonstrate how to use NamespaceContext, XPathFunctionResolver and XPathVariableResolver.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/05/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java 
+ExtensionNamespaceContext.java XPathFunctionImpl.java XPathFunctionResolverImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2126. This is a sample implementation of XPathFunctionResolver, with support for
+Java and EXSLT extension functions.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/05/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New messages for XALANJ-2126. Messages for the sample XPathFunctionResolver implementation.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/05/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/XPathAPI ExtensionFunctionResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For XALANJ-2126. New sample to demonstrate how to use the sample
+XPathFunctionResolver to evaluate XPath expression containing
+Java and EXSLT extension functions.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/05/31<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing patch for issue XALANJ-2121, which is that some empty attributes
+of some HTML elements are note serialized as empty.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/05/31<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Putting static iniitialization of HTML element/attribute information in a static method,
+which is invoked from a static { ...} block.
+No real difference, but slowly inching this code towards adding a
+ToXHTMLStream class that extends ToXMLStream, but uses methods in
+ToHTMLStream.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/05/31<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added "nowrap" as an empty attribute for elements &lt;div&gt; &lt;src&gt; and &lt;tr&gt;
+as these are either Netscape or Internet-Explorer extensions.
+This is patch3 from XALANJ-2121.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/06/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer OutputPropertiesFactory.java ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patcth for JIRA XALANJ-2093. Adding a xalan:line-separator extension output attribute.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/processor 
+TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java 
+TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java xml-xalan/java/src/org/apache/xalan/xsltc/trax 
+TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xml/utils DefaultErrorHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2134. Change the error handling behavior to be conformant with the requirement
+from JAXP 1.3 that the default ErrorListener will report all warnings and errors
+to System.err and does not throw any Exceptions.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/processor 
+ProcessorInclude.java ProcessorLRE.java ProcessorStylesheetElement.java TransformerFactoryImpl.java 
+xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/templates 
+ElemExtensionCall.java StylesheetRoot.java xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java 
+TransformerImpl.java TrAXFilter.java xml-xalan/java/src/org/apache/xalan/xslt Process.java xml-xalan/java/src/org/apache/xml/utils 
+DOMHelper.java xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xpath/functions 
+FuncExtFunction.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2136. Support the secure processing feature in Xalan interpretive. When this feature
+is set to true, the following XML processing limits are applied:<br />
+1. extension functions and extension elements are disabled.<br />
+2. parsers created by the XSLT processor also have the secure processing feature set
+to true.<br />
+
+A new option -secure is added to the Process command line to enable the secure
+processing feature.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources entities.ent xalan-jlocal.xml xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan 
+features.xml samples.xml xpath_apis.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2124. Update the online documentation to include descriptions on the new JAXP 1.3 features:<br />
+1. Add a new "XPath API" page to provide a complete guide on how to use the
+XPath API in JAXP 1.3. Details on basic usage patterns, factory plugin mechanism,
+how to use NamespaceContext, XPathVariableResolver and XPathFunctionResolver.<br />
+2. Document the secure processing feature in the features page.<br />
+3. Describe three new XPath API related samples in the samples page.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/META-INF/services javax.xml.xpath.XPathFactory<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Service provider file for javax.xml.xpath.XPathFactory.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/XPathAPI ExtensionTest.java numlist.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+xml and extension java source for the ExtensionFunctionResolver sample.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src MANIFEST.MF manifest.xalan-interpretive manifest.xsltc<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update manifest files for jaxp version and remove entry for org.w3c.dom.xpath.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml xml-xalan/java/bin xml-apis.jar xml-xalan/java/src 
+xml-commons-external-1.2.01-src.tar.gz xml-commons-external-1.3.01-src.tar.gz<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update the source and binary of xml-apis.jar.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Java docs cleanup. Remove the word "Experimental" for DOM Level 3 spec and update the URI link.
+Also remove the obsolete methods that are replaced by new ones.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/processor 
+StylesheetHandler.java xml-xalan/java/src/org/apache/xml/utils UnImplNode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Cleanup javadocs on DOM Level 3 spec. Update the uri and remove
+obsolete methods. The getVersion() method in org.w3c.dom.Node is replaced by
+getXmlVersion().<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add xml-apis.jar to boot classpath to fix a build problem with JDK 1.4.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2076. Fix a bug in date:month-in-year.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xercesImpl.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New xercesImpl.jar from the official Xerces-J 2.7.0 release.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2005/06/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java
+xml-xalan/java/src/org/apache/xml/res XMLErrorResources.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Cleanup resource files. Remove unused constants and commented out message keys. Fix for bug XALANJ-2161
+Patch is reviewed by Sarah McNamara (mcnamara@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/07/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Jira issue XALANJ-1978.  Reviewed by Christine Li (jycli@ca.ibm.com).<br />
+
+Behaviour of StreamResult.getSystemId has changed if the Result object was
+created using a File.  The URI returned begins with "file:/" where it used to
+begin with "file:///".  TransformerIdentityImpl had a dependency on the old
+behaviour.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch2 from XALANJ-2023.<br />
+Submitted by Ken Weiner, reviewed, approved, applied by Brian Minchau.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changing "&lt;!DOCTYPE HTML" to "&lt;!DOCTYPE html" to be more xhtml friendly.
+Applying the patch in XALANJ-2103 that was created by Brian Minchau
+and reviewed/approved by Joanne Tong.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2099 provided by Morris Kwan and reviewed by me.
+
+According to the EXSLT doc the extension date:day-abbreviation() should
+output a three-letter English day abbreviation: one of 'Sun', 'Mon', 'Tue',
+'Wed', 'Thu' or 'Fri'.  (See http://exslt.org/date/functions/day-abbreviation/index.html)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2143.   Javadoc improvement for TransformerImpl.setOutputProperty(name,value).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2142 - correction for the xalan namespace URI.  Patch provided by Brian Minchau and
+reviewed by Sarah McNamara.<br />
+
+Patch for XALANJ-2144 - incorrect use of the word "concurrently" when referring to the XPath module.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/licenses BCEL.LICENSE.txt LICENSE.DOM-documentation.html LICENSE.DOM-software.html 
+LICENSE-SAX.html regexp.LICENSE.txt runtime.LICENSE.txt serializer.LICENSE.txt serializer.NOTICE.txt xalan.LICENSE.txt 
+xalan.NOTICE.txt xercesImpl.LICENSE.txt xercesImpl.NOTICE.txt xml-apis.LICENSE.txt xml-apis.NOTICE.txt<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Creation of the xml-xalan/java/licenses directory which contains
+all licenses required for the Xalan Java (interpretive and compiled) runtime
+jars and its dependencies.   Most of these files have been moved here
+from xml-xalan/java/bin.  The serializer files are new for the Xalan Java 2.7
+release (fixes XALANJ-1977).  The xercesImpl.LICENSE.txt and xml-apis.LICENSE.txt
+now reflect ASL v2.0. This change was reviewed and approved in XALANJ-2170 by Christine Li.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/lib xercesImpl.jar xercesImpl.README.txt xml-apis.jar xml-apis.README.txt BCEL.jar BCEL.README.txt 
+regexp.jar regexp.README.txt runtime.jar runtime.README.txt<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Creation of the xml-xalan/java/lib directory which contains all runtime
+library dependencies (jars) required by Xalan Java (interpretive and compiled) runtime
+These files have been moved here from xml-xalan/java/bin.<br />
+
+This change was reviewed and approved in XALANJ-2170 by Christine Li.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/tools ant.jar ant.LICENSE.txt ant.README.txt antRun antRun.bat java_cup.jar java_cup.LICENSE.txt 
+java_cup.README.txt JLex.jar JLex.LICENSE.txt JLex.README.txt stylebook-1.0-b3_xalan-2.jar stylebook-1.0-b3_xalan-2.LICENSE.txt 
+stylebook-1.0-b3_xalan-2.README.txt xalan2jdoc.jar xalan2jtaglet.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Creation of the xml-xalan/java/tools directory which contains all build time
+tools required by Xalan Java (interpretive and compiled) builds, including
+documentation builds.  These tools are not required at runtime.<br />
+
+These files have been moved here from xml-xalan/java/bin.<br />
+
+This change was reviewed and approved in XALANJ-2170 by Christine Li.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java serializer.README.txt xalan.README.txt<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New readme files for the xalan.jar and serializer.jar.
+This change was reviewed and approved in XALANJ-2170 by Christine Li.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.bat build.sh build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updates to the build scripts and Ant build.xml file to accomodate the
+restructuring of the tools and runtime libraries in xml-xalan/java/tools and
+xml-xalan/java/lib.    Also changes to build.xml to reflect upcoming
+Xalan Java 2.7.0 (version number) changes.<br />
+
+This change was reviewed and approved in XALANJ-2170 by Christine Li.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/AppletXMLtoHTML client.html README.html xml-xalan/java/samples/ApplyXPathDOM ApplyXPathDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Doc changes for Xalan Java 2.7.0 release.
+This change was reviewed and approved in XALANJ-2170 by Christine Li.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.java xml-xalan/java/src/org/apache/xalan/xslt 
+EnvironmentCheck.java xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java 
+XPathNSResolverImpl.java XPathResultImpl.java xml-xalan/java/src/org/apache/xml/serializer Version.src xml-xalan/java/xdocs/sources 
+entities.src xalan-jlocal.xml xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml commandline.xml downloads.xml 
+extensions.xml extensionslib.xml faq.xml features.xml getstarted.xml index.xml overview.xml public_apis.xml resources.xml samples.xml 
+trax.xml usagepatterns.xml whatsnew.xml xpath_apis.xml xsltc_usage.xml xml-xalan/java/xdocs/sources/xsltc README.xslt README.xsltc<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Doc changes for Xalan Java 2.7.0 release.
+This change was reviewed and approved in XALANJ-2170 by Christine Li.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.src xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Doc changes for Xalan Java 2.7.0 release.
+This change was reviewed and approved in XALANJ-2170 by Christine Li.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/07/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils XMLString.java XMLStringDefault.java xml-xalan/java/src/org/apache/xpath/objects 
+XString.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2176 reviewed by Christine Li (jycli@ca.ibm.com).<br />
+
+Replaced characters in Javadoc comments that were encoded in ISO-8859-1 with
+HTML character entity references.  This avoids any problems with editors, IDEs
+or versions of javac that make faulty assumptions about source encodings.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2005/07/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: XALANJ-2113<br />
+Submitted by:		 John Gentilin<br />
+Reviewed by:		 Henry Zongaro<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2005/07/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/objects XString.java
+xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: XALANJ-2114<br />
+Submitted by:		 John Gentilin<br />
+Reviewed by:		 Henry Zongaro<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@ca.ibm.com<b>
+<i> on </i>
+</b>2005/07/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/functions FuncSystemProperty.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-936. Reviewed by Yash Talwar.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xml-apis.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update xml-apis.jar to xml-commons-external-1.3.02 version.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2005/07/27<br />
+<b>
+<i>Modified: </i>
+</b> java/src/org/apache/xalan/lib/sql JNDIConnectionPool.java<br />
+java/samples/extensions/sql/basic-connection dbinfo.xml dbtest.xsl DumpSQL.xsl dbtest-cinfo.xsl<br />
+java/samples/extensions/sql/ext-connection dbtest.xsl ExternalConnection.java<br />
+java/samples/extensions/sql/pquery dbinfo.xml<br />
+java/samples/extensions/sql/streamable cachedNodes.xsl streamNodes.xsl pivot.xsl<br />
+java/samples/extensions/sql GETTING_STARTED.txt runDerby.bat runXalan.sh createdb.sql runDerby.sh runXalan.bat<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: XALANJ-2172<br />
+Obtained from: Eric Everman<br />
+Submitted by: Eric Everman / John Gentilin<br />
+Reviewed by: Yash Talwar<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xercesImpl.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New xercesImpl.jar from the official Xerces-J 2.7.1 release.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/08/03<br />
+<b>
+<i>Modified: </i>
+</b> java/src/org/apache/xml/serializer ToTextStream.java Encodings.properties ToHTMLStream.java
+ToStream.java EncodingInfo.java ToXMLStream.java Encodings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing patch for XALANJ-2087. This is a fix for correctly deciding if a character is in an encoding or not,
+so we write it as is, or as an entity.<br />
+The old code had a concept of a maximum character in the encoding, and assumed that all characters less
+than that unicode value were in the encoding.  New code uses the underlying Java libarary, but caches results 
+for performance.<br />
+Patch was reviewed/approved by Yash Talwar (see XALANJ-2087).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/08/04<br />
+<b>
+<i>Modified: </i>
+</b> java/samples/extensions/sql/show-error invalidQuery.xsl invalidPQuery.xsl invalidConn.xsl<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updates for the SQL samples (part of the fix for XALANJ-2172). Patch provided by John Gentilin and reviewed by Sarah McNamara.<br />
+<br />
+</li>
+ 
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/08/04<br />
+<b>
+<i>Modified: </i>
+</b> java/src/org/apache/xml/serializer ToStream.java EncodingInfo.java<br />
+java/src/org/apache/xml/serializer/utils SerializerMessages.java MsgKey.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing XALANJ-2181. When the requested encoding is not supported by the JDK no
+warning is given,... this fix adds an error message.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2005/08/05<br />
+<b>
+<i>Modified: </i>
+</b> java/samples/extensions/sql/ext-connection ExternalConnection.java<br />
+java/xdocs/sources/xalan samples.xml<br />
+java/samples/extensions/sql runDerby.bat runXalan.sh runDerby.sh runXalan.bat runExtConnection.bat runExtConnection.sh<br />
+java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: XALANJ-2183.<br />
+<br />
+</li>
+
+</ul>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.6.0</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/11/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc DOM.java Translet.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler SyntaxTreeNode.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
+ResultTreeType.java xml-xalan/java/src/org/apache/xalan/xsltc/dom AdaptiveResultTreeImpl.java 
+DOMAdapter.java DOMWSFilter.java MultiDOM.java SAXImpl.java SimpleResultTreeImpl.java 
+xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Morris Kwan (mkwan@ca.ibm.com), reviewed by myself, with a tweak
+or two from myself, reviewed by Morris.<br />
+<br />
+
+Split namesArray in translet into three arrays:  namesArray, urisArray and
+typesArray.<br />
+<br />
+
+Previously, entries in the namesArray had to be examined at run-time to
+distinguish those that represented elements, from those that represented
+attributes (prefixed by an '@'), and those that represented namespace node
+names (prefixed by a '?').  In addition, any namespace URI for the element or
+attribute was similarly stored in the namesArray entry.  So,
+"http://example.org:abc" and "http://example.org:@abc" respectively represented
+an element and an attribute named abc in the http://example.org namespace;
+"?abc" represented a namespace prefix of abc.<br />
+<br />
+
+With this change, the namesArray will have entries for "abc" in all three
+cases; the urisArray will contain entries for "http://example.org" for the
+element and attribute, and an empty string for the namespace prefix; and the
+typesArray will contain the value 1 for the element, 2 for the attribute and 13
+for the namespace (which correspond to the DTM constant values for those kinds
+of nodes).<br />
+<br />
+
+In addition, these values are stored in static arrays in the translet, and
+references to those arrays are copied to instance fields in the translet's
+constructor, rather than constructing arrays and initializing all their entries
+in the constructor each time.<br />
+<br />
+
+All this serves to reduce the overhead of initializing a transformation.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/11/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer NamespaceMappings.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Submitted by:	Brian Minchau<br />
+<br />
+Just indentation and whitespace changes in the code
+(trying to get Apache head and the xslt2.0-compiled branches closer).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/11/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToTextStream.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 24278<br />
+<br />
+Submitted by:	Brian Minchau<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/11/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemLiteralResult.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 24423<br />
+<br />
+Submitted by:	Brian Minchau<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/11/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToXMLSAXHandler.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Submitted by:	Brian Minchau<br />
+<br />
+Just indentation and whitespace changes in the code
+(trying to get Apache head and the xslt2.0-compiled branches closer).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/11/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 24958<br />
+<br />
+Submitted by:	Brian Minchau<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2003/12/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/TransformThread TransformThread.java foo0.xml foo0.xsl foo1.xml 
+foo1.xsl xml-xalan/java/xdocs/sources/xalan samples.xml<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Transform Thread sample. Submitted by  Richard Cao.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/trax TrAXFilter.java xml-xalan/java/src/org/apache/xml/dtm/ref 
+DTMManagerDefault.java xml-xalan/java/src/org/apache/xml/utils XMLReaderManager.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Moved code for caching XMLReader objects from XSLTC's TransformerFactoryImpl to
+a new org.apache.xml.utils.XMLReaderManager class.<br />
+<br />
+
+It is now the responsibility of the DTMManagerDefault class to request one of
+these cached XMLReader objects, so the benefit of reusing an XMLReader is now
+conferred upon both XSLTC and Xalan-J Interpretive, as well as upon references
+to the document() function.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Factored out part of ObjectFactory's createObject method into separately
+callable lookUpFactoryClass and lookUpFactoryClassName methods.  This allows
+the caller to cache the Class object that provides a service at an appropriate
+level, and create new instances of that class at will, rather than going
+through the expensive service provider look-up procedure for each and every
+object created.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/12/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Reflection code to load sun.io.CharToByteConverter is now wrapped in a privileged action. 
+This is needed when user code is run without the required permssions.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml xml-xalan/java/bin xml-apis.jar xml-xalan/java/src 
+xml-commons-src.tar.gz xml-commons-external-1.2.01-src.tar.gz<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Upgrading to xml-commons-external-1.2.01 release, and moving to new naming
+convention for xml-commons source file.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/12/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Avoid RuntimeException(Throwable) as it is only available in JDK 1.4.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java 
+xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java ElemWithParam.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch from Richard Cao (richcao@ca.ibm.com) for Bugzilla bug report
+797.<br />
+<br />
+
+Added code that checks whether an xsl:param, xsl:variable or xsl:with-param
+has both a select attribute and content.  Also, new test case to test for
+message in case of xsl:with-param, and updated messages in existing tests for
+xsl:param and xsl:variable.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer NodeSorter.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch from Richard Cao (richcao@ca.ibm.com) for Bugzilla bug report
+5761.  Removed code that caused keys to be ignored when they select an empty set of
+values.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xercesImpl.jar<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Upgrading to version 2.6.0 of Xerces-Java.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added a finally block for SAXSource/StreamSource case in order to ensure that
+any XMLReader is released to the XMLReader cache.<br />
+<br />
+
+Thanks to Joanne Tong (joannet@ca.ibm.com) for catching this bug when she
+reviewed my changes to where caching of XMLReaders was handled, and the DTM
+plugability changes for XSLTC.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Created a named constant for "META-INF/services" string.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>rameshm@apache.org<b>
+<i> on </i>
+</b>2003/12/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor StopParseException.java StylesheetPIHandler.java 
+TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java 
+xml-xalan/java/src/org/apache/xml/utils StopParseException.java StylesheetPIHandler.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Moving classes that are used between Xalan interpretive and XSLTC ( StylesheetPIHandler and StopParseException )  
+to xml/utils package . Making the required modifications to accomadate this change.<br />
+<br />
+
+Submitted by:	Bhakti Mehta ( bhakti.mehta@sun.com )<br />
+<br />
+Reviewed by: Ramesh Mandava<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils ObjectFactory.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed a bug I injected recently - missing slash between 'META-INF/services' and service name.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/01/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates RedundentExprEliminator.java XSLTVisitor.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Made methods in this class public, as is the case in the XPathVisitor class that
+it extends.  Having the class be public, but none of the methods public isn't
+helpful.<br />
+<br />
+
+Contributed by Warwick Burrows (wburrows@us.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/01/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates RedundentExprEliminator.java XSLTVisitor.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updating the copyright dates to reflect recent modifications.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/01/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updating build copyright year.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/01/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemLiteralResult.java ElemTextLiteral.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: 26169<br />
+Submitted by:	Brian Minchau<br />
+Flushed serialier before emitting trace event in ElemeTextLiteral and
+ElemLiteralResult.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/01/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add TransformThread sample to xalansamples.jar.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 25442.
+
+Record the initial empty sizes of the various vectors in the DTM, and use those
+sizes as the defaults in popRewindMark.  The code originally assumed that these
+vectors had default sizes of zero, but that's not true in the case of m_data,
+which reserves entry zero.<br />
+<br />
+
+Reviewed by Christine Li (jycli@ca.ibm.com)
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 19464.
+A reworked patch, move the push statements to the beginning of try block
+and added a flag to make sure that there is always something to pop
+Reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes UnionPathIterator.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 26019. detach location path iterators happens only when allowDetach flag is true.
+Reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorExsltFunction.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 18351.
+xsl:message instruction is allowed inside func:function.
+It doesn't construct nodes as part of the result.
+Reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix bugzilla bug report 18351.
+Set allowDetachToRelease flag to false, which allow caching of the arguments
+Reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/02/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla Bug 26075.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/02/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils TreeWalker.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla Bug 25416.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying Joanne Tone's (joannet@ca.ibm.com) patch for
+bugzilla bug report 26030.<br />
+<br />
+
+Do not suppress Xalan specified extension element namespace, unless they
+are declared as extension element namespaces by users.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 26829.
+
+Modified build.xml to add xalanj2taglet.jar to Xalan source distribution
+Contributed by Sarah McNamara (mcnamara@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerExsltFunction.java
+xml-xalan/java/src/org/apache/xalan/templates ElemExsltFunction.java ElemExsltFuncResult.java 
+xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 24302.
+
+Fields in the object representing an EXSLT function element (ElemExsltFunction)
+were being used to store execution state information for references to that
+function.  That caused problems with multi-threaded code that used Transformer
+objects created from the same Templates object - each Transformer shares the
+same instances of ElemExsltFunction.<br />
+<br />
+
+The fix was to replace the fields ElemExsltFunction.m_result and
+ElemExsltFunction.m_isResultSet with a new ObjectStack field in TransformerImpl
+named m_currentFuncResult.<br />
+<br />
+
+Also, changed how VariableStack was being updated in the execute method for a
+function reference - this change was modelled on equivalent code in
+ElemCallTemplate.<br />
+<br />
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemParam.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 24302.
+
+Changed condition under which the parent element's m_inArgsSize field is
+incremented - that field keeps track of the number of xsl:param children an
+element has.  This was only happening for ElemTemplate, but it needs to happen
+for ElemExsltFunction, which is a subclass of ElemTemplate, as well.<br />
+<br />
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/02/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Sort.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java NodeSortRecordFactory.java 
+xml-xalan/java/src/org/apache/xml/utils LocaleUtility.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla Bug 26842.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/02/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java 
+xml-xalan/java/src/org/apache/xml/utils StringComparable.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla Bug 1396.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/02/17<br />
+<b>
+<i>Modified: </i>
+</b> Most files in the Xalan Java cvs repository (too many to list) <br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New Apache 2.0 license update.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/02/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemForEach.java
+xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 26217<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Henry Zongaro<br />
+This is a javadoc update only.
+Programming instructions don't have a namespace, so make
+the PI with no namespace be "xalan-doc-cache-off" rather than
+"xalan:doc-cache-off"<br />
+<br />
+</li>
+
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/02/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 26217<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Henry Zongaro<br />
+Changed a ":" to a "-" in "xalan:doc-cache-off" in the FAQ.
+Programming instructions don't have a namespace, so make
+the PI with no namespace be "xalan-doc-cache-off" rather than
+"xalan:doc-cache-off". <br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/02/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 15140<br />
+Submitted by:	patch submitted by Bruno Dumon (bruno@outerthought.org)<br />
+Reviewed by:	Brian Minchau (minchau@ca.ibm.com)<br />
+<br />
+</li>
+
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/02/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToXMLStream.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 24304<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Henry Zongaro<br />
+Serialized XML no longer put a new line after the xml header unless indent="yes".<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/02/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemForEach.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 16889<br />
+Submitted by:	Elson Jiang<br />
+Reviewed by:	Brian Minchau<br />
+Fixes ElemForEach TraceListener bug.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/02/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java TransformerImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 23591<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Henry Zongaro<br />
+
+JAXP transformer.setOutputProperties(null); now not only doesn't
+get an exception, it also resets the internal state to flush out any
+previously accumulated properties as if the transformer had
+just been created.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/02/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer OutputPropertiesFactory.java 
+ToHTMLStream.java ToStream.java ToXMLStream.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 25816<br />
+Submitted by:	Brian Minchau<br />
+Reviewed by:	Henry Zongaro<br />
+Make default properties returned by serializer factory immutable.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/02/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib Redirect.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Javadoc update only.<br />
+PR: bugzilla 26742<br />
+Submitted by:	Brian Minchau<br />
+<br />
+
+Changed old invalid URI for xmlns:xsl to the correct one
+for XSLT 1.0.  The old value was before the XSLT 1.0 recommendation
+and appeared only in a javadoc example.  But it did confuse me when
+I tried to run the example in the javadoc.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils PrefixResolverDefault.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 24979.
+
+Fix for DOM XPath API, any element has an implicit declaration of its own
+prefix, which is enforced during namespace serialization.<br />
+<br />
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/02/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java 
+xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Code cleaning and optimization for copy and copy-of.  Discussed with Henry Zongaro.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml xml-xalan/java/src MANIFEST.MF manifest.xsltc<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for Bugzilla bug report 24728 from Sarah McNamara (mcnamara@ca.ibm.com).<br />
+<br />
+
+Use Ant's filtering capabilities to place appropriate "created-by" information
+into the MANIFEST.MF file of the jar that's being built.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 22376.
+
+When a TrAXFilter has a parent, should set itself as the EntityResolver,
+DTDHandler and ErrorHandler for it's parent to keep the filter chain,
+instead of always use the default EntityResolver, DTDHandler and ErrorHandler<br />
+<br />
+
+The patch is submitted by Werner Donne (werner.donne@re.be)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>aruny@apache.org<b>
+<i> on </i>
+</b>2004/02/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Description : Copying the patch from jaxp-1_3_0-branch  to main trunk.
+When there is no mark up inside element content, text should be contained in single TEXT node.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java ElemElement.java 
+ElemPI.java ElemTemplateElement.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java 
+AttributeSet.java Copy.java DecimalFormatting.java Key.java LiteralElement.java Output.java ProcessingInstruction.java 
+Template.java XslAttribute.java XslElement.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
+ErrorMessages.java ErrorMsg.java Util.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java 
+ErrorMessages.java xml-xalan/java/src/org/apache/xml/utils XMLChar.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla bug report 24988 from Joanne Tong (joannet@ca.ibm.com)
+reviewed by myself.<br />
+<br />
+
+Changes required to test whether an attribute value that is required to be
+a QName, NCName or whitespace-separated list of QNames actually meets that
+requirement.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xercesImpl.jar<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Upgrading to version 2.6.2 of Xerces-Java.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Part of patch for bug report 24985.  Ensure that m_size is set to zero in
+setStartNode methods of AncestorIterator and TypedAncestorIterator.  The way
+getLast() is implemented resulted in setStartNode being called twice in
+some circumstances, with the nodes from the second call being included as
+additional (though duplicate) ancestors.  Clearing m_size avoids that.<br />
+<br />
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com).<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.5.2</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml xml-xalan/java/src/org/apache/xalan Version.java Version.src<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Generate values for Version information from constants in the build script.
+(Adapted from xml-commons build script for the resolver.)
+New file Version.src (in org.apache.xalan) is copied into Version.java
+with version constants from build script plugged in.
+Deprecated XSLProcessorVersion class can be removed.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Generate values for Version information from constants in the build script.
+(Adapted from xml-commons build script for the resolver.)
+New file Version.src (in org.apache.xalan) is copied into Version.java
+with version constants from build script plugged in.
+Deprecated XSLProcessorVersion class can be removed.
+Also, updated build clean target to delete Version.java, so it will
+be regenerated in the next build.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan faq.xml overview.xml whatsnew.xml xsltc_usage.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Documentation patch to correct typos, contributed by Glen Mazza 
+(glenmazza@yahoo.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan faq.xml getstarted.xml history.xml index.xml samples.xml trax.xml usagepatterns.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Documentation update: Replaced all occurrences of TRaX with the properly
+capitalized TrAX.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/06/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Speed up CharInfo.isSpecial() by replacing its internal use of 
+java.util.BitSet with a more tuned bitset.
+Also sped up the common case of this method for ASCII values (0-126) by
+saving booleans in a cached array rather than looking them up via their
+bits in the bitset.
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/06/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Speed up ToStream.characters(char[] , int, int) method by
+caching commonly calculated boolean expression for characters in the range (0-126)
+in an array in CharInfo.
+Also move a whitespace check out of the loop that processes characters and into
+a separate loop.  Most of the time this whitspace checking loop will end early and
+speed up the other loop which no longer checks for whitespace with every character.
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/06/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer WriterToUTF8Buffered.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Performance improvement of WriterToUTF8Buffered.characters(char[],int,int);
+1. Reduced the number of checks for buffer overflow from 2 to 1
+   most of the time by nesting the checks.
+2. Used local variables for the array reference and count of characters stored in
+   the buffer to make the loop faster.
+3. Added an additional tight loop for better optimization.
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/06/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToTextStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changing firePseudoAttributes() to firePseudoElement() which
+is for debugger tooling.  Now both the whole start of the element-tag
+e.g.   &lt;abc attr1="val1" attr2="val2"
+will appear as output that might be written out, rather than
+just the attributes.
+Submitted by:	Gordon Chiu
+Reviewed by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/06/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToTextStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Change to use a local variable to hold the reference to m_writer (minor change for performance).
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/06/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToXMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changed references to m_writer to a local writer variable in
+a number of places (a minor performance improvement).
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/06/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Made ToStream.characters(char[], int, int) not bail out early if
+the length was 0 characters, but do all processing.  This forces
+the close of any open start tag.
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/06/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Igor Hersht for Bug 19770.  getFirstAttributeIdentity should check
+that argument is not equal to DTM.NULL prior to calling _type2 method - that
+method assumes that the argument is not NULL.  Added comments to that effect to
+_type2, _parent2, _firstch2, _nextsib2 and _exptype2.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/06/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for the general case of bugzilla 20685:
+DTMAxisIteratorBase#cloneIterator() was not setting clones to be
+non-restartable.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch contributed by Glen Mazza (glenmazza@yahoo.com):
+Fixing a typo in the command line help.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan commandline.xml samples.xml trax.xml usagepatterns.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch contributed by Glen Mazza (glenmazza@yahoo.com) for bugzilla 20625:
+Fixing some documentation typos.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToTextStream.java ToUnknownStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from myself and Brian Minchau (minchau@ca.ibm.com):
+Added serializer trace mechanisms to flush trace pseudo characters for
+start tag before attributes are added. Fixed serializer trace to generate
+correct pseudo characters for html attributes.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2003/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+A little code clean up, introduce the SQLQueryParser to handle variables
+better.
+
+Added code by Art Welsh to hande the Set/get Feature routine
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2003/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLQueryParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added code by Art Welsh to hande the inline variable parser.
+SQL Statements can describe an XSL variable name along with
+its type inside the statement instead of using the addParameter methods.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2003/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLErrorDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added code by Art Welsh to hande full errors, where multiple warning
+stattments wll be output into the error document
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2003/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added code by Art Welsh to hande multiple result sets and Callable statements.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2003/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql QueryParameter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added code by Art Welsh to handle more of the SQL Types, and other attributes
+about the parameter. such as IsOutput and the Name for XSL Variable reference
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/06/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToSAXHandler.java ToTextStream.java 
+ElemContext.java SerializerBase.java ToHTMLSAXHandler.java ToStream.java ToXMLSAXHandler.java ToXMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Moved a number of serializer instance variables into ElemContext,
+which is a stack to push/pop such values in unison. This makes
+the code clearer and less error prone and probably marginally
+(0.001%) faster.
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/06/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixing a build issue for JDKs that include XSLTC (specifically, the
+JavaCupRedirect class) but not java_cup.jar. Need to put java_cup.jar
+and runtime.jar on the bootclasspath.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java SimpleResultTreeImpl.java XSLTCDTMManager.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/trax XSLTCSource.java xml-xalan/java/src/org/apache/xml/dtm DTM.java 
+xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java DTMDefaultBaseIterators.java DTMDefaultBaseTraversers.java 
+DTMDocumentImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Implement a "DTM migration" feature, which allows a DTM that is built with
+an old DTMManager to be migrated to a new DTMManager. This is to support
+DTM sharing between multiple transformations.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/06/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java EmptySerializer.java ExtendedContentHandler.java 
+ToHTMLStream.java ToSAXHandler.java ToTextStream.java ToUnknownStream.java ToXMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added addUniqueAttribute() method for optimization purposes.
+The serializer may write out this attribute straight away with little processing becuase the caller guarantees
+that the value has these qualities:
+1) Value is unique, i.e. will not be changed by other addAttribute() calls.
+2) Value is ASCII
+3) Value does not contain quot (34) amp (38)  lt (60) gt (62)
+
+Submitted by:	Brian Minchau
+Reviewed by:	Morris Kwan
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralAttribute.java LiteralElement.java Output.java 
+Stylesheet.java Text.java XslAttribute.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util MethodGenerator.java 
+xml-xalan/java/src/org/apache/xml/serializer ElemDesc.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Performance improvement for XSLTC
+
+Implement a compiler-assisted serialization feature.
+Generate code to make use of the new
+addUniqAttribute(String name, String value, int flags)
+interface in SerializationHandler. The compiler does
+more static analysis on attributes of literal elements
+and passes the additional information to the serializer
+via a bit-encoded flag.
+
+The additional information includes whether this attribute
+is unique, whether its value has bad characters (something
+needs to be escaped), whether it is a HTML URI or empty
+attribute. If the attribute is unique, the serializer can
+write out the attribute right away, without having to
+accumulate it in an internal table. If it also does not
+contain bad characters, then escaping is not needed.
+All these information speeds up the serializer on writing
+the attributes out.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java ToHTMLStream.java ToSAXHandler.java 
+ToTextStream.java ToUnknownStream.java ToXMLSAXHandler.java ToXMLStream.java SerializerBase.java ToStream.java 
+ToTextSAXHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changed code like this:
+
+String s; ...
+char[] array = s.toCharArray();
+
+To this:
+final int length = s.length();
+if (length &gt; m_charsBuff.length)
+{
+    m_charsBuff = new char[length * 2 + 1];
+}
+char[] array = m_charsBuff;
+// re-use "array" but use "length" for the
+// number of characters in the array.
+
+This shows a 2% performance improvement for some
+XSLTC/HTML testcases. Of course some transformations
+may do betterthan this, and some worse, but all should be
+faster.
+
+The performance should also get marginally better for transformations that spend their
+time writing out attributes.  It runs marginally faster because
+the helper character buffer, m_charsBuffer is re-used rather
+than a new one being created each time. 
+
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for problem in ExpandedNameTable (bugzilla 21087).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix problem in EXSLT align function (bugzilla 19890).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils Trie.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Sped up the Trie.get(String) method by about a factor of 2.
+This was done by:
+1) Not using string.charAt(i) when looping through the characters,
+   but rather using string.getChars(0, len, array, 0) and looping over the array.
+2) Special casing the lookup in get(String key) for 0,1,2 or more characters
+3) Putting the objects into the Trie considering the key as case insensitive at the
+   time of putting the objects in, rather than at the time of taking them out.
+4) Not using a try/catch in the search loop to test if an
+   index is out of bounds, but testing if the character value is less than 128.
+Thanks to Gordon Chiu for optimization 1) and Henry Zongaro for 3) and 4).
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath NodeSet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from John Lambe (john.lambe@openjawtech.com) for bugzilla 20819
+with some modifications. removeElement() and removeElementAt() were
+not removing nodes correctly.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/06/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemIf.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Minor change to firing of trace events from xsl:if.
+
+xsl:for-each now fires one trace event plus one for every iteration.
+xsl:if should fire one regardless of whether or not the expression
+evaluates true or false. Related to discussion on bug 11414.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/06/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xpath/functions FuncCurrent.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applied Igor Hersht's (igorh@ca.ibm.com) patch for Bugzilla bug 10900.  Fixed
+up algorithm for determining the result of the current() function to avoid
+NullPointerException.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/07/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src MANIFEST.MF manifest.xsltc xml-xalan/java/xdocs/sources/xalan downloads.xml xml-xalan/java/bin 
+java_cup.jar runtime.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Sarah McNamara (mcnamara@ca.ibm.com)
+Moving java_cup.jar and runtime.jar from v0.10j to the latest version: v0.10k.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/07/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes UnionChildIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla 20909.
+Need to fix-up variables for PredicatedNodeTest sub-iterators in
+UnionChildIterator. Variables in the m_nodeTests expressions were not
+'fixed up'.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/07/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Adding missing trace events for xsl:with-param. Trace events for
+xsl:with-param are fired as the parameter expressions are executed.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/07/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemCallTemplate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Adding missing trace events for ElemWithParam as used in xsl:call-template.
+Trace events for xsl:with-param are fired as the expression is executed.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/07/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer NamespaceMappings.java ToHTMLStream.java ToStream.java 
+ToTextStream.java ToXMLSAXHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patches for bugzilla 20841 and 21039.
+PR: 20841, 21039
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/07/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch from David Bertoni (bertoni@us.ibm.com) for bug 20920.  The code
+for xsl:element was copying all accessible namespace declarations to the
+result, but that's something that should only happen for literal result
+elements.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/07/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla 21423
+PR: 21423
+Bug caused by an optimization where the element name was not
+remembered if the HTML tag was empty and the endElement() call
+was coming right away.  But XSLTC injected startNamespaceAfterElement() 
+in the middle, and it needed the element name, So startElement() records the 
+element name in the ElemContext even though the context is soon going away.
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/07/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Reduce the indentation level of end-element tags by 1 level.
+PR: bugzilla 21449
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/07/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java WriterToUTF8.java WriterToUTF8Buffered.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+WriterToUTF8Buffered is now faster because it uses a character
+array rather than a series of string.charAt(i) calls.  Other changes 
+were also made to this class.  
+
+Performance gains are when writing to an output stream that has UTF-8 encoding.
+WriterToUTF8   (not buffered) is deleted.  On analysis, its slow feature was that it
+didn't buffer and so it suffered many calls to the underlying OutputStream.  The more work that was done to
+this class to speed it up, the more it looked like WriterToUTF8Buffered.
+PR: bugzilla 21452
+
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/07/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla 17630 (method keys for extension functions are not unique).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/07/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer WriterToUTF8Buffered.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix to WriterToUTF8Buffered to ALWAYS buffer regardless of the
+size of the input char array or String.  This is achieved by logically cutting
+the input into chunks, each of which will not blow the internal byte buffer,
+and calling itself recursively.
+PR: bugzilla 21491
+Submitted by:	Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2003/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLQueryParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed NPE bug with inline variables
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/07/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla 21697:
+processAttributes always called writeAttrString with m_writer, regardless
+of which writer was passed to it. Now always using the passed writer.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/07/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java KEYS<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Adding my public key.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/07/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates FuncFormatNumb.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch from Igor Hersht (igorh@ca.ibm.com) for Bugzilla bug 6155.
+Prior to looking up an unnamed decimal format, the FuncFormatNumb.execute
+method was calling the stylesheet's getDecimalFormatCount method to save the
+cost of the look-up, in the event the result was zero.  The problem is that
+that method only returns the number of decimal-formats prior to composition of
+multiple stylesheets into a single stylesheet, so it was incorrectly returning
+zero always.  Now, the FuncFormatNumb.execute always performs the look-up.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/07/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes DescendantIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla 21713: need to check m_allowDetach before detach()ing an
+iterator of type DescendantIterator. (Thanks to Morris Kwan for reviewing
+this patch.)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/07/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src xml-commons-src.tar.gz xml-xalan/java/bin xml-apis.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updating with latest code from the tck-jaxp_1_2_0 branch of xml-commons
+
+which contains the SAX 2.0.1 code.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/08/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Made a couple of improvements to startElement and endElement to cache
+m_elemContext in a local variable.  Also, replaced calls to ElemDesc.is with a
+single call to ElemDesc.getFlags, and used inline code to check flag settings.
+
+Reviewed by Brian Minchau (minchau@ca.ibm.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/08/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ElemDesc.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added a getFlags() method to allow all flags on an ElemDesc object to be
+retrieved at once, rather than forcing multiple calls to ElemDesc.is(int).
+Also, marked class final.
+
+Reviewed by Brian Minchau (minchau@ca.ibm.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/08/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xml-apis.jar xml-xalan/java/src xml-commons-src.tar.gz<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Backing out SAX 2.0.1 xml-apis to the level used in XalanJ 2.5.1.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2003/08/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils SystemIDResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla Bug 21893
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/08/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 19591
+Submitted by:	Gordon Chiu
+Reviewed by:	Brian Minchau
+
+Fixes a few methods in the ToStream serializer so that it outputs the DOCTYPE
+sooner and in the correct location.  Thanks to Bruno Dumon for the nice test case
+and thanks to Gordon Chiu for the fix.
+- Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/08/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer Utils.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 21309
+Submitted by:	Brian Minchau
+
+Utils.classForName(String classname) still throws a ClassNotFoundException rather than
+return null, but it doesn't cache the classname/null combination anymore if the classname 
+is not loaded.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/08/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToTextStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+PR: bugzilla 18907
+Submitted by:	Brian Minchau 
+Patch has just been applied to main branch of CVS.
+
+Now ToStream.writeUTF16Surrogate(char c, char ch[], int i, int end) 
+return nothing rather than the "i+1" that it had always returned, 
+which was a bit confusing. 
+This routine always processed 2 input characters and always returned "i+1" so why bother?  
+
+There was no error in returning "i+1" because the situation in which this routine was called were always in a loop:
+for (int i=start; i &lt; end; i++) { ... }
+so "i" was always incremented before going on to the next iteration. Any i++; after calling writeUTF16Surrogate() now 
+means that 2 input characters have been processed, so there is no bug here (never was).  The code is just clearer now.
+A bug has been fixed in ToStream.accumDefaultEscape() which used to mis-count how many input characters that it processed.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/08/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+
+PR: bugzilla 21300	
+
+Submitted by:	Brian Minchau
+
+Reviewed by:	Henry Zongaro
+
+The review was done via a discussion.  Not too many requests are made to
+
+add encoding information to this property file.  Doing one now and then is OK.
+
+A comment was added to the property file showing where to go to get information
+
+on ISO encodings.   
+
+
+
+At this point a decision was made to NOT update the information en-mass, but wait for
+
+individual requests.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/08/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xml/serializer 
+CharInfo.java Encodings.java OutputPropertiesFactory.java SerializerFactory.java xml-xalan/java/src/org/apache/xpath/functions 
+FuncSystemProperty.java xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandler.java ExtensionHandlerGeneral.java 
+xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler 
+FunctionAvailableCall.java FunctionCall.java Parser.java xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java 
+NodeSortRecordFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax SmartTransformerFactoryImpl.java TemplatesImpl.java 
+TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/lib Extensions.java xml-xalan/java/src/org/apache/xalan/lib/sql 
+DefaultConnectionPool.java xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xslt 
+EnvironmentCheck.java Process.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ObjectType.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/runtime TransletLoader.java xml-xalan/java/src/org/apache/xml/dtm DTMManager.java 
+FactoryFinder.java SecuritySupport.java SecuritySupport12.java xml-xalan/java/src/org/apache/xml/dtm/ref CoroutineParser.java 
+IncrementalSAXSource_Xerces.java xml-xalan/java/src/org/apache/xml/utils ObjectPool.java ObjectFactory.java SecuritySupport.java 
+SecuritySupport12.java xml-xalan/java/src/org/apache/xpath/compiler FuncLoader.java xml-xalan/java/src/org/apache/xml/utils
+ ObjectPool.java ObjectFactory.java SecuritySupport.java SecuritySupport12.java<br />
+ <b>
+<i>Committer's log entry: </i>
+</b>
+Applying Igor Malinin's (igor@widespace.ee) patch for more convenient	(centralized)
+
+classloading.  See bugzilla #16675.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/08/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan overview.xml trax.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+A few minor doc updates.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/08/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerGeneral.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a typepo in ExtensionHandlerGeneral.java. It should check for null
+instead of nonnull.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/08/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLTElementProcessor.java xml-xalan/java/src/org/apache/xalan/templates 
+Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla 12441. In forward-compatible mode, an unknown attribute
+should be ignored. Currently Xalan throws an exception.
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/08/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Removed static method which was reading XSLTInfo.properties file and setting
+a system property for each property in the file.  That code was not appropriate
+in a secure environment, and wasn't actually needed.  Three of the properties
+were being set in support of the XSLT system-property function, but the
+implementation of that function didn't actually access the values from the
+system properties; the fourth was org.xml.sax.driver, which should be provided
+by the user's application or by the parser in a
+META-INF/services/org.xml.sax.driver file.
+
+Reviewed with Christine Li (jycli@ca.ibm.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/08/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Removed property for org.xml.sax.driver.  This is something that should be
+set by either the user's application code or by a
+META-INF/service/org.xml.sax.driver supplied with an XML parser.  Xalan
+shouldn't be responsible for setting it.
+
+Reviewed with Christine Li (jycli@ca.ibm.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/08/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/functions FuncSystemProperty.java SecuritySupport.java SecuritySupport12.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changed the way XSLTInfo.properties file was being read to use SecuritySupport
+class instead.  Added copies of SecuritySupport classes to this package as well.
+
+Reviewed with Christine Li (jycli@ca.ibm.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/08/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils SecuritySupport.java SecuritySupport12.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changed comments that referred to JAXP.  Updated imports to avoid using
+wildcards, which is a practice Xalan-J has largely eschewed.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates FuncDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for bug 19297 from Christine Li (jycli@ca.ibm.com).  The
+document() function must treat the second argument as a node-set; it should
+not permit an argument of any other type.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java 
+xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java xml-xalan/java/src/org/apache/xalan/trace ExtensionEvent.java 
+TraceListenerEx3.java TraceManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Implemented extensions trace mechanism for Java extension calls.
+(http://marc.theaimsgroup.com/?l=xalan-dev&amp;m=105715909512185&amp;w=2)
+
+Added new interfaces to allow a trace listener to receive information about
+extension functions and elements that are called or executed.
+
+Placed hooks in subclasses of ExtensionHandler prior to and after invoking
+the resolved extension method.
+
+Adding missing trace event for ElemExtensionCall.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/08/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Sarah McNamara (mcnamara@ca.ibm.com).
+
+Removing JavaCupRedirect from the jar files. This class is only
+needed at build time, and causes build problems when placed on the
+bootclasspath (when bootclasspathing xalan.jar under JDK 1.4).
+
+See also (http://marc.theaimsgroup.com/?l=xalan-cvs&amp;m=105637851030164&amp;w=2)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/09/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerExsltFunction.java xml-xalan/java/src/org/apache/xalan/res 
+XSLTErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applied patch for bug 15090 from Joanne Tong (joannet@ca.ibm.com).  Added code
+to handle the case in which a referenced function is not found by reporting an
+error.  Previously, a NullPointerException was the result.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2003/09/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils SystemIDResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla Bug 22777
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/09/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 21478	
+Submitted by:	Christine Li
+Reviewed by:	Brian Minchau
+
+Added message key ER_FUNCTION_NOT_SUPPORTED that
+maps to message (in English) "Function not supported!"
+so that an error message comes out rather than a crash.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2003/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla Bug 22808
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/09/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java ErrorMsg.java xml-xalan/java/xdocs/sources/xalan 
+commandline_xsltc.xml faq.xml xsltc_usage.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updated documentation to describe behaviour of XSLTC when the translet name
+specified by the user contains characters that are not permitted as part of a
+Java class name.
+
+Reviewed by Sarah McNamara (mcnamara@ca.ibm.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/09/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer SerializerSwitcher.java 
+xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Apply the patch from Richard Cao (richcao@ca.ibm.com) for bug 13082.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/09/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/trace PrintTraceListener.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updating PrintTraceListener to print information about the recently
+added ExtensionEvents.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/09/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/Trace Trace.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update Trace sample to allow tracing of extension calls, as well as
+optionally read the name of the stylesheet from the command line arguments.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/09/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan samples.xml usagepatterns.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Documenting the addition of the ExtensionEvent trace event, as well as
+the Trace sample changes.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/09/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorUnknown.java 
+xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java ElemFallback.java ElemUnknown.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: Bugzilla 23089
+Submitted by:	Joanne Tong
+Reviewed by:	Brian Minchau
+
+A slight rework of Joanne's patch made by Brian and now commited to CVS.
+Also just previosly commited was a testcase, extend06 created by Joanne (thank!).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/09/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch from Joanne Tong (joannet@ca.ibm.com) for Bugzilla bug report
+16311.  After completing the relevant operations in applyTemplateToNode, the
+method was popping various pieces of the context off of stacks.  However, in
+the case of the default template rule for text nodes, it was trying to pop
+variables off the stack, even though no variables had been pushed onto the
+stack.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/09/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch from Joanne Tong (joannet@ca.ibm.com) for Bugzilla bug report
+23200.  The XPath syntax for a number is "Digits ('.' Digits?)? | '.' Digits".
+The XPath parser accepted anything accepted by the Java double literal syntax,
+including values using "E" exponential notation.  The fix was to guard against
+any value using exponential notation.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/09/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources entities.ent xml-xalan/java/xdocs/sources/xalan downloads.xml faq.xml 
+history.xml index.xml resources.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 23418
+Submitted by:	Sarah McNamara
+Reviewed by:	Brian Minchau
+Updates to java/xdocs so that new webpages point to Apache Mirrors for distribution.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java ToHTMLStream.java ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 22623
+Submitted by:	Brian Minchau
+Reviewed by:	Henry Zongaro
+Tabs in HTML attribute values are now output as charater references.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java ElemLiteralResult.java 
+xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java xml-xalan/java/src/org/apache/xml/serializer 
+EmptySerializer.java SerializationHandler.java ToHTMLSAXHandler.java ToSAXHandler.java ToStream.java ToTextStream.java 
+ToUnknownStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 21471
+Submitted by:	Joanne Tong
+Reviewed by:	Brian Minchau
+Stop some SAXExceptions from being quietly caught by the serializer.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/10/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.java SecuritySupport.java SecuritySupport12.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Propagated SecuritySupport and SecuritySupport12 classes to serializer package.
+Code in Encoding that uses Class.getResource should instead use
+SecuritySupport.getResourceAsStream.
+
+Reviewed by Christine Li (jycli@ca.ibm.com)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 22422
+Submitted by: Brian Minchau	
+Reviewed by:	Naeim Semsarilar (person reporting the problem)
+
+Get a system and public ID from the properties used to create a serializer
+and used them to call appropriate methods on the ToXMLSAXHandler.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java xml-xalan/java/src/org/apache/xalan/templates 
+OutputProperties.java Stylesheet.java xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler AttributeValueTemplate.java xml-xalan/java/src/org/apache/xml/serializer 
+CharInfo.java xml-xalan/java/src/org/apache/xml/utils Hashtree2Node.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla 22342.
+Rename variables with name "enum". In JDK 1.5, enum is a keyword.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/10/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExpressionVisitor.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Apply the patch for bugzilla 14149 from Joanne Tong (joannet@ca.ibm.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 23113
+Submitted by:	Brian Minchau
+Reviewed by:	Brian Minchau
+The reset() in ToStream did not reset a few fields to the original values
+that were obtained via " new ToStream() ".  The applied patch fixes that.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates OutputProperties.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 890
+Submitted by:	 Richard Cao
+Reviewed by:	Brian Minchau
+Make sure a non standard property has a key with only one '{' and only one '}'
+and that the '{' is first thing in the key.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/10/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Christine Li (jycli@ca.ibm.com) for Bugzilla bug report 22880.
+
+When input comes from DOMSource, a TreeWalker object walks the DOM input and
+fires events to the ContentHandler for the result object, unless the DOM
+consists of only an Attribute node.  In the case of an Attribute, the TreeWalker
+is not utilized, and just the character data is copied to the result.
+
+As part of the traversal of the DOM, the TreeWalker always fires startDocument
+and endDocument events.  The code in the transform(Source,Result) method was
+redundantly firing those same events if the Node specified by the DOMSource
+was not a Document node.  Instead, that should be left to the TreeWalker.  The
+startDocument and endDocument events should only be fired in the transform
+method itself to complete the entirely local processing of Attribute nodes.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2003/10/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla Bug 7408. Submitrd by  Richard Cao.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2003/10/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorDecimalFormat.java xml-xalan/java/src/org/apache/xalan/templates DecimalFormatProperties.java KeyDeclaration.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla Bug 5972. Submitrd by  Richard Cao.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2003/10/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java XSLTSchema.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla Bug 788. Submitted by  Richard Cao.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java KEYS<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added the public key of "Brian James Minchau" to the xml-xalan/java/KEYS file.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 16512
+Submitted by:	Richard Cao
+Reviewed by:	Brian Minchau
+This bug has existed since the earth cooled (Mid 2000).
+Clearly 3 of 4 lines were commented out
+// if (x)
+//   diagnositcsWriter.print(...)/
+// else
+   diagnosticsWriter.print(...);
+And it was printing a message that we were done, not in the spirit of quiet
+success.  Richard Cao's patch is applied, the fourth line is now commented out as well.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2003/10/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates TemplateList.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla Bug 789. Submitted by  Richard Cao.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/10/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Richard Cao (richcao@ca.ibm.com) for Bugzilla bug 15700.
+Added additional check to prevent unrecognised elements from the XSLT namespace
+(or even recognized elements, other than xsl:stylesheet and xsl:transform)
+from appearing as the outermost element in a stylesheet.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xalan2jdoc.jar xalan2jtaglet.jar 
+xml-xalan/java build.xml xml-xalan/java/src/org/apache/xalan/templates AVT.java 
+AVTPart.java Constants.java ElemApplyImport.java ElemApplyTemplates.java ElemAttribute.java 
+ElemAttributeSet.java ElemCallTemplate.java ElemComment.java ElemCopy.java ElemCopyOf.java 
+ElemElement.java ElemExtensionCall.java ElemExtensionScript.java ElemFallback.java 
+ElemForEach.java ElemIf.java ElemLiteralResult.java ElemParam.java ElemSort.java 
+ElemTemplateElement.java ElemText.java ElemWhen.java ElemWithParam.java FuncDocument.java 
+KeyDeclaration.java StylesheetRoot.java AVTPartSimple.java AVTPartXPath.java 
+DecimalFormatProperties.java ElemChoose.java ElemEmpty.java ElemExsltFunction.java 
+ElemExtensionDecl.java ElemMessage.java ElemNumber.java ElemOtherwise.java ElemPI.java 
+ElemTemplate.java ElemTextLiteral.java ElemUnknown.java ElemUse.java ElemValueOf.java 
+ElemVariable.java FuncFormatNumb.java FuncKey.java TemplateList.java 
+xml-xalan/java/src/org/apache/xml/dtm/ref CoroutineManager.java DTMDefaultBase.java 
+DTMDocumentImpl.java DTMNamedNodeMap.java DTMNodeProxy.java DTMTreeWalker.java 
+xml-xalan/java/src/org/apache/xpath/axes AttributeIterator.java ChildIterator.java 
+ChildTestIterator.java LocPathIterator.java OneStepIteratorForward.java WalkingIterator.java 
+ContextNodeList.java DescendantIterator.java IteratorPool.java OneStepIterator.java 
+RTFIterator.java SelfIteratorNoPredicate.java SubContextList.java UnionPathIterator.java 
+WalkerFactory.java WalkingIteratorSorted.java xml-xalan/java/src/org/apache/xalan/res 
+XSLMessages.java XSLTErrorResources_en.java xml-xalan/java/src/org/apache/xalan/transformer 
+ClonerToResultTree.java Counter.java CountersTable.java DecimalToRoman.java KeyIterator.java 
+KeyRefIterator.java KeyTable.java MsgMgr.java NodeSorter.java NodeSortKey.java 
+NumeratorFormatter.java ResultNameSpace.java TransformerImpl.java TreeWalker2Result.java 
+XSLInfiniteLoopException.java xml-xalan/java/src/org/apache/xpath/axes AttributeIterator.java 
+ChildIterator.java ChildTestIterator.java LocPathIterator.java OneStepIteratorForward.java 
+WalkingIterator.java ContextNodeList.java DescendantIterator.java IteratorPool.java 
+OneStepIterator.java RTFIterator.java SelfIteratorNoPredicate.java SubContextList.java 
+UnionPathIterator.java WalkerFactory.java WalkingIteratorSorted.java 
+xml-xalan/java/src/org/apache/xalan/lib ExsltCommon.java ExsltDatetime.java ExsltDynamic.java 
+ExsltMath.java ExsltSets.java ExsltStrings.java Extensions.java 
+xml-xalan/java/src/org/apache/xpath Arg.java Expression.java FoundIndex.java NodeSet.java 
+NodeSetDTM.java SourceTree.java VariableStack.java XPath.java XPathContext.java 
+XPathException.java XPathFactory.java XPathProcessorException.java 
+xml-xalan/java/src/org/apache/xalan/trace EndSelectionEvent.java GenerateEvent.java 
+PrintTraceListener.java SelectionEvent.java TraceListener.java TraceListenerEx.java 
+TraceListenerEx2.java TraceListenerEx3.java TracerEvent.java 
+xml-xalan/java/src/org/apache/xpath/functions FuncBoolean.java FuncCeiling.java 
+FuncConcat.java FuncContains.java FuncCount.java FuncCurrent.java FuncDoclocation.java 
+FuncExtElementAvailable.java FuncExtFunction.java FuncExtFunctionAvailable.java 
+FuncFalse.java FuncFloor.java FuncGenerateId.java FuncId.java FuncLang.java FuncLast.java 
+FuncLocalPart.java FuncNamespace.java FuncNormalizeSpace.java FuncNot.java FuncNumber.java 
+FuncPosition.java FuncQname.java FuncRound.java FuncStartsWith.java FuncString.java 
+FuncStringLength.java FuncSubstring.java FuncSubstringAfter.java FuncSubstringBefore.java 
+FuncSum.java FuncSystemProperty.java Function.java Function2Args.java Function3Args.java 
+FunctionDef1Arg.java FunctionMultiArgs.java FunctionOneArg.java FuncTranslate.java 
+FuncTrue.java FuncUnparsedEntityURI.java WrongNumberArgsException.java 
+xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources_ca.java 
+XPATHErrorResources_cs.java XPATHErrorResources_de.java XPATHErrorResources_en.java 
+XPATHErrorResources_fr.java XPATHErrorResources_hu.java XPATHErrorResources_it.java 
+XPATHErrorResources_ja.java XPATHErrorResources_ko.java XPATHErrorResources_pl.java 
+XPATHErrorResources_pt_BR.java XPATHErrorResources_sk.java XPATHErrorResources_sv.java 
+XPATHErrorResources_zh_TW.java XPATHMessages.java XPATHErrorResources_es.java 
+XPATHErrorResources_ru.java XPATHErrorResources_tr.java XPATHErrorResources_zh_CN.java 
+XPATHErrorResources.java xml-xalan/java/src/org/apache/xml/utils AttList.java 
+BoolStack.java CharKey.java Constants.java DefaultErrorHandler.java DOM2Helper.java 
+DOMBuilder.java DOMHelper.java ElemDesc.java Hashtree2Node.java IntStack.java IntVector.java 
+ListingErrorHandler.java MutableAttrListImpl.java NameSpace.java NodeVector.java NSInfo.java 
+ObjectPool.java ObjectStack.java ObjectVector.java PrefixResolver.java 
+PrefixResolverDefault.java QName.java RawCharacterHandler.java StringBufferPool.java 
+StringToIntTable.java StringToStringTable.java StringToStringTableVector.java 
+StringVector.java SuballocatedByteVector.java SuballocatedIntVector.java SystemIDResolver.java 
+TreeWalker.java Trie.java UnImplNode.java WrongParserException.java 
+XMLCharacterRecognizer.java xml-xalan/java/src/org/apache/xpath/res 
+XPATHErrorResources_ca.java XPATHErrorResources_cs.java XPATHErrorResources_de.java 
+XPATHErrorResources_en.java XPATHErrorResources_fr.java XPATHErrorResources_hu.java 
+XPATHErrorResources_it.java XPATHErrorResources_ja.java XPATHErrorResources_ko.java 
+XPATHErrorResources_pl.java XPATHErrorResources_pt_BR.java XPATHErrorResources_sk.java 
+XPATHErrorResources_sv.java XPATHErrorResources_zh_TW.java XPATHMessages.java 
+XPATHErrorResources_es.java XPATHErrorResources_ru.java XPATHErrorResources_tr.java 
+XPATHErrorResources_zh_CN.java XPATHErrorResources.java 
+xml-xalan/java/src/org/apache/xpath/patterns FunctionPattern.java NodeTest.java 
+StepPattern.java UnionPattern.java xml-xalan/java/src/org/apache/xml/res 
+XMLErrorResources_en.java XMLMessages.java xml-xalan/java/src/org/apache/xml/utils/res 
+XResourceBundle.java XResourceBundleBase.java XResources_cy.java XResources_de.java 
+XResources_el.java XResources_en.java XResources_es.java XResources_fr.java XResources_he.java 
+XResources_hy.java XResources_it.java XResources_ja_JP_A.java XResources_ja_JP_HA.java 
+XResources_ja_JP_HI.java XResources_ja_JP_I.java XResources_ka.java XResources_ko.java 
+XResources_sv.java XResources_zh_CN.java XResources_zh_TW.java 
+xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java 
+XPathNamespaceImpl.java XPathNSResolverImpl.java XPathResultImpl.java 
+xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandler.java 
+ExtensionHandlerGeneral.java ExtensionHandlerJava.java ExtensionHandlerJavaClass.java 
+ExtensionHandlerJavaPackage.java ExtensionsTable.java XSLProcessorContext.java 
+xml-xalan/java/src/org/apache/xalan/serialize SerializerUtils.java 
+xml-xalan/java/src/org/apache/xml/utils/synthetic/reflection Constructor.java 
+EntryPoint.java Field.java Member.java Method.java xml-xalan/java/src/org/apache/xpath/objects 
+XBoolean.java XBooleanStatic.java XMLStringFactoryImpl.java XNodeSet.java XNull.java 
+XNumber.java XObject.java XRTreeFrag.java XString.java 
+xml-xalan/java/src/org/apache/xalan/processor ProcessorDecimalFormat.java 
+ProcessorExsltFuncResult.java ProcessorExsltFunction.java ProcessorLRE.java 
+ProcessorStylesheetDoc.java ProcessorUnknown.java StopParseException.java 
+StylesheetHandler.java XSLProcessorVersion.java xml-xalan/java/src/org/apache/xpath/compiler 
+Compiler.java FuncLoader.java Keywords.java OpCodes.java OpMapVector.java XPathParser.java 
+xml-xalan/java/src/org/apache/xpath/operations Variable.java 
+xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/client 
+XSLTProcessorApplet.java xml-xalan/java/src/org/apache/xalan/xslt Process.java 
+xml-xalan/java/src/org/apache/xml/dtm DTM.java DTMDOMException.java 
+xml-xalan/java/src/org/apache/xml/utils/synthetic Class.java JavaUtils.java 
+SynthesisException.java TestDriver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 20572 (javadoc generation failing under JDK 1.4)
+Submitted by:	Richard Cao
+Reviewed by:	Brian Minchau
+Did a further review and tested javadoc generation under JDK 1.4.1 and under 1.2.2
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/10/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/client XSLTProcessorApplet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Christine Li (jycli@ca.ibm.com) for Bugzilla bug report 19823.
+Added code to use a Hashtable to keep track of parameters set for an applet.
+The old implementation allowed just one parameter to be specified for the
+transformation.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 20572
+Submitted by:	Richard Cao
+Reviewed by:	Brian Minchau
+Richard added extra -breakiterator option when building javadoc for SDK 1.4 or higher
+to get rid of warning messaes when doing the build.
+This is a compatibility option.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToSAXHandler.java 
+ToXMLSAXHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 23812
+Submitted by:	Brian Minchau
+Reviewed by:	Henry Zongaro
+Fixes incorrect handling of CDATA by a ToXMLSAXHandler. 
+The CDATA was defined by calls to the LexicalHandler methods:
+startCDATA()
+endCDATA()
+Henry would rather have a new flushPending() method which does not
+flush a generated endCDATA() call, but I copied the contents of flushPending()
+to the top of ToXMLSAXHandler.character(char[] chars, int off, int len)
+anyways.  I didn't want to put a new flushPending() method on a SerializationHandler
+interface.   I'm not completely happy with either choice so I left it as-was  - bjm
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToSAXHandler.java 
+ToXMLSAXHandler.java
+xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 7205
+Submitted by:	Richard Cao
+Reviewed by:	Brian Minchau/Henry Zongaro
+Do NOT  have ToXMLSAXHandler always mirror namespaces given via
+startPrefixMapping("prefix1", "uri1")
+ as attribute values of the form xmlns:prefix1="uri1"
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExpressionVisitor.java
+xml-xalan/java/src/org/apache/xalan/lib PipeDocument.java ExsltCommon.java 
+ExsltDatetime.java xml-xalan/java/src/org/apache/xalan/lib/sql ConnectionPool.java 
+ConnectionPoolManager.java DefaultConnectionPool.java DTMDocument.java ObjectArray.java 
+PooledConnection.java QueryParameter.java XConnection.java 
+xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java 
+xml-xalan/java/src/org/apache/xalan/templates ElemExsltFuncResult.java 
+ElemTemplateElement.java FuncDocument.java OutputProperties.java
+xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java 
+EmptySerializer.java NamespaceMappings.java ToHTMLSAXHandler.java ToHTMLStream.java 
+ToStream.java ToTextSAXHandler.java ToUnknownStream.java ToXMLSAXHandler.java 
+ToXMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 23983
+Submitted by:	Brian Minchau
+javadoc cleanup
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes AttributeIterator.java 
+ChildIterator.java 
+ChildTestIterator.java DescendantIterator.java LocPathIterator.java NodeSequence.java 
+OneStepIterator.java OneStepIteratorForward.java SelfIteratorNoPredicate.java 
+UnionPathIterator.java WalkingIterator.java
+xml-xalan/java/src/org/apache/xalan/transformer package.html TransformerIdentityImpl.java 
+TransformerImpl.java XalanProperties.java XalanTransformState.java
+xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
+xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java DTMNodeIterator.java 
+DTMNodeProxy.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 23983
+Submitted by:	Brian Minchau
+javadoc cleanup
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer SerializerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix to make SerializerFactory return a serializer even if the only
+property specified is method="xml"
+PR: bugzilla 22025
+Submitted by:	Brian Minchau
+Reviewed by:	John Meyer (bug originator)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/23<br />
+<b>
+<i>Modified: </i>
+</b> java/src/org/apache/xml/serializer Encodings.properties ToTextStream.java
+java/src/org/apache/xml/res XMLErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+patch to emit emit error message for method="text" when output character not valid in the 
+output encoding.   
+PR: bug 795
+Submitted by:		 Richard Cao
+Reviewed by:		 Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/23<br />
+<b>
+<i>Modified: </i>
+</b> java/src/org/apache/xalan/templates ElemLiteralResult.java
+ElemUse.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Error message for testcase attribseterr07
+PR: bug 782
+Submitted by:		 Richard Cao
+Reviewed by:		 Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/23<br />
+<b>
+<i>Modified: </i>
+</b> java/src/org/apache/xml/serializer CharInfo.java
+ToHTMLStream.java ToXMLStream.java ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bug 24025
+Submitted by:		 Brian Minchau
+Reviewed by:		 Henry Zongaro
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/23<br />
+<b>
+<i>Modified: </i>
+</b> java/src/org/apache/xml/utils QName.java
+java/src/org/apache/xml/res XMLErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Shouldn't be able to call a template with no prefix:
+PR: bug 3415
+Submitted by:		 Richard Cao
+Reviewed by:		 Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/23<br />
+<b>
+<i>Modified: </i>
+</b> ava/src/org/apache/xalan/lib PipeDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PipeDocument was not calling out.close() when done with the 
+FileOutputStream "out".
+PR: bug 24013
+Submitted by:		 Pierre Chardin (bug reporter)
+Reviewed by:		 Brian Minchau
+<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.5.1</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/04/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying Sarah McNamara's (mcnamara@ca.ibm.com) patches to update
+version numbers in XalanJ.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/04/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml commandline.xml history.xml index.xml readme.xml resources.xml samples.xml whatsnew.xml xsltc_history.xml xsltc_usage.xml xml-xalan/java/xdocs/sources entities.ent xalan-jlocal.xml xalan-jsite.xml xml-xalan/java commits.xml build.xml xml-xalan/java/xdocs/style/stylesheets done.xsl xml-xalan/java/xdocs xml-site-style.tar.gz<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Sarah McNamara's (mcnamara@ca.ibm.co) documentation patch.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/04/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added comments before a couple of messages to assist translators, and fixed a typo in the class name mentioned in a message.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/04/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java EmptyIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patches from Igor Hersht (igorh@ca.ibm.com) for bug 15200 and
+bug 18585.
+
+Pulled EmptyIterator class out of SAXImpl to allow for more widespread use.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/04/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New FAQ from Christine Li (jycli@ca.ibm.com) for using Xalan in Tomcat
+with JDK 1.4.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2003/04/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for array out of bounds exception in findNamespaceContext, where the index was allowed to go to -1.  This is a blind fix, and someone who knows the code better should take a look to see what they think.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2003/04/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemCallTemplate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Made it a static error in compose(...) if a reference is made to a non-existent template.  Note this might cause some existing stylesheets to not work, since the error would never have been flagged if the code was not run.  Note the old code was marked for %REVIEW%, so I don't think this was ever resolved.  I think it's clear that this should be a static error.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/04/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Change in comments only. Deleted old commented out (and incorrect)
+double-checked locking code.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/04/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Duplicate trace was event being issued.  One from ElemElement and then 
+from its parent class: ElemUse.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/04/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Dropping properties files that contain English messages.
+xml-xalan/java/src/org/apache/xalan/res/XSLTErrorResources.properties has been
+replaced by xml-xalan/java/src/org/apache/xalan/res/XSLTErrorResources.java.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/04/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Dropping properties files that contain English messages.
+xml-xalan/java/src/org/apache/xpath/res/XPATHErrorResources.properties has been
+replaced by xml-xalan/java/src/org/apache/xpath/res/XPATHErrorResources.java.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/04/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java Extensions.java xml-xalan/java/src/org/apache/xml/serializer CharInfo.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changed incorrect double-check locking code with an inner class
+with a static field.  Synchronization is covered by the class loader.
+Loading happens when first referenced. A cool, efficient, safe 
+way to lazy load a static field.
+
+PR: bugzilla 19029
+Obtained from: Henry Zongaro
+Submitted by: Brian Minchau
+Reviewed by: Henry Zongaro
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java ToStream.java ToXMLSAXHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Cleared two helper fields, m_elementURI and m_elementLocalName in endElement()
+Both of these fields are out of scope after the element is ended
+so it is correct to null them out at endElement()
+
+PR: bugzilla 19388
+Obtained from: bruno@outerthought.org (Bruno Dumon) and Brian Minchau
+Submitted by: bruno@outerthought.org (Bruno Dumon)
+Reviewed by: Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+endDTD() for ToHTMLStream now does nothing. It used to incorrectly
+write out some closing characters, but that was already hanled in startDocumentIntermal()
+
+PR: 19587
+Submitted by: bruno@outerthought.org (Bruno Dumon)
+Reviewed by: Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Performance fix for double buffering.  Don't use WriterToUTF8Buffered if the 
+writer class is "BufferedServletOutputStream".
+
+PR: bugzilla 19474
+Submitted by: Brian Minchau
+Reviewed by: Ilene Seelemann
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for flushing occuring in trace code even when tracing is not being done.
+
+PR: bugzilla 19471
+Submitted by: Brian Minchau
+Reviewed by: Ilene Seelemann
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/05/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Serializer properties files have moved to the new org.apache.xml.serializer
+package.  Corrected part of documentation that didn't yet reflect that.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToHTMLSAXHandler.java ToHTMLStream.java ToSAXHandler.java ToStream.java ToTextSAXHandler.java ToTextStream.java ToXMLSAXHandler.java ToXMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Guarded the fireXXX(); calls to trace events with if (m_tracer != null),
+strictly for performance reasons. This should run faster than making the call and then checking.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Title of FAQ for Xerces version read, "Which version of Xerces-J 2.4.0 should I
+use?" answering it's own question.  Fixed that to make for a more suspenseful
+read.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/05/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorTemplateElem.java xml-xalan/java/src/org/apache/xalan/templates ElemAttributeSet.java ElemElement.java ElemLiteralResult.java ElemTemplateElement.java ElemUse.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Some Trace-related fixes: Two trace events were being fired for ElemCopy,
+and for templates elements derived from ElemUse the trace end event was
+being fired before child templates were executed. Also saved locator
+information for the end tag of stylesheet elements.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer SerializerBase.java ToHTMLStream.java ToStream.java ToXMLSAXHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+See bugzilla # 19900 for a laundry list of small performance 
+enhancements.
+
+PR: bugzilla 19900
+Submitted by: Brian Minchau
+Reviewed by: Henry Zongaro
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer Encodings.java OutputPropertiesFactory.java SerializerFactory.java Utils.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Performance enhancement. Cache the loading of classes via Class.forName(classname)
+ in the serializer.  The same class is otherwise loaded over and over with each request
+to a server, e.g. in a servlet. 
+PR: bugzilla # 19960
+Submitted by: Brian Minchau
+Reviewed by: Morris Kwan
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/05/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemExsltFuncResult.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Adding missing trace events for the func:result element.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The HTML serializer should do nothing with the methods on the 
+DeclHandler interface, so they are now defined with empty
+bodies.  Also the comment() method does nothing when in a
+DTD.
+PR: bugzilla 19640
+Submitted by: Bruno Dumon (bruno@outerthought.org)
+Reviewed by: Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/05/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added a new FAQ to describe a situation some users have encountered of late
+using XSLTC with JDK 1.4.
+Contributed by Christine Li (jycli@ca.ibm.com) with some editorial input from
+myself.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/05/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionNamespacesManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a compatibility problem when using the old "http://xml.apache.org/xslt"
+namespace with extension functions in org.apache.xalan.xslt.Extensions.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/05/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml xml-xalan/java/xdocs/sources/xalan builds.xml downloads.xml resources.xml xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Sarah McNamara (mcnamara@ca.ibm.com) which improves documentation
+about packaging and adds support for building and testing an alternate 
+binary distribution which provides xalan-interpretive and xsltc in separate jars.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+One line fix to get a lexical handler, was casting the wrong reference.
+PR: bugzilla 20237
+Submitted by: Bernard D'Have (bdhaveos@wanadoo.be)
+Reviewed by: Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/05/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/extensions/sql/basic-connection dbinfo.xml dbtest.xsl<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update to the SQL extension sample from Christine Li (jycli@ca.ibm.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/05/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying Christine Li's (jycli@ca.ibm.com) fix for bug 19522.  When a
+SerializationHandler object is created for Xalan-J Interpretive, it needs to
+be informed which Transformer object is associated with the serialization.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+AttributesImplSerializer now uses the older (faster) org.xml.sax.helpers.AttributesImpl
+up until about 12 attributes and switches over to using a Hashtable for faster lookup
+of attributes, avoiding an order N*N performance problem for large
+number of attributes, but faster for lower number of attributes.
+PR: bugzilla 20273
+Submitted by: Brian Minchau
+Reviewed by: Henry Zongaro
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/05/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemExsltFunction.java xml-xalan/java/src/org/apache/xpath VariableStack.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Christine Li (jycli@ca.ibm.com) for bugzilla #18926.
+
+Variables weren't being cleared from stack between calls to func:function.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/05/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources_ca.java XSLTErrorResources_cs.java XSLTErrorResources_de.java XSLTErrorResources_es.java XSLTErrorResources_fr.java XSLTErrorResources_hu.java XSLTErrorResources_it.java XSLTErrorResources_ja.java XSLTErrorResources_ko.java XSLTErrorResources_pl.java XSLTErrorResources_pt_BR.java XSLTErrorResources_ru.java XSLTErrorResources_sk.java XSLTErrorResources_tr.java XSLTErrorResources_zh_CN.java XSLTErrorResources_zh_TW.java xml-xalan/java/src/org/apache/xalan/xslt Process.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages_ca.java ErrorMessages_cs.java ErrorMessages_de.java ErrorMessages_es.java ErrorMessages_fr.java ErrorMessages_hu.java ErrorMessages_it.java ErrorMessages_ja.java ErrorMessages_ko.java ErrorMessages_pl.java ErrorMessages_pt_BR.java ErrorMessages_ru.java ErrorMessages_sk.java ErrorMessages_tr.java ErrorMessages_zh_CN.java ErrorMessages_zh_TW.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime ErrorMessages_ca.java ErrorMessages_cs.java ErrorMessages_de.java ErrorMessages_es.java ErrorMessages_fr.java ErrorMessages_hu.java ErrorMessages_it.java ErrorMessages_ja.java ErrorMessages_ko.java ErrorMessages_pl.java ErrorMessages_pt_BR.java ErrorMessages_ru.java ErrorMessages_sk.java ErrorMessages_tr.java ErrorMessages_zh_CN.java ErrorMessages_zh_TW.java xml-xalan/java/src/org/apache/xml/res XMLErrorResources_ca.java XMLErrorResources_cs.java XMLErrorResources_de.java XMLErrorResources_es.java XMLErrorResources_fr.java XMLErrorResources_hu.java XMLErrorResources_it.java XMLErrorResources_ja.java XMLErrorResources_ko.java XMLErrorResources_pl.java XMLErrorResources_pt_BR.java XMLErrorResources_ru.java XMLErrorResources_sk.java XMLErrorResources_tr.java XMLErrorResources_zh_CN.java XMLErrorResources_zh_TW.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources_ca.java XPATHErrorResources_cs.java XPATHErrorResources_de.java XPATHErrorResources_es.java XPATHErrorResources_fr.java XPATHErrorResources_hu.java XPATHErrorResources_it.java XPATHErrorResources_ja.java XPATHErrorResources_ko.java XPATHErrorResources_pl.java XPATHErrorResources_pt_BR.java XPATHErrorResources_ru.java XPATHErrorResources_sk.java XPATHErrorResources_tr.java XPATHErrorResources_zh_CN.java XPATHErrorResources_zh_TW.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Checked in localized messages for Xalan and XSLTC contributed by IBM.
+New Locale support includes ca, cs, hu, pl, pt_BR, ru, sk and tr.
+The old messages are also updated with translations for newly added
+English messages.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils BoolStack.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added a clear() method to clear a BoolStack, so that such a 
+stack can be re-used without the need to create a new one
+(for performance).
+Submitted by: Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer NamespaceMappings.java SerializerBase.java ToHTMLStream.java ToSAXHandler.java ToStream.java ToXMLSAXHandler.java ToXMLStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Support for reset() for the stream serializers and for ToXMLSAXHandler.
+These serializers can now be reset and re-used rather than creating a new one.
+A reset() takes about 1/2 the time of creating a new one.
+
+Submitted by: Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/05/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToHTMLSAXHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Support for a ToHTMLSAXHandler serializer to be reset() and re-used.
+Submitted by: Brian Minchau
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/05/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Contributed by Christine Li (jycli@ca.ibm.com).
+Modified FAQ entry regarding bootclasspath; the class path separator is not
+colon for all systems.
+<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.5.0</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/02/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Small improvement to SAXImpl.copyElement().
+Move the getStringValue() method from SAXImpl to SAX2DTM2.
+Remove the SAXImpl.stringValueAux() method.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/02/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src xml-commons-src.tar.gz xml-xalan/java/bin xml-apis.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update to latest version of xml-apis.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/02/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Improvement to DescendantIterator. If _startNode is the root node, do
+not need to do the isDescendant() check.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/02/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Set the nextsib element of an attribute or namespace node to -1.
+This makes the logic in the iterators simpler and easier to
+maintain.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/02/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql DTMDocument.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AttributeList.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java DTMStringPool.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java xml-xalan/java/src/org/apache/xml/utils SuballocatedIntVector.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Improvement for RTF. These changes improve the performance
+for stylesheets which create and throw away many small RTFs.
+
+Make the sizes of all internal storage units used by SAXImpl configurable.
+These include SuballocatedIntVector, DTMStringPool, IntStack and FastStringBuffer.
+The chain size of DTMStringPool and the number of blocks in SuballocatedIntVector
+can now be passed in the constructor. These sizes are set to smaller values in
+the RTF case.
+
+The default RTF size is changed to 32. There is also a change in the XSLTC
+AttributeList class to use on-demand memory allocation for the internal vectors.
+The vectors are only allocated when there is an attribute.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/02/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Small improvement to DescendantIterator and TypedDescendantIterator.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/02/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/extensions/sql/streamable cachedNodes.xsl pivot.xsl xml-xalan/java/xdocs/sources/xalan samples.xml xml-xalan/java/samples/CompiledApplet menu.html README.applet xml-xalan/java/samples/extensions/sql/basic-connection dbinfo.xml dbtest.xsl<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+More sample and documentation updates from Christine Li (jycli@ca.ibm.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/02/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add a getTransformer() interface to TrAXFilter. This is a user requested
+feature. This interface can be used by the UseXMLFilters samples to
+set the output properties correctly.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/02/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java DTMDefaultBaseIterators.java DTMDefaultBaseTraversers.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Do not create the previous sibling array for XSLTC. This array is not used
+in XSLTC's SAXImpl. Creating it is a waste of time.
+
+We add a boolean flag to the constructors of DTMDefaultBase and its
+subclasses to indicate whether the previous sibling array should be created.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/02/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Correct an error. The DTMDefaultBase.getPreviousSibling() interface
+returns a node handle instead of a node identity.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/02/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/CompiledEJB bottom_frame.html index.html README.ejb top_frame.html xml-xalan/java/samples/CompiledServlet CompileServlet.java README.servlet<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patches for samples from Christine Li (jycli@ca.ibm.com)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Propagate the change from head branch to XSLTC_DTM.
+Add a new getTransformer() interface to TrAXFilter.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TrAXFilter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add a new getTransformer() interface to TrAXFilter.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java NameBase.java Stylesheet.java xpath.cup XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java DocumentCache.java LoadDocument.java SAXImpl.java XSLTCDTMManager.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java TransformerImpl.java XSLTCSource.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+
+Implement a feature for on-demand building of the ID index table.
+
+Before this change, the SAX2DTM2 class always builds an ID index
+hashtable by comparing the name of every attribute with "id". Now
+we maintain a flag _hasIdCall in AbstractTranslet to indicate
+whether the translet has id function calls. The value of this flag
+is compiled into the translet from the Stylesheet class. The Stylesheet
+class also has an _hasIdCall flag, which is set by the XPath parser.
+
+When a SAXImpl object is created, the _hasIdCall flag is passed in from the
+Translet. Now the id index table is only built when the stylesheet makes
+use of the id function.
+
+Also fix a bug in the NameBase class for using an incorrect class name
+(org.apache.xml.dtm.ref.DTMAxisIterator should be org.apache.xml.dtm.DTMAxisIterator).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom AnyNodeCounter.java DOMAdapter.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Improvement for xsl:number. Introduce an optimized version of
+getExpandedTypeID() in SAX2DTM2.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMWSFilter.java NodeSortRecord.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Improvement for xsl:strip-space by caching the DTM that is used last time.
+Better Collator handling in NodeSortRecord.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Save the values of attribute, namespace, comment and PI nodes
+in a plain Vector instead of in DTMStringPool. Saving a String
+in DTMStringPool involves a hash calculation. These values
+are unlikely to be equal. Saving them in a plain Vector has a
+lower cost than saving them in DTMStringPool. Only prefixed QNames
+are saved in DTMStringPool after this change.
+
+Need to make changes in a few interfaces to accommadate this change.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Small improvement in FastStringBuffer.sendSAXCharacters() when the whole
+piece of text is in one chunk.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Small improvement in SAX2DTM2.getStringValueX() and dispatchCharacterEvents()
+by saving one local variable.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom CollatorFactoryBase.java SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Save the offset and length of a Text node in a bitwise encoded value (10
+bits for length and 21 bits for offset) if they are within certain limits.
+Before this change, we need 3 SuballocatedIntVector calls to get the offset
+and length information. Now we only need one SuballocatedIntVector call,
+one bit AND &amp; one SHIFT. Bit AND and SHIFT are faster than accessing a
+SuballocatedIntVector.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a bug for testcase axes129.
+DTMDefaultBase.getFirstNamespaceNode() should return NULL when
+the given node is not an element. axes129 passed in both
+Xalan and XSLTC_DTM after this change.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2003/03/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Oops! Old bug, just noticed -- we forgot to override RootTraverser's typed first().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom NthIterator.java xml-xalan/java/src/org/apache/xml/dtm DTMAxisIterator.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Improvement for step[n]. Introduce a new interface getNodeByPosition(int position)
+in DTMAxisIterator, which is used by the NthIterator. The default implementation
+is in DTMAxisIteratorBase. The subclasses can override this interface to provide
+a faster customized implementation.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Introduce a copyAttribute() method in SAXImpl to speed up
+attribute copying.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Improvement in DTM building. Make the code more efficient
+in a few expensive interfaces.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a bug in XSLTC_DTM.
+Change the name of the optimized getExpandedTypeID method to getgetExpandedTypeID2.
+The old one can be used during DTM building, while the new one is only
+used in document traversal.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/03/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/templates FuncDocument.java FuncDocument.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/templates FuncDocument.java FuncDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing Christine Li's (jycli@ca.ibm.com) patch for bugzilla #18210.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java SAX2DTM2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xml.dtm.ref.sax2dtm.
+Add new file SAX2DTM2.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xml.dtm.ref.dom2dtm.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm DTM.java DTMAxisIterator.java DTMManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xml.dtm.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java DTMAxisIterNodeList.java DTMChildIterNodeList.java DTMDefaultBase.java DTMDefaultBaseIterators.java DTMDefaultBaseTraversers.java DTMDocumentImpl.java DTMManagerDefault.java DTMNamedNodeMap.java DTMNodeList.java DTMNodeListBase.java DTMNodeProxy.java DTMStringPool.java ExpandedNameTable.java ExtendedType.java IncrementalSAXSource_Xerces.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xml.dtm.ref.
+Add new files:
+DTMAxisIterNodeList.java
+DTMChildIterNodeList.java
+DTMNodeListBase.java
+ExtendedType.java
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/res XMLErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xml.res.
+Add new messages for common serializer.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer AttributesImplSerializer.java CharInfo.java DOMSerializer.java ElemDesc.java EmptySerializer.java EncodingInfo.java Encodings.java Encodings.properties ExtendedContentHandler.java ExtendedLexicalHandler.java HTMLEntities.res Method.java NamespaceMappings.java output_html.properties output_text.properties output_unknown.properties output_xml.properties OutputPropertiesFactory.java OutputPropertyUtils.java package.html SerializationHandler.java Serializer.java SerializerBase.java SerializerConstants.java SerializerFactory.java SerializerTrace.java SerializerTraceWriter.java ToHTMLSAXHandler.java ToHTMLStream.java ToSAXHandler.java ToStream.java ToTextSAXHandler.java ToTextStream.java ToUnknownStream.java ToXMLSAXHandler.java ToXMLStream.java TransformStateSetter.java WriterToASCI.java WriterToUTF8.java WriterToUTF8Buffered.java XMLEntities.res XSLOutputAttributes.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Add new serializer classes under package org.apache.xml.serializer.
+Log from Brian Minchau (minchau@ca.ibm.com):
+
+In the past Xalan-J interpretive (Xalan) and XSLTC both implemented their own
+serialization stages.  Much of the code provides the same functionality.
+In order to improve the maintainability of the code, and to eliminate any
+functional differences, these two serializers are now merged in the
+org.apache.xml.serializer package.
+
+The best performing features of both have been used.  The class hierarchy
+of serializers used by XSLTC is re-used for this reason. At the highest
+level the serializer classes split based on whether the output of the
+serializer is a "Stream" or whether it is a "SAX" handler.  After that
+both major branches split based on the output type (e.g. XML, HTML or TEXT).
+
+The external user interface of the old Xalan serializer has been kept.
+Other classes and interfaces have been absorbed into the serializer
+package to keep it independent of both Xalan and XSLTC. The primary
+interface, SerializationHandler, accepts SAX and SAX-like calls, but
+it also absorbs other interfaces from the old Xalan serializer.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils DOMHelper.java FastStringBuffer.java IntStack.java SuballocatedIntVector.java XMLStringDefault.java XMLStringFactoryDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xml.utils.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions XSLProcessorContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.extensions.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java PipeDocument.java Redirect.java xml-xalan/java/src/org/apache/xalan/lib/sql DTMDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.lib.
+
+1. Change the return types of some date-time extension functions
+for support in XSLTC.
+
+2. Changes for the new serializer.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorOutputElem.java TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.processor.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/serialize CharInfo.java DOMSerializer.java ElemDesc.java EncodingInfo.java Encodings.java Encodings.properties HTMLEntities.res Method.java package.html Serializer.java serializer.properties SerializerFactory.java SerializerToHTML.java SerializerToText.java SerializerToXML.java SerializerUtils.java WriterToASCI.java WriterToUTF8.java WriterToUTF8Buffered.java XMLEntities.res<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Remove old serializer classes under org.apache.xalan.serialize.
+The new serializer files are now in org.apache.xml.serializer.
+Add new file SerializerUtils.java.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java ElemAttribute.java ElemCopy.java ElemCopyOf.java ElemElement.java ElemExtensionCall.java ElemForEach.java ElemLiteralResult.java ElemTemplateElement.java ElemTextLiteral.java ElemValueOf.java output_html.properties output_text.properties output_xml.properties OutputProperties.java StylesheetRoot.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.templates.
+Replace ResultTreeHandler with SerializationHandler.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/trace GenerateEvent.java PrintTraceListener.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.trace.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer ClonerToResultTree.java QueuedEvents.java ResultTreeHandler.java SerializerSwitcher.java TransformerHandlerImpl.java TransformerIdentityImpl.java TransformerImpl.java TransformSnapshot.java TransformSnapshotImpl.java TransformState.java TreeWalker2Result.java XalanTransformState.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.transformer for the new serializer.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml xsltc_todo.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Update build.xml and xsltc_todo.xml.
+
+Now the default build target is a big xalan.jar which
+includes both Xalan-J Interpretive and XSLTC.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src MANIFEST.MF<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Update MANIFEST.MF to include information about
+xsltc and its support jars.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/04/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xercesImpl.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updating to Xerces-J 2.4.0.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src MANIFEST.MF<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Update spec version for XSLTC in MANIFEST.MF
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/CompiledApplet menu.html README.applet TransformApplet.java xml-xalan/java/samples/CompiledBrazil README.brazil TransformHandler.java xml-xalan/java/samples/CompiledEJB README.ejb TransformBean.java xml-xalan/java/samples/CompiledJAXP Compile.java README.cjaxp Transform.java xml-xalan/java/samples/CompiledServlet README.servlet TransformServlet.java xml-xalan/java/samples/DOM2DOM DOM2DOM.java xml-xalan/java/samples/Pipe Pipe.java xml-xalan/java/samples/SAX2SAX SAX2SAX.java xml-xalan/java/samples/translets JAXPTransletMultipleTransformations.java JAXPTransletOneTransformation.java todo.xsl xml-xalan/java/samples/UseXMLFilters UseXMLFilters.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+
+Update in the samples
+1. Changes from Henry Zongaro (zongaro@ca.ibm.com) in the
+XSLTC samples. Use TrAX API instead of native API.
+2. Changes from Brian Minchau (minchau@ca.ibm.com) to use
+the new serializer classes.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/CompiledApplet singleTransform.html xml-xalan/java/samples/CompiledEJB bottom_frame.html index.html top_frame.html xml-xalan/java/samples/translets todo.xml todotoo.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Add new sample files.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources entities.ent xalan-jlocal.xml xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml commandline.xml dtm.xml history.xml readme.xml samples.xml usagepatterns.xml xsltc_history.xml xsltc_usage.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+
+Update in java/xdocs.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes FilterExprWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Commit patch for bug 12797 from Arun Yadav (arun.yadav@sun.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/04/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added a new "fulldist" target.  It builds a distribution that includes Xalan-J
+components that depend upon non-standard components that aren't part of the
+Xalan-J repository.  In particular, xsltcbrazil.jar is built under the
+"fulldist" target, but not under the ordinary "dist" target.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer ToStream.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Replace Vector.add() by Vector.addElement() because the first method
+is not in JDK 1.1.8.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/04/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xml/utils TreeWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Instead of setting a default baseURI in newTemplates, append a dummy string
+to the default used in the TreeWalker constructors.  This solves the problem
+of violating the SourceLocator.getSystemId API which should return null
+if if no systemId was set, while allowing relative URI's to be resolved when
+the source is a DOM and no systemID has been set.  Relative URI's are already 
+resolved correctly for other source types.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/04/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/CompiledApplet TransformApplet.java README.applet<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Christine Li (jycli@ca.ibm.com).  Reworked applet code so that the
+init method creates a thread to which it delegates all the work of creating
+Transformers and performing transformations.
+
+Xalan needs all of its classes to be loaded with respect to the same class
+loader.  The thread that's created will have the context class loader, if any,
+that is in effect when the applet's init method is called, but calls to other
+methods on the applet might not have the same context class loader.  Using a
+thread avoids any problems that might arise from such a situation.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/04/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer CharInfo.java HTMLEntities.properties output_html.properties output_xml.properties XMLEntities.properties xml-xalan/java/xdocs/sources/xalan usagepatterns.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Christine Li (jycli@ca.ibm.com).  Changed CharInfo so that it allows
+descriptions of entities to be specified as a properties file in addition to a
+Xalan-specific resource file format.
+
+The code previously always assumed a Xalan-specific resource file format, for
+both user-supplied descriptions of entities, and for those supplied with
+Xalan-J.  The security restrictions of applets are such that an applet that
+relies on a copy of Xalan-J in the Java run-time would find that Xalan-J would
+be unable to read the default entities file that is packaged with the JRE on
+the applet's behalf - it can only do so with a properties, via ResourceBundle.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Commit an implementation of the date-time:format-date() extension function
+(bugzilla 18713) contributed by Helg Bredow (helg.bredow@kalido.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Docs update
+Document the new "use-classpath" attribute
+which is supported in the XSLTC TrAX API.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/04/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/CompiledServlet README.servlet TransformServlet.java xml-xalan/java/samples/CompiledBrazil README.brazil<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Sample updates from Christine Li (jycli@ca.ibm.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/04/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/serialize DOMSerializer.java Serializer.java SerializerFactory.java xml-xalan/java/src/org/apache/xml/serializer DOMSerializer.java SerializationHandler.java SerializerBase.java ToHTMLStream.java ToUnknownStream.java xml-xalan/java/src/org/apache/xalan/templates OutputProperties.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Brian Minchau (minchau@ca.ibm.com) for backward compatibility
+of new serializers.  Also a fix related to a failure in the DOM2DOM sample.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/04/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/serializer HTMLEntities.res XMLEntities.res<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Dropped descriptions of entities in the form of resource files in favour of
+those in the form of properties file.  The resource files are still supported,
+but Xalan-J's serializer only requires one.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/04/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Dropped descriptions of entities in the form of resource files in favour of
+those in the form of properties file.  The resource files are still supported,
+but Xalan-J's serializer only requires one.
+<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.4.1</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed Class loader Problem. Default Connection now uses context Classloader
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed problem where a query that returned zero rows would incorrectly return a JDBC
+Exception. Note: This only occurs in streaming mode.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add a convenient interface getStringValue() which returns the
+string value of a node. It is used by the extension code
+to get a node value without hacking into the DTM.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates Constants.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add strings for new extension namespaces. This includes new EXSLT
+namespaces (dynamic and strings), namespaces for redirect, PipeDocument
+and SQL extensions and new namespace for the Java extension. For
+backward compatibility, the old Java namespace is still kept.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionNamespacesManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Register new extension namespaces, including two new EXSLT namespaces
+(dynamic and strings), namespaces for redirect, PipeDocument and SQL
+extensions and the new/old namespaces for Java extension.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib Extensions.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Reorganize the extension functions for new EXSLT extensions and
+XSLTC integration. The implementation of some extension functions
+(intersection, difference, distinct, evaluate and tokenize) are
+moved to the corresponding EXSLT extension classes. We also put
+a note to say that using these extension functions in the
+Xalan namespace is deprecated. The signature of some extension
+functions are changed to facilitate the XSLTC integration.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltMath.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The EXSLT math extension was rewritten for XSLTC integration. The
+signatures of the existing functions (max, min, highest and lowest)
+are changed. We use NodeList instead of NodeSet and NodeIterator
+in arguments and return types, because it is the only node list type
+recognized by XSLTC. We also got rid of the ExpressionContext
+arguments in these functions. We implemented the toNumber() and toString()
+interfaces as a replacement.
+
+I also implemented all of the remaining math functions in the EXSLT spec,
+e.g. constant, sin, random.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltSets.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The signatures of the sets extension functions are changed for
+XSLTC integration. NodeList is used instead of NodeSet and NodeIterator
+in arguments and return types. The implementation of intersection,
+difference and distinct was moved from Extensions.java to this file.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib Redirect.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add comments for the new namespace (http://xml.apache.org/xalan/redirect).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib PipeDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add comments for the new namespace (http://xml.apache.org/xalan/PipeDocument).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add comments for the new namespace (http://xml.apache.org/xalan/sql).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDynamic.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add the ExsltDynamic class which implements the EXSLT dynamic
+extension functions (max, min, sum, map, evaluate and closure).
+
+The implementation of evaluate is taken from Extensions.java.
+The Javadoc is copied from the relevant EXSLT page.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Implement the EXSLT strings extension functions (align,
+concat, padding, split and tokenize). The implementation
+of tokenize is taken from Extensions.java.
+
+The Javadoc is copied from the relevant EXSLT page. Three
+functions (decode-uri, encode-uri and replace) are missing
+due to ambiguous spec.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes SelfIteratorNoPredicate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 11809 and 10643. Fix the nextNode() interface so that
+it returns DTM.NULL if the m_foundLast flag is true.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 11073. Fix an extension namespace problem.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 11743 and 12298. Fix argument handling in
+extension functions. Arguments now have non-null parents
+and they will be visited by the XPathVisitor.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java KEYS<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+I had to get a new key after a hard drive crash.  This time, I backed it up!
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Copy the LICENSE and README files to the bin directory for the source distribution.
+These files are needed by the xsltc.jar target.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerIdentityImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Throw an IllegalArgumentException in the setErrorListener() interface
+if the error listener is null.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions MethodResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 9731. Convert an empty NodeList to a null Node.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates OutputProperties.java xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 12379. Transformer.setOutputProperties() should throw
+IllegalArgumentException if the property is invalid.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 12127. Throw a TransformerException if a prefix cannot
+be resolved to a URI insteading of throwing a NullPointerException.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Correct a problem in the previous patch.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Javadoc correction.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib Extensions.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Make the tokenize extension function different from the one in the
+EXSLT strings extension. Reuse the Document object to reduce
+memory consumption.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltStrings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Make the tokenize function conformed with the EXSLT spec. Reuse
+the Document object to reduce memory usage.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes RTFIterator.java xml-xalan/java/src/org/apache/xpath/objects XRTreeFrag.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 11341. Let RTFIterator extend NodeSetDTM so that it is the kind
+of DTMIterator expected by DTMNodeList. This also fixes the problem in
+testcase JavaBugzilla3722.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorExsltFunction.java XSLTSchema.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 12077. Fixed problem with func:function in included stylesheet.
+Add exsltFunction to the templateElements list so that we can detect the error where
+func:function is embedded in another (e.g. xsl:variable) element.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xml-apis.jar xml-xalan/java/src xml-commons-src.tar.gz<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New version of xml-apis.jar taken from xml-commons with tag:
+factoryfinder-build.  It contains the JAXP FactoryFinder patch and some
+SAX file updates.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC support - phase 1
+
+Add the -XSLTC option to enable transforming using XSLTC
+
+The following existing options do not work in XSLTC mode:
+-TT
+-TG
+-TS
+-TTC
+-QC
+-L
+-INCREMENTAL
+-NOOPTIMIZE
+-RL
+
+If any of these options is used with -XSLTC, a message is printed
+and the option is ignored. All other existing options (e.g. -flavor,
+-text, etc.) can be used with -XSLTC.
+
+In phase 2, we are going to migrate the XSLTC specific options in the
+XSLTC command lines (Compile and Transform) to the Process command line.
+One of the new features would be generating translet class files from
+the xsl.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDynamic.java ExsltMath.java ExsltStrings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Extension work. A few Javadoc correction. Fix problems in math:max and math:min.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/objects XRTreeFragSelectWrapper.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 6181. Change the execute() interface to return the result
+of executing the select expression.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xercesImpl.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updating to latest xercesImpl.jar, which contains org.w3c.dom.xpath interfaces.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNSResolverImpl.java XPathResultImpl.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Prototype implementation of DOM L3 XPath Specification.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/serialize SerializerToXML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing Gordon Chiu's (grchiu@ca.ibm.com) patch for bugzilla #6927.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>2002/09/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml xsltc_usage.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+compile -n option changed so inlining is now the default
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltBase.java ExsltDynamic.java ExsltMath.java ExsltSets.java ExsltStrings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Extension cleanup.
+Add an ExsltBase class as the super class for other EXSLT implementation
+classes, so that the toString() and toNumber() interfaces can be easily
+reused by all the subclasses without duplicating code.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath DOMHelper.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The isNodeTheSame(node1, node2) interface should return true if node1==node2.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #10384.  There's still a problem with attribseterr08 which
+is covered in bugzilla #3969.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/dom3/xpath XPathEvaluator.java XPathException.java XPathExpression.java XPathNamespace.java XPathNSResolver.java XPathResult.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Since Xerces has decided not to build the org.w3c.dom.xpath interfaces into
+XercesImpl I have created a temporary home for these interfaces, until
+the specification becomes a recommendation.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNSResolverImpl.java XPathResultImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updating import statements to use the interfaces in the temporary org.apache.xalan.dom3.xpath package.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added some new error message strings.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #4344.  The testcases, copyerr04-07 were already
+working correctly in that when an attempt was made to add an attribute
+after child elements, or before an element was produced, the attribute was 
+ignored.  However, Dave M.  said that a warning was also needed.  So,
+I have added a warning message for these cases.  Also, similar behaviour
+was being seen for testcases attribset19,35,36 and attribseterr08.  This
+was being handled in ElemAttribute.execute, but I've commented out the
+code there since it will get caught in  ResultTreeHandler.execute in the
+same place the copyerr tests get handled.
+
+The negative testcases, copyerr04-07, attribset08 should  be moved
+to the positive bucket (possibly with a few tweaks) since they all run to
+completion.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemAttribute.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #4344.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/09/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Gordon Chiu's (grchui@ca.ibm.com) patch for bugzilla #8473.  Thanks also
+to Brian Minchau (minchau@ca.ibm.com) for the analysis of this bug.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/functions FunctionMultiArgs.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 7161. Add a public accessor to return the argument array.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath XPathContext.java xml-xalan/java/src/org/apache/xalan/extensions ExpressionContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 10414. Provide a getErrorListener() interface in the ExpressionContext.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/AppletXMLtoHTML client.html<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For bugzilla 13059. Fix typo width"0" to width="0".
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Messages for new options in the Process command line.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC support in the Process command line - phase 2
+Migrate the options from the XSLTC command line (Compile and Transform)
+to the Process command line. The following new options are added:
+
+-XO [translet_name]  (specify translate class name)
+-XD destination_directory (specify destination directory)
+-XJ jar_name (put translet into jar file)
+-XP package_prefix (specify package name prefix)
+-XN (enable template inlining)
+-XX (additional debug messages)
+-XT (use translet to transform if possible)
+
+The new options can only be used with the -XSLTC option. The options are
+passed to XSLTC via the standard TRAX API - TransformerFactory.setAttribute().
+Process does not directly communicate with XSLTC.
+
+The usage instructions are also re-organized. The options are divided into
+three categories (command options, Options for Xalan and Options for XSLTC). A
+pager is used when displaying the usage instructions so that you can see them
+page by page.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/10/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime ErrorMessages.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added and fixed up some additional translation guidelines.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/functions FuncExtFunction.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use Vector.elementAt() instead of Vector.get(). The latter is not available
+in JDK 1.1.8. Add two argument accessor methods for Bugzilla 8939.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates Constants.java ElemTemplateElement.java output_html.properties output_text.properties output_xml.properties OutputProperties.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use one namespace for all extensions (Bugzilla 9959)
+Use the new namespace uri "http://xml.apache.org/xalan" instead of
+"http://xml.apache.org/xslt" for xsl:output extension attributes.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorLRE.java XSLTElementDef.java XSLTSchema.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use one namespace for all extensions (Bugzilla 9959)
+Use the new namespace uri "http://xml.apache.org/xalan" for
+the component and script extension elements. We maintain
+backward compatibility so that using the old uri
+"http://xml.apache.org/xslt" still works.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaPackage.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Minor Javadoc update to use the new namespace uri.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/samples/extensions 1-redir.xsl 2-basicJscript.xsl 3-java-namespace.xsl 4-numlistJava.xsl 5-numlistJscript.xsl 6-sqllib-instantdb.xsl<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update the extension samples to use the new namespace.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltMath.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Minor fix for math:max().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 13106. Visit the XPath expressions created for match patterns.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes DescendantIterator.java UnionPathIterator.java WalkerFactory.java xml-xalan/java/src/org/apache/xpath/compiler Compiler.java Lexer.java OpMap.java XPathParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #5046.
+
+The token queue and operations map can now grow to accomodate really
+large XPath expressions.   Starting sizes of the data structures remain set
+at the size in the current code.
+
+I created new classes org.apache.xml.utils.ObjectVector (based on org.apache.xml.utils.IntVector)
+and org.apache.xpath.compiler.OpMapVector to store the token queue
+and operations map.
+
+This patch is essentially a stop gap until the new parser (xslt20 branch) is integrated.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils ObjectVector.java xml-xalan/java/src/org/apache/xpath/compiler OpMapVector.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #5046.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/compiler OpMap.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Cleaning up import statements.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils IntStack.java IntVector.java ObjectStack.java ObjectVector.java xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java ElemForEach.java xml-xalan/java/src/org/apache/xalan/transformer StackGuard.java TransformerImpl.java TransformSnapshotImpl.java xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Commiting Gordon Chiu's (grchiu@ca.ibm.com) patch for bugzilla#8175.
+
+IntStack's and ObjectStack's are now used in place of fixed length arrays, so that users
+should not run into limitations based on array sizes.  The initial size of the arrays has
+been set to current array sizes, so the user's experience should not change much, except
+in the cases where they were running into the size limitation.
+
+No performance analysis has been done to determine an optimal initial
+size for the stacks.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing Igor Hersht's (igorh@ca.ibm.com) patch for bugzilla #10176.
+
+Also, removing testcase position102 from the excludes list for the smoketest
+since it now runs.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #13305.  Moved initalization code into a static initializer.
+
+TransformerFactory.newInstance() can now be called safely from multiple
+threads.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xercesImpl.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updating to XercesJ 2.2.0.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing Pavel Ausianik's (Pavel_Ausianik@epam.com) patch for bugzilla #12687.
+
+Reduce memory allocation on initialization of ExpandedNameTable.
+
+m_locNamesPool and m_namespaceNames and code that uses them has
+been commented out.  Some initialization now done in static initializer.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing Gordon Chiu's (grchiu@ca.ibm.com) modified patch of Pavel Ausianik's (Pavel_Ausianik@epam.com) 
+patch for bugzilla #12486.
+
+Method XPathContext.reset()  was creating many new instances of java objects, 
+causing unnecessary memory allocations, instead of reusing previously created 
+objects. 
+
+
+m_locNamesPool and m_namespaceNames and code that uses them has
+been commented out.  Some initialization now done in static initializer.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java Encodings.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing Gordon Chiu's (grchiu@ca.ibm.com) patch for bugzilla #13754.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/dom3/xpath COPYRIGHT.html<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Copying the copyright statement for the DOM L3 XPath API interfaces into
+the temporary package (org.apache.xalan.dom3.xpath) which contains
+the interfaces until they become a recommendation.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorExsltFunction.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For bugzilla 13711
+Fix the conditions for validating the child elements of func:function.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer KeyTable.java xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing urban.spielmann@swisslife.ch (Urban Spielmann)'s  patch for bugzilla #11661.  
+
+After the Redundant Expression Elimination merge, the key cache had
+not yet been replaced.  This patch puts back the key cache, which
+gives xsl:key much better performance.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemExtensionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For bugzilla 7357
+Fix problems in exception handling for extension elements.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #13863.
+
+Moved setting the namespaceContext from the TransformerImpl constructor to
+the transform method.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath XPath.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Move a hardcoded string into the properties file.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java ExtensionHandlerJavaPackage.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For bugzilla 13944. Check for InvocationTargetException in Method.invoke().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 13303.
+Fix Memory leak in XPathContext.popRTFContext().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Backing out patch for bugzilla #13863.  It causes a bunch of failures in 
+the trax.sax flavour.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan extensions.xml extensionslib.xml samples.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update the extensions documentation.
+Use the new namespaces in documents and examples. Update EXSLT development
+status. Modify setup instructions for SQL samples.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs xml-site-style.tar.gz xml-xalan/java/xdocs/sources/xalan faq.xml resources.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 14022
+Commit Gordon Chiu's update to the FAQ.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/dom3/xpath COPYRIGHT.html XPathEvaluator.java XPathException.java XPathExpression.java XPathNamespace.java XPathNSResolver.java XPathResult.java xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java XPathNSResolverImpl.java XPathResultImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Removed the temporary org.apache.xalan.dom3.xpath package.
+
+Updated the org.w3c.dom.xpath interfaces.
+
+Changed dependencies to org.w3c.dom.xpath interfaces in the implementation
+classes in org.apache.xalan.xpath.domapi.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Build org.w3c.xpath.dom interfaces into xalan.jar.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Gordon Chiu.  Replace stack.clear() calls with stack.removeAllElements()
+to be compatible with JDK1.1.8.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>2002/10/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Support compiling under JDK 1.2 - 1.4.  Also check for compatability with target JDK 1.1.x.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/10/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/domapi XPathNamespaceImpl.java XPathResultImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Somewhat rough implementation of XPathNamespace.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>2002/10/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin ant.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Upgrade to Ant 1.5.1.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltBase.java ExsltStrings.java xml-xalan/java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix JDK 1.1.8 compatibility problems.
+Replace methods calls that are only in Java2 by JDK 1.1 equivalents.
+For DefaultConnectionPool.java, use reflection mechanism to invoke
+Thread.getContextClassLoader() instead of hard-coded invocation.
+<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.4.0</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/serialize SerializerToText.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bugzilla 8358 -- bad method signature. I've created a new method
+with the correct signature. The old one may or may not be entirely
+superfluous, but I don't want to muck with it right now.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources entities.ent xalan-jsite.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updated Xalan version to 2.3.2 and Xerces to 2.0.1.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan xsltc_usage.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added classpath information pertaining to xercesImpl.jar and xml-apis.jar.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources entities.ent<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added pointer to xml-apis.jar MANIFEST for version information.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan history.xml readme.xml xsltc_history.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updates for next version (release notes to history)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan extensionslib.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added info on Xalan implementation of EXSLT common, math,
+and set extensions, and ongoing work on the function and result
+elements and datetime extensions.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan index.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added support for EXSLT extensions.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla entries
+	6833
+	7023
+	7123
+	7410
+
+Basic summary of logic error: It is possible for multiple RTF DTMs
+to be pushed onto the stack between the start of a template and
+return from it. I hadn't anticipated that, so my pop logic was
+inadequate.
+
+I'm still not 110% sure I understand the case where this situation
+arises... I have a general intuition that it makes sense, but also a
+suspicion that there might be a way to avoid creating one of these
+DTMs. We should review that someday.
+
+Meanwhile, this fixes a whole batch of related bugs.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Performance improvement. Instead of looping through the ExtendedType objects, use a hashtable and go directly to the correct object.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/05/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java Encodings.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bugzilla 6356: Add support for "windows-1251" and use a properties file to store all the supported encodings. Patch from Sergey Ushakov.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/05/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add basic DOM nodetypes to our hashtable of extended type IDs
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/05/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLMessages.java XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/xslt Process.java xml-xalan/java/src/org/apache/xml/utils/res XResourceBundle.java XResourceBundleBase.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResourceBundle.java XPATHErrorResources_en.java XPATHErrorResources.java XPATHErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use PropertyResourceBundle instead of ListResourceBundle, and put error
+messages into property files, for easier localization.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/05/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes WalkerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+In mightBeProximate, there was a bug that assumed a variable would not be
+be a numeric result.  It is now fixed to assume a number may be a number, which
+may cause a small performance penalty.  In the future, it should be possible to
+chase this down a bit more to rule out more variables as non-numbers.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/05/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath XPath.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bugzilla 7157. Updated Javadoc comment to note that the XPath.installFunction() method currently does not
+use the name parameter.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/05/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java xml-xalan/java/src/org/apache/xpath/functions FuncLast.java FuncPosition.java Function.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bugzilla6284: New function added to position() and last() that will help us determine whether we are executing a top-level expression and therefore, not inside a predicate
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/05/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLMessages.java XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add a null constructor for resource files and fix XSLMessages to use the correct error resource file
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/05/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/META-INF/services org.apache.xml.dtm.DTMManager xml-xalan/java/src/org/apache/xml/dtm DTMManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add meta file for DTMManager factory and make sure it is read as UTF-8
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/05/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/objects XNodeSetForDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+m_last was not being set correctly. See comments.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/05/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bugzilla 7118: Variable set via RTF may have
+local variables within it; need to push a new
+context.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/05/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Missing safety net, mostly needed during stylesheet construction.
+
+We really should change TransformerImpl to set parent _before_
+starting to setPropertiesFromAttributes, so the error conditions
+which might cause this test to be needed don't arise. Among other
+things, that would produce more useful diagnostic messages.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/05/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bugzilla 8894: DescendantForRoot traversers needed to implement their own version of first(int, int) so that their context would be from the root.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/05/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes NodeSequence.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for NullPointerException in SQL extension stuff. Just check for a NULL iterator...
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/05/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bugzilla 8324. This should have been checked into the main branch.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/05/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemTemplateElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Dumb of me -- fixed one edge case and created another, because
+I forgot about subclassing Sigh. This version protects against both.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/05/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBase.java DTMDefaultBaseIterators.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for new tests Variable71 and Variable72.
+
+When we went to the shared RTF DTMs, we forgot to update
+PreceedingIterator to reflect the fact that the root of a DTM tree
+may no longer have 0 as its internal Node Identifier. This change
+corrects that situation, and does so without imposing a lot of
+computational overhead since we need to scan the ancestors
+anyway.
+
+There appear to be similar hazards in some of the Traversers,
+still to be dealt with. Coming up with testcases which will provoke
+those bugs (and confirm that we've fixed them) is likely to be
+harder than writing the fix itself...
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>2002/05/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+section on problems was way out of date. Also incorporated material from JAXP 1.2 release notes
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>2002/05/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan xsltc_usage.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+updated command option usuage. Some options have been added.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan xsltc_usage.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updated first three sections.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/05/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bugzilla 7118 REVERT -- This fix was provoking bug 9195, which
+is more severe.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Obvious mistake, apparently in a corner our regression tests missed.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Root node is not always 0 in an RTFDTM
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/05/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLMessages.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/xslt Process.java xml-xalan/java/src/org/apache/xpath/functions FuncPosition.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed hard coded string for timing diagnostics.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/31<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/serialize SerializerToXML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Prevent an external DTD from being inlined when using the built-in
+identity transform.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorFuncResult.java ProcessorFunction.java ProcessorOutputElem.java ProcessorResultDocument.java XSLTSchema.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLT 2.0: stylesheet function, result-document, and
+principal-result-document.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/06/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xercesImpl.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Xalan3 branch: Check in temporary version of Xerces. This predates
+the most recent changes to Xerces, and supports the older "light
+weight" PSVI APIs. Current Xerces has replaced those with a heavier
+version, but in the process lost the derivedFrom() method which
+we need; when they restore that functionality, we'll cut over.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Core EXSLT dates-and-times functions.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/06/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemVariable.java XUnresolvedVariable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix bug 7118.  In XUnresolvedVariable, treat the RTF variable much more like
+a template that has to count it's variables at compose-time, and link and unlink
+when the lazy variable is resolved.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/06/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql DefaultConnectionPool.java xml-xalan/java/src/org/apache/xalan/processor TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/res XSLMessages.java XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/templates RedundentExprEliminator.java xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java xml-xalan/java/src/org/apache/xml/utils ListingErrorHandler.java xml-xalan/java/src/org/apache/xml/utils/synthetic JavaUtils.java xml-xalan/java/src/org/apache/xpath VariableStack.java xml-xalan/java/src/org/apache/xpath/functions FuncConcat.java Function.java Function2Args.java Function3Args.java FunctionOneArg.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Integrated some removal of hard-coded error messages.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/06/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add resets for m_contextNodeLists, etc.  It might be possible that these are
+redundent with the same thing being done somewhere else, but given
+http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6021 I suspect
+that this really does need to be done here.  It would explain any problems
+that might have been reported after an exception has been thrown, and
+the Transformer is being reused.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/06/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java ElemTemplate.java xml-xalan/java/src/org/apache/xalan/transformer StackGuard.java TransformerImpl.java xml-xalan/java/src/org/apache/xml/utils URI.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add back a certain amount of StackGuard functionality.  Instead of checking
+counts where both the node and the xsl:template are the same... (we would
+really need also to check that parameters are the same), just check for recursion
+of templates.  We can make it fancier over time to also check for same params,
+but checking of the current node may be harder.  I was only able to set the
+recursion limit to about 475 before I would get stack overflow errors anyway.
+I also did some stuff where the error messages should be more consistent by
+making sure some of the arrays are reset in XPathContex, which may address
+some of the inconsistency problems that Christina reported.
+may address part of the problem that Christina was having.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/06/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/transformer StackGuard.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Moved hard coded strings for StackGuard error message to properties file.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix bug for optionV.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExpressionContext.java ExpressionVisitor.java ExtensionHandlerExsltFunction.java ExtensionNamespacesManager.java ExtensionNamespaceSupport.java ExtensionsTable.java xml-xalan/java/src/org/apache/xalan/processor ProcessorExsltFuncResult.java ProcessorExsltFunction.java StylesheetHandler.java XSLTSchema.java xml-xalan/java/src/org/apache/xalan/templates Constants.java ElemExsltFuncResult.java ElemExsltFunction.java ElemExtensionCall.java ElemExtensionDecl.java StylesheetRoot.java xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java xml-xalan/java/src/org/apache/xpath ExtensionsProvider.java XPathContext.java xml-xalan/java/src/org/apache/xpath/functions FuncExtElementAvailable.java FuncExtFunction.java FuncExtFunctionAvailable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updates to Xalan extensions: (1) EXLST function and (2) architectural modifications.
+This is a merge of the ExtensionEnhancements branch into Main.
+
+1. EXSLT function
+We are well underway in our progress towards providing support for EXSLT extension functionss and elements. The EXSLT function and result elements (see http://www.exslt.org/func/func.html) require some fairly substantial additions.
+XSLTSchema includes new XSLTElementDefs for a top-level exslt:function element, which, along with other items, may contain an exslt:result element. These definitions specify a new element class and processor for both of these elements, and a new extension handler. I have tested the implementation with the 6 test cases that EXSLT provides (including recursive calls), and it passes these tests.
+Note: These additions/updates also provide the infrastructure for the XSLT 2.0 stylesheet function.
+2. Architectural changes
+During styesheet composition, Stylesheet Root assembles a vector of ExtensionNamespaceSupport objects. This object contains the information required during a transform to instantiate the required ExtensionHandler. If the stylesheet includes no extensions, this vector is null.  I.e.,  it does not include handlers for the default extension namespaces (of which there are currently 7, and which the Xalan currently loads for each transformation).
+The presence of an extension is detected as follows:
+Compilation of an expression that contains a FuncExtFunction. StylesheetHandler.createXPath()  uses an XPathVisitor to locate any FuncExtFunctions embedded in the expression.
+Final composition of a component element  -- ElemExtensionDecl.compose().
+Final composition of an extension component for which no component exsits -- ElemExtensionCall.compose().
+Final composition of an exslt:function element -- ElemFunction.compose().
+During StylesheetRoot.recompose(), any extension namespaces that are not predefined and for which no component or function element exists, are defined as java class (if a java class is found) or java package. In the current implementation, this last stab is made during the transformation, repeatedly if the element or function cannot be processed and is called more than once.
+At the beginning of each transformation -- transformNode() --  if any extensions exist, TransformerImpl instantiates an ExtensionsTable with a hashtable containing an ExtensionHandler for each of the ExtensionNamespaceSupport objects defined during stylesheet assembly. XPathContext  no longer creates or has any direct knowledge of the ExtensionsTable. The ExtensionsTable does not contain handlers for predefined namespaces that are not being used.
+TransformerImpl implements the org.apache.xpath.ExtensionsProvider interface. The relevant XPath functions (FuncExtFunction, FuncExtElememntAvailable, and FuncExtFunctionAvailable) call this interface, via XPathContext.getOwnerObject(). The implementation contains 3 methods that call through to the ExtensionsTable, which passes the call on to the appropriate ExtensionHandler..
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use ContextClassLoader - Use full Encoding file package name - Merge new patch from Sergey Ushakov
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates FuncDocument.java FuncFormatNumb.java xml-xalan/java/src/org/apache/xpath/functions FuncConcat.java FuncExtFunction.java FuncSubstring.java Function.java Function2Args.java Function3Args.java FunctionDef1Arg.java FunctionMultiArgs.java FunctionOneArg.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch submitted by Henry_Zongaro@us.ibm.com:
+
+To summarize what I did, the Function class and its subclasses have two
+methods that check the number of arguments:  setArg and
+checkNumberArgs.  The former checks whether too many arguments are
+specified, and the latter checks for too few (or too many, redundantly).
+
+In the case where there are optional arguments (as in substring), the class
+for the function (FuncSubstring, in this case) derives from a class that has a
+fixed number of arguments (Func3Arguments, in this case).  If too few
+arguments are specified, the FuncSubstring.checkNumberArgs method
+reports that the function only allows 2 or 3 arguments; if too many arguments
+are specified, the Function3Arguments.setArg method reports that the
+function only allows 3 arguments.
+
+To fix the problem, I added reportWrongNumberArgs() methods to the
+Function class and to its subclasses, as appropriate, and I added code to
+call that from checkNumberArgs and setArg - that way, the correct number
+of arguments is always reported in the error messages.
+
+Alternatively, I could have changed the setArg method in all the classes that
+have optional arguments to report correctly the number of arguments, but I
+didn't like the idea of having it redundantly perform the same check that the
+setArg method of its base class was going to perform just to get a better
+message out.  A third possibility would be to have setArg call the
+checkNumberArgs method when it detects too many arguments are
+specified; that would guarantee that setArg would report the same message,
+and avoid introducing a new method, as long as checkNumberArgs always
+checks for both too few and for too many arguments.  A fourth possibility
+would be to report two different errors:  the minimum number of arguments
+required in checkNumberArgs and the maximum permitted in setArg.
+
+I also noticed that the message produced for FuncSubstring when too few
+arguments are specified actually indicates that 0 or 1 arguments are required,
+ so I fixed the XPATHErrorResources.properties file.
+
+I don't see the NPE that Dave Marston mentions in Bugzilla, so I assume
+that's been fixed.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java ElemTemplateElement.java xml-xalan/java/src/org/apache/xml/utils PrefixResolver.java PrefixResolverDefault.java xml-xalan/java/src/org/apache/xpath/compiler Lexer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch submitted by Ilene_Seelemann@us.ibm.com for Bug 6798:
+
+Added a method (handlesNullPrefixes) to the PrefixResolver interface so
+that the resolver can indicate whether it supports null prefixes.  Then, in the
+tokenizer, if the prefix is null, and the resolver supports that, it continues
+processing as if the prefix had a value.  In Lexer.java, methods that have
+changed are: tokenize, mapNSTokens.
+
+In ElemNumber#getCountMatchPattern, pass MyPrefixResolver instance to default
+psuedo match patterns.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan history.xml readme.xml xsltc_constraints.xml xsltc_history.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Moved 2.3.2 core and xsltc updates into the history files.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>2002/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xercesImpl.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+xercesImpl.jar from Xerces-J-bin.2.0.1.zip (for upcoming Xalan-J 2.4.D1)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>2002/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src MANIFEST.MF<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update xerces.jar to be xercesImpl.jar; this should have been
+done quite a while ago.  Note the Class-Path: entry needs review
+in general at some point.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>2002/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan builds.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Brief documentation about developer standards and official build processes
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>2002/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources xalan-jlocal.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add builds.xml; perhaps should also be added to xalan-jsite.xml as well
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>2002/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java xml-xalan/java/src/org/apache/xpath/compiler Lexer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+From Ilene Seelemann:
+Added the following in blue to line 395 of Lexer.java
+
+     if ((-1 != posOfNSSep) ||
+         ((m_namespaceContext != null) &amp;&amp; (m_namespaceContext.handlesNullPrefixes())))
+
+I'm also including ElemNumber.java which really doesn't need to
+explicitly state that it implements PrefixResolver.
+Without these updates everything does run fine.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan readme.xml xsltc_constraints.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+updates for developer's release.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources entities.ent xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan history.xml index.xml readme.xml resources.xml xml-xalan/java KEYS<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patches for developer's release from Sarah McNamara.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updated version # for developer's release.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>2002/06/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update .jar file sizes for 2.4.D1 release
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>2002/06/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan resources.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Remove extraneous slash char on path
+Submitted by: mcnamara@ca.ibm.com
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>2002/06/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix Bugzilla #9137; don't toLowerCase() the filename (not really needed anymore);
+remove line for xalan.jar for 2_4_D1 because .jar build size is not determinate
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan extensionslib.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add pointers to info on new EXSLT extensions.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionNamespacesManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changed Vector.get(int) to Vector.elementAt(int) to maintain
+compability with Java 1.1.8.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltDatetime.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Modified leap-year functions to use arithmetic logic rather than relying
+on a Calendar method that doesn't exist in Java 1.1.8.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes RTFIterator.java xml-xalan/java/src/org/apache/xpath/objects XRTreeFrag.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added RTFIterator (extends OneStepIteratorForward);
+created fromRTFFragment so EXSLT object-type function
+can identify an RTF with certainty.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>2002/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltCommon.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Removed duplicate implementation of several EXSLT "Set"
+functions.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>2002/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin jtidy.LICENSE.txt jtidy.README.txt Tidy.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+adding Jtidy for use with test harness to parse html
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>2002/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils Hashtree2Node.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Simplistic static utility to convert a Hashtable of items (either
+Hashtables or anything else cast to (String)) into an Element tree
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>2002/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib Extensions.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update checkEnvironment to attempt to call org.apache.env.Which first
+by using reflection; Which provides better output data than
+EnvironmentCheck.  If reflection doesn't work, then we
+fallback to EnvironmentCheck as before.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>2002/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan faq.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add doc about calling checkEnvironment as a stylesheet extension
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/serialize SerializerToXML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug fix for bugzilla 9572, fix by Pavani.Mukthipudi@sun.com
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>2002/06/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update docs.class.path to include XSLTC-dependent jars
+Submitted by:	Henri Gomez hgomez@slib.fr
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/06/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add error resources pulled out from code
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/06/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add error resources pulled out from code
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/06/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/compiler Compiler.java OpMap.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Pull out hard coded messages
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/06/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bugzilla 5016: Patch from Henry Zongaro... Fix XPATHParser.java to prevent matching empty RelativeLocationPath and Step expressions, prevent a LocationPath from preceding a Predicate in a FilterExpr, check for valid NameTest in NodeTest()
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/06/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix typo.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>2002/06/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fix typo in SmartTransormerFactoryImpl pointed out by Tobias McNulty
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/07/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bug6268. Patch from Ilene Seelemann. Fix Grouping separator. If no grouping separator is specified but a gouping size is, number is not formatted. If grouping separator is "", warning is issued and number is not formatted. If grouping separator is more than one character, warning is issued and number is not formatted.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/07/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor StylesheetHandler.java XSLTAttributeDef.java xml-xalan/java/src/org/apache/xml/utils DefaultErrorHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+resource error messages
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/07/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java XSLTElementProcessor.java XSLTSchema.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/templates AVT.java Constants.java ElemAttribute.java ElemElement.java ElemNumber.java ElemPI.java xml-xalan/java/src/org/apache/xml/utils QName.java StringToIntTable.java xml-xalan/java/src/org/apache/xpath/res XPATHErrorResources.java XPATHErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bugzilla 5013: Validation of QName attribute values. The patch will also fix the missing validation described in bugs 792 and 793
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/07/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils XMLChar.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bugzilla 5013: Validation of QName attribute values. The patch will also fix the missing validation described in bugs 792 and 793
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>2002/07/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bugzilla 9575: Fix AncestorIterator counting root node twice. Patch from Henry Zongaro.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/07/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils DOMBuilder.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+&lt;Blush&gt;
+
+This was still trying to switch between setAttribute() and
+setAttributeNS(). Correct usage of DOM Level 2 would be to
+always use setAttributeNS(), and simply set a null URI when the
+node is not namespaced. (Basically, the L1 versions of
+createElement, createAttribute, setAttribute and setAttributeNode
+should be considered deprecated with the sole exception of
+manipulating a DOM intended to be viewed *only* as Level 1.)
+
+I could swear we fixed this a VERY long time ago...
+Good catch, thanks for calling it to our attention.
+
+&lt;/Blush&gt;
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/07/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Morris Kwan's patch for bugzilla#10306
+
+The problem is that the namespace declaration is not added to the attributes if there are other leading attributes. There is a check for whether the namespace
+ has already been added. That check is commented out because multiple namespace declarations can exist in one element.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/07/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates RedundentExprEliminator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applied patch from Morris Kwan for bugzilla #9753.
+
+The bug addresses the problem that there is a build error with Xalan under JDK 1.4, because one of the classes uses assert() as method name.
+ And assert is a keyword in JDK 1.4. The patch just changes the word "assert" to "assertion".
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/07/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLTSchema.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java XSLTErrorResources.properties xml-xalan/java/src/org/apache/xalan/templates ElemPI.java xml-xalan/java/src/org/apache/xml/utils QName.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Remaining updates for Bugzilla#5013.  
+
+Some attributes that should have been handled as errors were getting
+handled as warnings.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/07/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemApplyTemplates.java ElemForEach.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Check that recursionLimit is not negative before calling checkForInfinateLoop.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>2002/07/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fix typo, java for Java in doc on xsltc and external java functions
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/07/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/serialize Encodings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for bug#10839.
+
+Try/catch block needed around System.getProperty call.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/07/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLTAttributeDef.java XSLTSchema.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying Paul Brown's patch for bug#6972.
+
+xsl:output cdata-section-elements attribute was not handled correctly.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/07/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes SingletonIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+file SingletonIterator.java was initially added on branch XSLTC_DTM.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/07/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib ExsltCommon.java ExsltMath.java ExsltSets.java Extensions.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committed patch for bugzilla#10323 (incorrect Javadoc 
+in the extension code.)
+Submitted by Morris Kwan (mkwan@ca.ibm.com)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/07/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committed patch for bugzilla#10914
+( Need better error message for redirect select errors)
+Submitted by Morris Kwan (mkwan@ca.ibm.com)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/07/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils TreeWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #9146
+
+NullPointerException when attempting to build a stylesheet from 
+a DOM Element instead of a Document node.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/07/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/utils SystemIDResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patches for Morris Kwan for bug 10519.  Changed condition in absoluteURI method to handle the case where the URI is the root of a file system - e.g., / or c:\
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/07/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor ProcessorInclude.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patches for Morris Kwan for bug 10519.  In parse method, if SystemId of the returned DOMSource object is null, systemID is resolved using href.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>2002/08/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan xsltc_constraints.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+changed verbage to agree with new support of constructors and nonstatic external java functions
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/08/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/objects XRTreeFrag.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for Bug 9683 for Morris Kwan.  If XRTreeFrag is constructed
+without respect to an XPathContext, the object() method should defer to the
+parent class's object() method to convert the fragment to the appropriate
+representation.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/08/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates ElemValueOf.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #6071.  Specifically, this patch allows line numbers to 
+be reported when errors are discovered at runtime in a value-of attribute.
+(See idkeyerr10.)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/08/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src MANIFEST.MF<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bug#6547. Remove reference to old jar files.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/08/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/templates FuncKey.java xml-xalan/java/src/org/apache/xalan/transformer KeyTable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bug: "The key() function throws an exception when called in the context of a 
+local variable." reported on xalan-dev.
+
+Modified FuncKey.execute to use getDocumentRoot instead of getDocument.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/08/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/axes BasicTestIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bug#11123. Fix infinite loop in union expression.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/08/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/extensions ExtensionHandlerJavaClass.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For bug#7776. Fix argument passing problem for Java extension.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/08/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/trace PrintTraceListener.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+See bug#10945. Test if a node is a DTMNodeProxy before casting.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/08/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xml/dtm/ref DTMDefaultBaseTraversers.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla#11834.  Replaced calls to DTM.getDocument with get 
+DTM.getDocumentRoot.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>2002/08/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer ClonerToResultTree.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+James Riordan's bug -- Attributes on elements returned from
+extensions were not being processed successfully. Turns out
+our copying logic had a minor sequencing error.
+
+I don't see anything similar listed in Bugzilla.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/bin xml-apis.jar<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Replacing xml-apis.jar with the version from the RIVERCOURT1 branch 
+of xml-commons.   The xml-commons-1.0.b2 version does not pass
+the TCK 1.1 or the TCK 1.2.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan builds.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Small updates to the build documentation.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updating version numbers to 2.4.0 for new release.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java build.xml xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.java xml-xalan/java/xdocs/sources entities.ent xalan-jsite.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updating version numbers to 2.4.0 for new release.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java commits.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New commits.xml for upcoming Xalan 2.4.0 release.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2002/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan history.xml xsltc_history.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New history.xml, xsltc_history.xml for upcoming Xalan 2.4.0 release.
+<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.3.1</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Make synchronized to address potential reentrancy issue in
+ XRTreeFrag.finalize(), as discussed in the Javadoc. This may
+ solve several outstanding bug reports regarding reuse of
+ Transformers and cache suppression in for-each.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Well, _that_ was dumb... Forgot one "don't dereference if null" test.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/27/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XRTreeFrag.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Just comment<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/27/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToXML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>We weren't handling the case where no default-value handling was specified.
+ This didn't generally bother us because XSLT never produces an element
+ declaration as output... but it did affect TransformerIdentityImpl when the
+ source document had an internal subset.
+
+ See xalan-j-users archives, under subject
+ "Differences between explicit and implicit parsing for docs with DTDs?"<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>03/04/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor StylesheetHandler.java
+ java/src/org/apache/xalan/templates ElemVariable.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java
+ java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
+ java/src/org/apache/xpath VariableStack.java
+ XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Variable64-66 and a number of variable-related Bugzilla reports: Global
+ variables may have their resolution deferred. This was causing their
+ content to be placed on the normal variable stack, where it could be
+ popped off (arggh) and later overwritten (double arggh). This change
+ gives them an independent storage space which is not subject to
+ those risks.
+
+ While I was at it, I've also made the VariableStack class a trifle more
+ self-documenting by giving some of the fields more meaningful names.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>03/04/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils IntStack.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 6854: Return the stack exception, as documented.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>03/12/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 6156 reopened: Same symptom, different disease -- rather than
+ a late finalizer, we simply forgot to reset one field between invocations.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>03/19/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref TestDTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Replace old version, which was specific to particular implentations of
+ DTM, with one which is specific only to DTMManagerDefault and which
+ can be generalized more easily to conduct other tests.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>03/19/2002<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xml/dtm/ref TestDTMNodes.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>No longer in service.
+
+ This supported the old version of TestDTM. New version has
+ a node-dumper as an internal subroutine. (If we're going to do
+ a display method for other debugging purposes, it should be
+ both applicable to all DTMs and -- probably -- built into the
+ DTM system.)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>03/20/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref TestDTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add Apache header, remove import of discarded TestDTMNode.
+ At some point, we should consider moving this class to the tests
+ directory.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/21/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToXML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Properly catch exception from CharInfo constructor, and try again.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/21/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Put extra check for getAbsoluteURI(String urlString, String base) for absolute
+ file paths with no protocol... I think one of the last check-in's wiped this 
+out.
+ So now, if the path is the form of "x:/x" or "/x" then "file:///" is added to 
+it.
+ I don't see how this can screw anything up... but I'm sure it will.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/21/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Merge from redundent expression elemination branch.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/21/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan Version.java
+ java/src/org/apache/xalan/lib/sql DTMDocument.java
+ java/src/org/apache/xalan/processor ProcessorKey.java
+ ProcessorPreserveSpace.java
+ ProcessorStripSpace.java StylesheetHandler.java
+ XSLTAttributeDef.java XSLTElementProcessor.java
+ java/src/org/apache/xalan/templates AVT.java AVTPart.java
+ AVTPartSimple.java AVTPartXPath.java
+ ElemApplyTemplates.java ElemAttribute.java
+ ElemCallTemplate.java ElemChoose.java
+ ElemCopyOf.java ElemElement.java
+ ElemExtensionCall.java ElemForEach.java ElemIf.java
+ ElemLiteralResult.java ElemNumber.java
+ ElemTemplateElement.java ElemValueOf.java
+ ElemVariable.java ElemWhen.java ElemWithParam.java
+ FuncDocument.java FuncKey.java Stylesheet.java
+ WhiteSpaceInfo.java
+ java/src/org/apache/xalan/trace TraceManager.java
+ java/src/org/apache/xalan/transformer KeyIterator.java
+ KeyManager.java KeyRefIterator.java KeyTable.java
+ NodeSorter.java ResultTreeHandler.java
+ TransformerHandlerImpl.java
+ java/src/org/apache/xml/utils NodeVector.java
+ java/src/org/apache/xpath Expression.java VariableStack.java
+ XPath.java
+ java/src/org/apache/xpath/axes AttributeIterator.java
+ AxesWalker.java ChildIterator.java
+ ChildTestIterator.java DescendantIterator.java
+ FilterExprWalker.java IteratorPool.java
+ LocPathIterator.java MatchPatternIterator.java
+ OneStepIterator.java OneStepIteratorForward.java
+ PredicatedNodeTest.java ReverseAxesWalker.java
+ SelfIteratorNoPredicate.java UnionPathIterator.java
+ WalkerFactory.java WalkingIterator.java
+ WalkingIteratorSorted.java
+ java/src/org/apache/xpath/compiler Compiler.java
+ java/src/org/apache/xpath/functions FuncBoolean.java
+ FuncCount.java FuncExtFunction.java Function.java
+ Function2Args.java Function3Args.java
+ FunctionMultiArgs.java FunctionOneArg.java
+ java/src/org/apache/xpath/objects XBoolean.java
+ XNodeSet.java XNodeSetForDOM.java XNumber.java
+ XObject.java XRTreeFrag.java
+ XRTreeFragSelectWrapper.java XString.java
+ XStringForFSB.java
+ java/src/org/apache/xpath/operations Bool.java Equals.java
+ Operation.java UnaryOperation.java Variable.java
+ java/src/org/apache/xpath/patterns FunctionPattern.java
+ NodeTest.java StepPattern.java UnionPattern.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/processor WhitespaceInfoPaths.java
+ java/src/org/apache/xalan/templates AbsPathChecker.java
+ ElemVariablePsuedo.java
+ RedundentExprEliminator.java VarNameCollector.java
+ XSLTVisitable.java XSLTVisitor.java
+ XUnresolvedVariableSimple.java
+ java/src/org/apache/xpath ExpressionNode.java
+ ExpressionOwner.java XPathVisitable.java
+ XPathVisitor.java
+ java/src/org/apache/xpath/axes BasicTestIterator.java
+ FilterExprIterator.java
+ FilterExprIteratorSimple.java
+ HasPositionalPredChecker.java NodeSequence.java
+ PathComponent.java UnionChildIterator.java
+ java/src/org/apache/xpath/operations VariableSafeAbsRef.java<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xalan/transformer KeyWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Redundent Expression Elimination branch merge.
+
+ Major architectural changes
+ 1) Rip out cacheing in all iterators, and move the caching into XNodeSet 
+(actually NodeSequence where the caching is done derives from XObject and 
+XNodeSet derives from NodeSequence).Lots of other changes went into this, 
+including rewriting of some of the xsl:key stuff.
+
+ 2) Implementation of a Visitor mechanism for the stylesheet and xpath 
+components.Each component for an XPath event is passed an ExpressionOwner, 
+which just has a getExpression and setExpression method, which allows us to 
+create a list of these, and then be able to do rewrites.This should be a 
+generally useful mechanism for all sorts of stuff, and should be considered a 
+public API.
+
+ 3) Implementation of deepEquality methods for all XPath components, which 
+allows us to see if two components are equal.
+
+ 4) Implementation of RedundentExprEliminator, which is a derivative from the 
+new XSLTVisitor class, which runs over the stylesheet collecting xpaths within 
+the same scope, and absolute xpaths that are not context dependent.These are 
+then each reduced by walking the list and checking for deep equality (though 
+global paths are always reduced).Reduction takes place by creating variables 
+that have a special namespace and a non-legal local name.Both full and partial 
+path reduction done.
+
+ Not done yet: Add back in the xsl:key caching that I ripped out (not a big 
+deal).Could be skipped, with some risk.
+
+ Not done yet: Implement isLast function.With the new stuff, the last() 
+function will be slower, so, since most cases are just checking to see if an 
+item is the last, I want to rewrite foo[last()] patterns to 
+foo[xalan:isLast()].Could be skipped, with some risk.
+
+ Davanum performance test result: 4x increase in performance.
+
+ Datapower performance suite results: very slight decrease in overall 
+performance.:-(
+
+ Smoke test results: All clear when run with Xerces 1.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>03/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath DOMHelper.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>The Node identity test in isNodeAfter()
+ (ie., node1 == node2) does not work in some cases,
+ so I added a routine to use DTMNodeProxy equals()
+ if that test fails.
+ This was required to support the new EXSLT
+ leading() and trailing() extension functions.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>03/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/extensions ExtensionsTable.java
+ MethodResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>1. Registered the EXSLT 'common', 'sets', and 'math'
+ namespaces ExtensionsTable.
+
+ 2. To handle extension functions (e.g., some EXSLT
+ functions) that include a dash in their name, added
+ a routine in MethodResolver that maps abc_xyz to
+ abcXyz.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>03/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib package.html<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/lib ExsltCommon.java
+ ExsltMath.java ExsltSets.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Preliminary set of EXSLT extension implementations.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>03/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib ExsltCommon.java
+ ExsltMath.java ExsltSets.java Extensions.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added Apache license.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/23/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemApplyImport.java
+ ElemApplyTemplates.java ElemAttribute.java
+ ElemCallTemplate.java ElemChoose.java
+ ElemComment.java ElemCopy.java ElemCopyOf.java
+ ElemFallback.java ElemForEach.java ElemIf.java
+ ElemMessage.java ElemNumber.java ElemPI.java
+ ElemParam.java ElemTemplate.java
+ ElemTextLiteral.java ElemUse.java ElemValueOf.java
+ ElemVariable.java
+ java/src/org/apache/xalan/trace TraceListenerEx.java
+ TraceManager.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/trace TraceListenerEx2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Implemented TraceListenerEx2, which extends TraceListenerEx to add
+ the traceEnd event.
+
+ Modified all existing templates that call fireTraceEvent to also call
+ fireTraceEndEvent at the appropriate time.
+
+ Note that there was a bad incompatibility between xsl:for-each and
+ xsl:if, which was called whether the test was successful or not.
+ With the current logic of xsl:for-each,
+ if the node-set is empty trace will not be called at all.
+ So I've changed xsl:if to match the xsl:for-each behavior.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/24/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Set the DEVELOPMENT number to 1, in prep for a developer's release.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/24/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemForEach.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Make sure the current element is nulled out if debug mode so that
+ TransformerImpl#getElementCallstack works correctly.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/24/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added fire trace events, which seemed to be missing.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/24/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added getElementCallstack() and getTemplateCallstack() methods, for support
+ of xsl debuggers.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/24/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed the release number to 4, since new functionality has been added.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/27/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemApplyTemplates.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix Frank Weiss bug, which has to do with the currentFrameBottom not being
+ restored properly when inside a with-param.
+
+ Fix Cristina bug where the traceEnd event was being passed the wrong template.
+
+ Fix problem with RTF pruning where push/popRTFContext wasn't being called
+ for xsl:apply-templates.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/27/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/trace TraceListenerEx2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix JavaDoc comment.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/27/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/trace PrintTraceListener.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Handle TraceListenerEx2, even though we don't do anything with the extra 
+methods.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/27/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix problem with the SAXSourceLocator not getting the line number info.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/27/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils SAXSourceLocator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add a constructor that takes a SourceLocator.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/28/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemTemplateElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added getOwnerXSLTemplate method, a convenience function.
+ Implemented getLocalName().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/28/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor StylesheetHandler.java
+ ProcessorTemplateElem.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Addressing http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6752.
+ Make the processor more robust against multiple failures during compilation.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/28/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XNull.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Change derivation to XNodeSet.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/29/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath XPathProcessorException.java
+ XPathException.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Pass in the parent ExpressionNode, so that more context information can be
+ set. For the moment, I've added methods that are dependent on the
+ XSLT module, to set the source stylesheet node. I'll deal with this more when
+ I deal with the proper breakup and packaging of the XPath package, in a
+ few days.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/29/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XObject.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Pass this as ExpressionNode to the XPathException object on error, which
+ helps us to establish context information for the exception object.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/29/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XRTreeFrag.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add constructor that lets us set the owning ExpressionNode.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/29/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>For getCurrentElement, add some protection for access when there is no
+ current element.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/29/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemVariable.java
+ ElemWithParam.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Pass the template to the XRTreeFrag constructor, so we can establish
+ better context.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/29/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath XPathException.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Set the "StylesheetNode" to the ElemTemplateElement instead of the
+ DOM backpointer.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>04/02/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Wrap runtime exception in TransformerException, so we'll get line number info
+ when NPE and the like.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>04/02/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XRTreeFrag.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7622.
+ 1) Transform#1 creates an XRTreeFrag. This has a reference to a DTM, that in 
+turn is registered with a DTMManager. The DTM will need to be deleted from the 
+DTMManager when the XRTreeFrag is deleted. The XRTreeFrag also contains a 
+reference to the XPathContext.
+ 2) Transform#1 completes. The XPathContext is reset... namely the a bunch of 
+structures are reset or rebuilt, including DTMManagerDefault#m_dtms. BUT, the 
+XRTreeFrags are still hanging around, waiting to unregister themselves.
+ 3) Transform#2 starts humming along. It builds a XRTreeFrag and installs 
+that RTF DTM into DTMManagerDefault#m_dtms[2].
+ 4) The finalizer thread wakes and decides to delete some of those old 
+XRTreeFrags from Transform#1.
+ 5) The XRTreeFrag#finalize() method references through the XPathContext, and 
+deletes what it thinks is it's DTM from DTMManagerDefault#m_dtms[2] (via 
+getDTMIdentity(dtm)).
+ 6) Transform#2 tries to reference DTMManagerDefault#m_dtms[2], finds it is 
+null, and chaos results.
+
+ ...so, before calling xctxt.release, etc., check to make sure the DTM is 
+actually
+ entered in the current DTMManager.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>04/04/2002<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/w3c/dom/xpath COPYRIGHT.html
+ XPathEvaluator.java XPathException.java
+ XPathExpression.java XPathNSResolver.java
+ XPathNamespace.java XPathResult.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add Document Object Model (DOM) Level 3 XPath Specification.
+ (Temp until it's added to xml-commons.)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>04/05/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>On entry, set the document base URI in the DTM. Fixes bug reported
+ by Christine.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/09/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix inconsistancy in handling returned DTM IDs. (There's room for
+ debate about whether the current value -- expressed as the
+ NodeHandle for Node 0 in that DTM -- is the best possible
+ representation, but this is what we're currently using...)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/09/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Clean-up of dumpDTM method, some code clarity changes.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/09/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Yeowch. Didn't mean to check in the XNI experiment.
+ Disabled, probably belongs on a branch. (And probably
+ needs to be rewritten fairly intensively, since the current
+ hook is something of a kluge!)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/09/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>(nitpicking)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>pauldick@apache.org<b>
+<i> on </i>
+</b>04/10/2002<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xml/dtm/ref TestDTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Moved into Test directory<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/10/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Cleaner disabling of experimental code. Sorry 'bout that.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/10/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm DTM.java
+ java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ DTMDefaultBaseIterators.java
+ DTMDefaultBaseTraversers.java
+ ExpandedNameTable.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Change extended types to be an integer and use a structure with a localname, 
+a namespace and a nodetype to represent the node extended type. We no longer 
+need to do the shifting left and right that we did for the previous extended 
+types.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/10/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/operations Variable.java
+ java/src/org/apache/xpath/patterns NodeTest.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Change extended types to be an integer and use a structure with a localname, 
+a namespace and a nodetype to represent the node extended type. We no longer 
+need to do the shifting left and right that we did for the previous extended 
+types.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/10/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemApplyTemplates.java
+ ElemForEach.java TemplateList.java
+ VarNameCollector.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Change extended types to be an integer and use a structure with a localname, 
+a namespace and a nodetype to represent the node extended type. We no longer 
+need to do the shifting left and right that we did for the previous extended 
+types.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/12/2002<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xml/dtm XSequence.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Creating a new branch, Xalan3, for experimentation with XPath2 support.
+
+ Currently the changes are limited to org.apache.xml.dtm -- enabling
+ datatype support by tying into Xerces' low-level XNI layer, which
+ includes experimental support for post-schema-validation Infoset
+ (PSVI) information. Eventually we'll be patching other portions of
+ Xalan to actually retrieve and use this data.
+
+ The code I'm now checking in is NOT in final form. Known issues:
+
+ 1) The logic in DTMManager which enables this behavior is
+ something of a kluge -- it only kicks in if you parse incrementally
+ from a StreamSource. The getDTM() method really wants to be
+ rationalized somewhat, which will make adding XNI easier.
+
+ 2) The storage for datatype information currently adds another
+ column to the DTM table. We really want to switch to associating
+ the datatype with the Expanded Type table, and using some form
+ of sparse array to record local overrides.
+
+ 3) The XNI code won't compile without Xerces2. We need to think
+ about whether we want to accept that as a dependency, or use
+ reflection to bind at run time rather than compile time.
+
+ Note that typed values are currently computed on demand, with the
+ DTM storing only the sting values. An argument could be made for
+ precomputing some or all of this information and instead generating
+ strings on demand (see the XPath2 Data Model spec for discussion
+ of that alternative). But that's a considerably larger change, and
+ would affect non-type-based users of XSLT as well since it would
+ present values in their normalized form rather than as entered; I'd
+ rather not go that route until we have a string-based alternative
+ fully functional.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/12/2002<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xml/dtm/ref/xni2dtm DTM_XSequence.java
+ XNI2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Creating a new branch, Xalan3, for experimentation with XPath2 support.
+
+ Currently the changes are limited to org.apache.xml.dtm -- enabling
+ datatype support by tying into Xerces' low-level XNI layer, which
+ includes experimental support for post-schema-validation Infoset
+ (PSVI) information. Eventually we'll be patching other portions of
+ Xalan to actually retrieve and use this data.
+
+ The code I'm now checking in is NOT in final form. Known issues:
+
+ 1) The logic in DTMManager which enables this behavior is
+ something of a kluge -- it only kicks in if you parse incrementally
+ from a StreamSource. The getDTM() method really wants to be
+ rationalized somewhat, which will make adding XNI easier.
+
+ 2) The storage for datatype information currently adds another
+ column to the DTM table. We really want to switch to associating
+ the datatype with the Expanded Type table, and using some form
+ of sparse array to record local overrides.
+
+ 3) The XNI code won't compile without Xerces2. We need to think
+ about whether we want to accept that as a dependency, or use
+ reflection to bind at run time rather than compile time.
+
+ Note that typed values are currently computed on demand, with the
+ DTM storing only the sting values. An argument could be made for
+ precomputing some or all of this information and instead generating
+ strings on demand (see the XPath2 Data Model spec for discussion
+ of that alternative). But that's a considerably larger change, and
+ would affect non-type-based users of XSLT as well since it would
+ present values in their normalized form rather than as entered; I'd
+ rather not go that route until we have a string-based alternative
+ fully functional.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/12/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm Tag: Xalan3 DTM.java
+ java/src/org/apache/xml/dtm/ref Tag: Xalan3
+ DTMDefaultBase.java DTMDocumentImpl.java
+ DTMManagerDefault.java
+ IncrementalSAXSource_Xerces.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm Tag: Xalan3
+ SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Creating a new branch, Xalan3, for experimentation with XPath2 support.
+
+ Currently the changes are limited to org.apache.xml.dtm -- enabling
+ datatype support by tying into Xerces' low-level XNI layer, which
+ includes experimental support for post-schema-validation Infoset
+ (PSVI) information. Eventually we'll be patching other portions of
+ Xalan to actually retrieve and use this data.
+
+ The code I'm now checking in is NOT in final form. Known issues:
+
+ 1) The logic in DTMManager which enables this behavior is
+ something of a kluge -- it only kicks in if you parse incrementally
+ from a StreamSource. The getDTM() method really wants to be
+ rationalized somewhat, which will make adding XNI easier.
+
+ 2) The storage for datatype information currently adds another
+ column to the DTM table. We really want to switch to associating
+ the datatype with the Expanded Type table, and using some form
+ of sparse array to record local overrides.
+
+ 3) The XNI code won't compile without Xerces2. We need to think
+ about whether we want to accept that as a dependency, or use
+ reflection to bind at run time rather than compile time.
+
+ Note that typed values are currently computed on demand, with the
+ DTM storing only the sting values. An argument could be made for
+ precomputing some or all of this information and instead generating
+ strings on demand (see the XPath2 Data Model spec for discussion
+ of that alternative). But that's a considerably larger change, and
+ would affect non-type-based users of XSLT as well since it would
+ present values in their normalized form rather than as entered; I'd
+ rather not go that route until we have a string-based alternative
+ fully functional.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/12/2002<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xml/dtm XSequence.java
+ java/src/org/apache/xml/dtm/ref/xni2dtm DTM_XSequence.java
+ XNI2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>These should only be on the Xalan3 branch, not the main branch.
+ I _hope_ I can split this successfully...<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/12/2002<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xml/dtm Tag: Xalan3 XSequence.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>These should only be on the Xalan3 branch, not the main branch.
+ I _hope_ I can split this successfully...<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/12/2002<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
+ DTM_XSequence.java XNI2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>These should only be on the Xalan3 branch, not the main branch.
+ I _hope_ I can split this successfully...<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/15/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc Tag:
+ jaxp-ri-1_2_0-fcs-branch DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>New implementation of xsl:element<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/compiler XPathParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Improve recovery if user's error handler insists on trying to
+ continue past a fatal error in the XPath syntax. Ideally, this
+ mechanism should be cleaned up and applied across the
+ entire XPath grammar. But for now, I'm addressing the one
+ specific complaint in a way that can be expanded later, and
+ doing so in a way that minimizes costs.
+
+ (In fact, one can argue that since this is a rare event, we
+ shouldn't be minimizing the cost quite so much, and should
+ be throwing new exception objects rather than reusing a
+ preconstructed one.)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/compiler XPathParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Decided I _was_ overoptimizing.
+
+ Saving memory in tne non-error case trumps saving it in the error case.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates Tag: XSLTC_DTM
+ ElemApplyTemplates.java
+ java/src/org/apache/xalan/xsltc Tag: XSLTC_DTM DOM.java
+ DOMCache.java NodeIterator.java Translet.java
+ java/src/org/apache/xalan/xsltc/cmdline Tag: XSLTC_DTM
+ Transform.java
+ java/src/org/apache/xalan/xsltc/compiler Tag: XSLTC_DTM
+ AbsolutePathPattern.java AncestorPattern.java
+ Constants.java CopyOf.java DocumentCall.java
+ ForEach.java IdKeyPattern.java Import.java Key.java
+ KeyCall.java LastCall.java Mode.java NameBase.java
+ NodeTest.java ParentLocationPath.java Parser.java
+ ProcessingInstructionPattern.java Step.java
+ StepPattern.java Stylesheet.java
+ SyntaxTreeNode.java UnionPathExpr.java XSLTC.java
+ java/src/org/apache/xalan/xsltc/compiler/util Tag: XSLTC_DTM
+ MethodGenerator.java NodeSetType.java
+ ResultTreeType.java
+ java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
+ AbsoluteIterator.java AnyNodeCounter.java Axis.java
+ BitArray.java CurrentNodeListFilter.java
+ CurrentNodeListIterator.java DOMAdapter.java
+ DOMImpl.java DTDMonitor.java DocumentCache.java
+ DupFilterIterator.java FilterIterator.java
+ FilteredStepIterator.java KeyIndex.java
+ LoadDocument.java MatchingIterator.java
+ MultiDOM.java MultipleNodeCounter.java
+ NodeCounter.java NthIterator.java
+ ReverseIterator.java SingleNodeCounter.java
+ SingletonIterator.java SortingIterator.java
+ StepIterator.java UnionIterator.java
+ java/src/org/apache/xalan/xsltc/runtime Tag: XSLTC_DTM
+ AbstractTranslet.java BasisLibrary.java
+ Constants.java DefaultRun.java SAXAdapter.java
+ java/src/org/apache/xalan/xsltc/trax Tag: XSLTC_DTM
+ TransformerHandlerImpl.java TransformerImpl.java
+ XSLTCSource.java
+ java/src/org/apache/xml/dtm Tag: XSLTC_DTM DTM.java
+ DTMAxisIterator.java DTMManager.java
+ java/src/org/apache/xml/dtm/ref Tag: XSLTC_DTM
+ DTMAxisIteratorBase.java DTMDefaultBase.java
+ DTMDefaultBaseIterators.java DTMNamedNodeMap.java
+ DTMNodeList.java DTMNodeProxy.java
+ ExpandedNameTable.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm Tag: XSLTC_DTM
+ DOM2DTM.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm Tag: XSLTC_DTM
+ SAX2DTM.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
+ SAXImpl.java XSLTCDTMManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Checking in a branch of xalan where XSLTC is using the DTM interface. This 
+branch is very unstable, please do not use yet!!!<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm Tag: XSLTC_DTM
+ DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Make getNumberOfNodes() public<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/18/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref Tag: Xalan3
+ DTMManagerDefault.java
+ IncrementalSAXSource_Xerces.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>XNI support now always used if available, with SAX as fallback.
+
+ Issues: DTMDefaultManager is still a bit more aware of Xerces2
+ than I want it to be. And the kluge of creating an Incremental Xerces
+ source and then running it non-incrementally, while producing
+ straightforward code, is a slightly ugly mixed metaphor.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/18/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref Tag: Xalan3
+ DTMManagerDefault.java
+ java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
+ XNI2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Minor polishing, disabling debugging dump.
+
+ We currently pass most of Smoketest with the new XNI code enabled.
+ Some suspicious stuff in the API tests; my attempts to disentangle
+ the XNI and SAX support may not have been 100% succesful.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/18/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
+ SAXImpl.java
+ java/src/org/apache/xml/dtm/ref Tag: XSLTC_DTM
+ DTMDefaultBaseIterators.java
+ java/src/org/apache/xpath/compiler Tag: XSLTC_DTM
+ XPathParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Misc fixes<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 4546 -- thanks to Wolfram Eisert for tracking this down and
+ proposing the patch.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/29/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref Tag: Xalan3
+ DTMManagerDefault.java
+ IncrementalSAXSource_Xerces.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Easy enable/disable of XNI support for testing purposes,
+ and some error-reporting cleanup. We still fail a few API tests
+ in XNI mode, mostly related to error handling.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/29/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm Tag: Xalan3 DTM.java
+ java/src/org/apache/xml/dtm/ref Tag: Xalan3
+ DTMDefaultBase.java DTMDefaultBaseIterators.java
+ DTMDefaultBaseTraversers.java
+ ExpandedNameTable.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm Tag: Xalan3
+ DOM2DTM.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm Tag: Xalan3
+ SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Merge ExtendedType changes from main branch<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>05/02/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref Tag: Xalan3
+ ExpandedNameTable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Oops. Typo.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>05/02/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref Tag: Xalan3
+ ExpandedNameTable.java
+ IncrementalSAXSource_Xerces.java
+ java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
+ XNI2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Make sure current version checked in before I start experimenting with 
+alternatives.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>05/02/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
+ XNI2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>It helps if we actually remember to store the schema info...<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>05/03/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref Tag: Xalan3
+ ExpandedNameTable.java
+ java/src/org/apache/xml/dtm/ref/xni2dtm Tag: Xalan3
+ XNI2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Xalan3 PSVI changes: Lighter-weight storage for PSVI datatype. Schema
+ type first seen is now stored as part of the ExpandedName. In many cases
+ all instances of the same node have the same type and this should suffice.
+ In some cases tthe actual type may be locally overridden (schema
+ derived types), and XNI2DTM will record an exception into a simple
+ "sparse vector".
+
+ Storage improved. DTM construction speed improved. Schema type
+ retrieval speed adversely impacted but -- one hopes -- not significantly.
+
+ Of course right now Xerces' schema-validator burns so many cycles
+ that our own efficiency or lack thereof is completely moot... but we
+ assume they'll be improving that over time.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>costin@apache.org<b>
+<i> on </i>
+</b>05/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/compiler XPathParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Remove the duplicated ;;
+
+ ( which broke the JDK1.4 compilation which in turn broke all the gump
+ deps ).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>05/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes PredicatedNodeTest.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 7159 -- Just an access-permission change, for improved
+ toolability.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>05/09/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToText.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 8358 -- bad method signature. I've created a new method
+ with the correct signature. The old one may or may not be entirely
+ superfluous, but I don't want to muck with it right now.<br />
+<br />
+</li>
+</ul>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.3 and 2.3.1</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>01/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed second connection problem<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>01/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Update for new DTM Model<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>01/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql DTMDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Update for new DTM Model<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>01/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java
+ DTMDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed Debug<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>01/18/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Whups. There's a possible reentrancy problem when data
+ is being serialized from an FSB, thru Sax, back into a new
+ chunk of the same FSB; if the append causes a rechunking,
+ the serialize loop may break.
+
+ TEMPORARY PATCH; permanant fix to follow. See comments.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>01/18/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils SuballocatedIntVector.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>&lt;blush&gt;Wrong side of the fencepost...&lt;/blush&gt;<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>01/23/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemTemplate.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java
+ java/src/org/apache/xml/dtm DTMManager.java
+ java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ DTMManagerDefault.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java
+ java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>These changes allow us to store multiple Result Tree Fragment (RTF)
+ document trees (used when an XSLT variable contains a constructed
+ set of nodes) into a single DTM object rather than using a new DTM
+ for each RTF. They also permit "tail-pruning" this shared DTM to
+ reuse that space as the variables go out of scope.
+
+ The result is a slight performance improvement, and a much more
+ significant improvement in storage efficiency. Stylesheets which
+ use RTFs heavily should now run in much less memory; in
+ one testcase, our "working set" heap size (storage actually in
+ use, not counting objects released but not yet GC'd) dropped
+ from 12-15MB down to 3-6MB, and heap churn (how quickly
+ storage was being allocated and discarded) also reduced
+ substantially.
+
+ The code changes needed to support this new scheme are
+ surprisingly small. And I believe it may be possible to reduce them
+ further, if we're willing to merge the SAX2RTFDTM subclass back
+ into its SAX2DTM superclass. I believe that could be done with
+ very little adverse impact on other uses of SAX2DTM... but I felt it
+ was safer to defer that decision for now.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>01/25/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 5982 and 6022. The variable stack was not being cleared accross 
+transforms so that when the transformer is reused, we were using nodesets from 
+the previous transform which were using a different DTM. Note that we want keep 
+any variables that have been set externally by the user (using 
+Transformer.setParameter()).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>01/28/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/res XPATHErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 4762: Fixed the duplicate error message in XPATH.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>01/28/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4054: Retain previously set output properties when adding new ones.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>01/28/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 5872. We were using a constructor of TranformerException without the 
+locator information. Changed to code to use a locator if info is available.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>01/30/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib NodeInfo.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed "system id" to "public identifier" in javadoc
+ comments for publicId() methods.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>01/30/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 2617, part 1: Construct the data structures and access them 
+correctly.
+ Ignore too-late-to-be-safe requests to enable this feature.
+
+ This doesn't resolve how to rewrite higher-level code so it makes the
+ request early enough to be useful.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>01/30/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates StylesheetComposed.java
+ StylesheetRoot.java TemplateList.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 4987: Changed Apply-imports logic to only apply imports to stylesheets 
+that are direct imports. The logic for includes has not changed, we will 
+apply-imports to any stylesheet that is imported as a result of an inclusion. 
+Note: had to change the order when includes and imports are recomposed!<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>01/31/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib NodeInfo.java
+ java/src/org/apache/xalan/processor
+ TransformerFactoryImpl.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java
+ java/src/org/apache/xalan/xslt Process.java
+ java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java
+ SAX2RTFDTM.java
+ java/src/org/apache/xml/utils DefaultErrorHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 2617: Recreated missing code, changed controls to ensure
+ that this mode gets set early enough to be useful and can't be broken
+ by being turned on and off during execution.
+
+ NOTE: Current implementation relies on a global static flag in
+ TransformerFactoryImpl. We need to rearchitect our APIs slightly
+ so configuration hints of this kind can be passed down from top-level
+ objects to the back-end code more elegantly. Revisit in future
+ releases.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>01/31/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemApplyTemplates.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 5505: Need to resolve params before we do anything else, so move code 
+that does that above the code that sets up the different node stacks.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/01/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 6182. Darned fence posts; always either too many or not enough... 
+&lt;grin/&gt;<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/01/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java
+ java/src/org/apache/xpath VariableStack.java
+ XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 6156: Change variable stack reset to just get a new object. Also make 
+sure that the stack of result tree fragments is also cleaned ot during a reset.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/04/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XBoolean.java
+ XNodeSet.java XNumber.java XObject.java
+ XRTreeFrag.java XString.java
+ java/src/org/apache/xpath/operations Equals.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 5851: Make sure that the equal operation is evaluated by order of 
+precedence of the operands, as defined by XSLT.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/04/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 5346: Prevent mantissa overflow when converting string to double.
+ There is still a possible edge-case, since I detect overflow on decimal digit
+ bounds rather than on bit bounds; I'm not sure what the IEEE spec calls for.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/04/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 5346: My first-cut messed up fractional values. This one is
+ somewhat better.
+
+ There's an open issue w/r/t numbers with many digits after the
+ decimal point, regarding limits on how large a power of 10 can
+ be contained in a long. In that one case I'm falling back on successive
+ divisions (though as few as possible), and some loss of precision
+ may result.
+
+ Need to find a better algorithm...<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/04/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 5346: Oops. Forgot to take out a debugging printout.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/05/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 5346: Responding to the re-open; more direct and reliable
+ edge-case test. This does lose a few low bits on many-digit values,
+ so it is not the best long-term solution.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/05/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 5346: One more (last, I hope) edge case.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/05/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 5346: Gaaah. This regressions was just plain foolish flailing. "Less 
+haste, more speed."<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/05/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize CharInfo.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 5857: Reusing objects that reuse objects has threading concerns.
+ Three possible solutions: Don't reuse, synchronize reuse, or rewrite
+ to avoid using the objects in the first place. See comments in code.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
+ IncrementalSAXSource.java
+ IncrementalSAXSource_Filter.java
+ IncrementalSAXSource_Xerces.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 4244: Incremental wasn't setting up correctly for the
+ DTDHandler stream. It never occurred to me that XSLT would
+ ever have a use for unparsed entities...<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>02/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan Version.java
+ java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Whoops! Never updated release number to 2.3 in these version files!<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>02/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>updated version number to 2.3<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/07/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath SourceTreeManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 6304: Remove print stacktrace<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/08/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/extensions
+ XSLProcessorContext.java
+ java/src/org/apache/xalan/lib/sql DTMDocument.java
+ java/src/org/apache/xalan/templates ElemForEach.java
+ FuncDocument.java FuncKey.java
+ java/src/org/apache/xalan/transformer KeyIterator.java
+ TransformerHandlerImpl.java TransformerImpl.java
+ java/src/org/apache/xml/dtm DTM.java
+ java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ DTMDefaultBaseIterators.java DTMDocumentImpl.java
+ DTMNodeProxy.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java
+ java/src/org/apache/xpath/axes IteratorPool.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 6314: Additional support changes for multiple RTFs per DTM.
+ Many files affected, but the basic change is that dtm.getDocument()
+ with no arguments is meaningless when there are multiple docs in
+ a single DTM object; instead, folks should use the new getRootNode()
+ method or getOwnerDocument(), both of which take a node as input
+ and thus more clearly identify which document we're referring to.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>02/12/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 6328, whitespace normalization. Late fix, but it was a genuine 
+regresion.
+ This code could still do with a rationalization pass; I think it can be made 
+slightly
+ a touch faster.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>02/14/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Update various .jar sizes for recent builds and 2.3.0<br />
+<br />
+</li>
+</ul>
+   
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2</h3>
+<p>Following a series of Developer releases, Xalan-Java 2.2 represents a stable, production-quality release with 
+the <a href="dtm.html">DTM (Document Table Model)</a>. Xalan-Java uses the DTM to represent the XML source document 
+to be transformed. Please send your feedback to the <a href="mailto:dev@xalan.apache.org">Xalan Development Mailing List</a>.</p>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>11/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>updated version number to 2.2.D14<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>11/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>updated version number to 2.2.D14<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 5242: Special-case initializing iteration from Document node -- 
+one-liner wasn't safe.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/04/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc ProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>new class to version xsltc software<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Additional debugging printouts, added while analysing Bugzilla 5272 but 
+generally useful.
+ No functional change, and should be optimized away when DEBUG is set false.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed the "magic" default which causes us to switch into incremental
+ processing mode whenever we were writing to Standard Output (ie,
+ -OUT had not been specified). If you want incremental processing,
+ please use the (relatively new) -INCREMENTAL switch to explicitly
+ request it.
+
+ (The automatic switchover was causing some confusion
+ when testing against Xerces2. )<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Efficiency improvement to the new DTM "overflow addressing" scheme.
+ In some tests, this one alteration shaved about 30% off the runtime.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath CachedXPathAPI.java
+ XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changes requested by the xml-security group:
+
+ 1) Provide something a constructor that allows sharing the
+ XPathContext object between CachedXPathAPI objects
+
+ 2) Add getXPathContext(). I'm just a bit nervious about this
+ method, but they assure us they need it and the field isn't
+ private. We may need to discus this one further.
+
+ 3) Make the XPathContext's m_dtmManager member
+ protected rather than private, so their subclass can get to it.
+ We may want to work with them to understand why they're
+ accessing this directly and whether there's a better solution.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref
+ IncrementalSAXSource_Xerces.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla5272 patch suggested by Sandy Gao.
+
+ This startup sequence for incremental SAX parsing under Xerces2
+ really is excessively complicated and excessively fragile as a result.
+ Not to mention being underdocumented. We really need to push the
+ Xerces folks to provide a simple incremental SAX API, similar to that
+ in the Xerces1incremental prototype.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Part 1 of 2: Reducing initial space requirements of a DTM. This may
+ involve a slight performance hit, but should help stylesheets which
+ generate a lot of Result Tree Fragment. Part 2 of this change will be
+ checked in after I resolve a bug in whitespace normalization.
+
+ Note that a better long-term answer will be to reduce the number of
+ DTMs tied up as RTFs, by doing a better job of discarding or reusing
+ them when we're done with them. There are some issues regarding
+ exactly what their lifetimes will be when assigned to variables,
+ especially when one variable is used to build another, which we
+ need to address before we can make that change.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Part 2a of 2: Reducing initial space requirements of a DTM. This may
+ involve a slight performance hit in some circumstances due to
+ smaller and more complex subdivision of FastStringBuffers,, but
+ should help stylesheets which generate a lot of Result Tree
+ Fragments.
+
+ Note that a better long-term answer will be to reduce the number of
+ DTMs tied up as RTFs<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Part 2b of 2: Reducing initial space requirements of a DTM. This may
+ involve a slight performance hit in some circumstances due to
+ smaller and more complex subdivision of FastStringBuffers,, but
+ should help stylesheets which generate a lot of Result Tree
+ Fragments.
+
+ (Leveraging FSB's features more strongly exposed a bug in
+ whitespace normalization, which I've fixed.)
+
+ Note that a better long-term answer will be to reduce the number of
+ DTMs tied up as RTFs<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils AttList.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Two goofs: Forgetting to use the namespace-aware DOM call, and
+ forgetting to check for a returned null before dereferencing.
+
+ How long has _that_ been lurking in the undergrowth?!<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils SuballocatedIntVector.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Finally following up on an old hunch, I switched from /% addressing
+ to shift-and-mask. Big improvement!<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Performance improvements; Some changes to better leverage the
+ DOM's existing code, others to avoid some call-and-return overhead.
+
+ Combined with other recent changes, we've now got a significant
+ speedup over D14 on some tests. We may want to drop the scheduled
+ December 17th 2.2 release and instead bring 2.2 out on 1/14 (which is
+ when we'd planned 2.3) with performance gains and Xerces2 support.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
+ DOM2DTMdefaultNamespaceDeclarationNode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A few more subtle performance tweaks, and an actual bug.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>12/20/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xml/utils ListingErrorHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Alternate ErrorHandler/ErrorListener implementation that allows
+ configuration and prints errors out similarly to javac<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>12/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils AttList.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 5496; previously unimplemented functions.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>01/03/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils DOMBuilder.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>[Bug 5528] DOMBuilder mixed DOM Level 1 and 2<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>01/11/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>updated release number to 2.2.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>01/11/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>updated release number to 2.2.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>01/13/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix Bugzilla#5701: incorrect resolution of certain kinds of absolute file: 
+URIs
+ Note: This definitely seems to be more correct in terms of resolving URIs
+ vis-a-vis RFC 2396 than it used to be. The only user case which might now
+ fail where it used to work is a user that supplies an incorrect
+ 'file:subdir/blah' that they intended to be a relative URI (technically
+ it is an absolute URI no matter which way you look at it); this might
+ lead to a change in behavior in this particular case, although the behavior
+ before was incorrect.
+ The major risk factor could be if there are other parts of Xalan code that 
+rely
+ on the previously incorrect behavior, but I can't find any, and the whole test
+ suite runs and passes normally.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>01/14/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix Bugzilla#4678 and Bugzilla#5533: call setSystemId on StreamResult
+ in Process command line class; ignored if using System.out
+ This should enable the redirect extension to properly put it's redirected
+ output in a location relative to the output if possible; previously it
+ always put redirected output relative to the input since it
+ never had the systemId of where the output should be<br />
+<br />
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
+</tr>
+</table>
+   
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D14</h3>
+<p>Xalan-Java 2.2.D14 is intended to be the final release in the current series of Developer releases incorporating
+     the <a href="dtm.html">DTM</a>. We believe Xalan with the DTM has reached a level of stability that warrants a                                                          
+     standard "User" release. Accordingly, we plan to release Xalan-Java 2.2 soon.</p>
+     <p>Xalan-Java 2.2.D14 also includes a new <a href="apidocs/org/apache/xpath/CachedXPathAPI.html">CachedXPathAPI</a> class that
+     provides an enhanced alternative to the XPath convenience methods in <a href="apidocs/org/apache/xpath/XPathAPI.html">XPathAPI</a>.</p>
+     <p>Beginning with 2.2.D12, xalan.jar contains just the Xalan-Java implementation. The source files for the SAX level 2, DOM 2, 
+     and JAXP 1.1 interfaces are pulled from the xml-commons repository (<a href="http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/">xml-commons/java/external/src</a>), and are built as
+     xml-apis.jar. These interfaces are shared by a number of tools, so placing them in their own jar simplifies coordination and reduces 
+     the risk of duplication. <b>To run Xalan-Java, you must add xml-apis.jar to your classpath.</b> See <a href="getstarted.html#classpath">Setting up the system class path</a>.</p>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Reorder slightly and add test to not synthesize xmlns:xsl declaration
+ if one was already present on the DOM's root element.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan Version.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>D13 internal version number update<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>D13 internal version number update<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMNodeList.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla4842, secondary complaint (glitch in getChildren)... &lt;blush/&gt;<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla4842: Expand the proxy layer to support more of the DOM API.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Namespace decls are themselves not namespace-aware, in the
+ Namespaces 1.0 REC. Use the qname.Grumble.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>"Tupograflica eror". Sorry 'bout that!<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Sigh. The XML Namespaces spec it itself imperfectly
+ namespace-aware. While there's a plan to fix that, it's
+ safer for now if we test the QName when looking for
+ explicit instances of xmlns:xml in the source document.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql DTMDocument.java
+ java/src/org/apache/xalan/templates ElemApplyTemplates.java
+ java/src/org/apache/xalan/xslt Process.java
+ java/src/org/apache/xml/dtm DTMManager.java
+ java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ DTMDefaultBaseIterators.java
+ DTMDefaultBaseTraversers.java
+ DTMManagerDefault.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Another fairly large change in the DTM architexture (sic)....
+
+ We've changed DTM's internal behavior so it can now assign
+ more than one "DTM ID" to a single document, cascading from
+ one ID to the next. This means that the size of a single DTM is
+ no longer limited by the bits available in the low part of the DTM
+ Node Handle. This means we can support larger documents.
+
+ That has allowed us to reduce the number of bits reserved
+ for that portion of the node addresing scheme... which in turn has
+ increased the number of bits available for use in the DTM ID. This
+ means we can now have many more documents active at once.
+
+ The trade-off is that huge documents will require more than one
+ DTM ID and thus cut into the number of documents, But since we
+ now have 16 bits of DTM ID space, I don't think we're really likely
+ to run into both limits at once. And the changes are essentially
+ limited to the DTM layer; the rest of Xalan should be unaffected.
+
+ In the process of making this change, I've also encapsulated the
+ conversions between DTM API node handles and DTMDefaultBase's
+ internal node indices. That should be safer all 'round.
+
+ NOTE: One side effect of this change is that the strings
+ generated by the key() function have changed again.
+ I've updated the IDKEY testcases to reflect this.
+
+ Smoketest is currently passing everything except
+ axes109 and the API's TraceListenerTest . But I believe
+ those failures are due to a glitch in my test directory
+ since they also happen when I run the D13 code there,
+ whereas D13 runs fine in the directory where I built it.
+ I'm going to assume that "same result is no new bug"
+ for now.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref
+ DTMDefaultBaseTraversers.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Found the glitch causing the axes108 bug -- exptype/type.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added option to set the recursion limit (which we're having trouble with
+ right now; the code that supported it seems to be disabled...) and
+ selfdoc for this and a few other newer options.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>11/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Catch exceptions from the output content handler in flush(), and throw a
+ SAXParseException with line numbers filled in.
+ If we don't do this, and the exception is a RuntimeException,
+ good line numbers of where the exception occured in the stylesheet
+ won't get reported. I tried just catching RuntimeException, but
+ for whatever reason it didn't seem to catch.
+ Fix for Christina's DOMException error problem.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm
+ DOM2DTMdefaultNamespaceDeclarationNode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Moved default namespace declaration node object out of its "inner
+ class" status, since I think I want to perform an instanceof test on it.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ DTMManagerDefault.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
+ java/src/org/apache/xpath XPathAPI.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xpath CachedXPathAPI.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4336 -- fix for presenting symptom (since the implicit
+ xml: declaration pseudo-DOM node is resynthesized in each
+ DTM, find the _corresponding_ node), and a first draft of
+ CachedXPathAPI which should be a fix for the larger symptom
+ (XPathAPI creates a new DTM every time, which is potentially
+ very ugly for applications that want to run XPaths repeatedly
+ on a single document).
+
+ Also caught and fixed another node-handle/node-identity confusion.
+ The fact that DTM.get...() allowed us to be sloppy about that
+ distinction in the past means there may still be a few others lurking
+ in the code. Ye gods, I _wish_ Java had typedef!<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Minor tweaks<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>11/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib Redirect.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Patch to enable optional 'append' attribute on redirect:open and
+ redirect:write elements to append to file; note that behavior may
+ not be what you expect when using xml output, since the xml decl
+ will currently be output *each* time you newly write to the file
+ Submitted by: jpvdm@iafrica.com<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Implement getDocumentElement. If the DTM doesn't represent a
+ wellformed Document, this call is undefined and throws an exception...
+ which isn't DOMlike but that's a non-DOMlike situation.<br />
+<br />
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
+</tr>
+</table>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D12 and 2.2.D13</h3>
+<p>Xalan-Java 2.2.D13 is intended to be the final release in the current series of Developer releases incorporating
+     the <a href="dtm.html">DTM</a>. We believe Xalan with the DTM has reached a level of stability that warrants a                                                          
+     standard "User" release. Accordingly, we plan to release Xalan-Java 2.2 soon.</p>
+     <p>Beginning with this release, xalan.jar contains just the Xalan-Java implementation. The source files for the SAX level 2, DOM 2, 
+     and JAXP 1.1 interfaces are pulled from the xml-commons repository (<a href="http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/">xml-commons/java/external/src</a>), and are built as
+     xml-apis.jar. These interfaces are shared by a number of tools, so placing them in their own jar simplifies coordination and reduces 
+     the risk of duplication. <b>To run Xalan-Java, you must add xml-apis.jar to your classpath.</b> See <a href="getstarted.html#classpath">Setting up the system class path</a>.</p>
+     <p>Beginning with this release, we are shipping two distribution files; a binary
+     distribution file, which includes everything needed to run Xalan-Java and build applications, and a source distribution. For
+     more information, see <a href="downloads.html">Downloading what you need</a>.</p>
+     <p>This release also includes <a href="samples.html#validatexmlinput">ValidateXMLInput</a>, a sample that illustrates 
+     how you can verify that the XML input you are transforming adheres to its document type. It is in the samples/validate subdirectory
+     along with a Validate utility that you can use to validate XML files without performing a transformation.</p>     
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath VariableStack.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla3995: Removed "final" keywords. That doesn't by itself
+ provide the requested enhancement, but it makes prototyping one
+ a bit easier.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 3384. See comments in the toDouble method; I suspect this may be 
+wasted micro-optimization.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Is " 12 34 . 56 78 " really considered acceptable?
+ Or should whitespace within the value be treated as NAN?<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>10/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated build number to 2.2.D12.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>10/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated build number to 2.2.D12.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemLiteralResult.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for Bugzilla1133, LRE21: xsl:extension-element-prefixes should be 
+considered an exclusion<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemLiteralResult.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for Bugzilla 3464. Exposes errors in conformance tests namespace93 and 94.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>10/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize CharInfo.java
+ HTMLEntities.res XMLEntities.res<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix Bugzilla#4000, force reading of *Entites.res to be in UTF-8; added 
+comments
+ PR: Bugzilla#4000<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Avoid overgenerality of isDigits
+ Combine most character tests into a single switch for performance
+ Reject values with embedded (as opposed to leading/trailing) whitespace.
+
+ Note that this is "more correct:" than the old solution of calling Java's
+ toDouble, since (I think) XSLT doesn't officially accept leading + or
+ scientific notation. If folks want to accept those notations, an
+ extension function specifically for that purpose seems the
+ simplest/safest/most-portable solution.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Gaaah. Typo.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>10/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java
+ java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan Version.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added new org.apache.xalan.Version class for better versioning info;
+ Deprecated org.apache.xalan.processor.XSLProcessorVersion;
+ Updated EnvironmentCheck with this info<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan Version.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Be careful with parentheses when using ?: operator.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
+ IncrementalSAXSource_Xerces.java<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java
+ CoroutineSAXParser_Xerces.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>CoroutineParser API was replaced by IncrementalSAXSource; dropping obsolete 
+code.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xml/dtm/ref CoroutineSAXFilterTest.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>CoroutineParser API was replaced by IncrementalSAXSource; dropping obsolete 
+code.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan Version.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Whups; sloppy: Actually, problem was that the latter two arguments to ?:
+ must agree in datatype. Dropped in a quick-and-dirty int-to-string hint.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Preliminary Xerces-2 support. Doesn't leverage Xerces-2 incremental features
+ yet, but should at least compile and run under the new parser without
+ breaking support for the old one. Still working on improving this.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemApplyTemplates.java
+ ElemCallTemplate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4218: Make sure that the stack frame gets restored to the frame that 
+was previously set. Just calling unlink() may restore to the wrong frame, and 
+get us out of synch.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/xml/sax/helpers ParserAdapter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Java 1.1.8 back-compatability requires not using Java 1.2 collection calls.
+ (Still waiting for community consensus before abandoning 1.1)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath VariableStack.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4218: Make sure that the stack frame gets restored to the frame that 
+was previously set. Just calling unlink() may restore to the wrong frame, and 
+get us out of synch.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref
+ IncrementalSAXSource_Xerces.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>In Xerces2, SAXParser no longer seems to inherit from
+ XMLReader; explicit casts needed to work around that.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>10/23/2001<br />
+<b>
+<i>Removed: </i>
+</b>java/src/javax/xml/parsers SAXParserFactory.java
+ SAXParser.java ParserConfigurationException.java
+ package.html FactoryFinder.java
+ FactoryConfigurationError.java
+ DocumentBuilderFactory.java DocumentBuilder.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Remove javax.xml.parsers package from xalan sources since we no longer ship 
+with these files<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize CharInfo.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Microsoft VJ++ workaround. Should never arise in any reasonably
+ standards-compliant Java environment, but VJ++ isn't...<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize CharInfo.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Additional "big scary" docs for Microsoft VJ++ workaround.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>10/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/compiler XPathParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added fix for bug reported by Myriam for match="//x/a" patterns. On the
+ second "/" on "//", the parser wasn't swallowing the token, which caused
+ the "x" pattern to be ancestor instead of parent. If you don't have this fix,
+ it will cause 'a' to be matched when it has any ancestor that is 'x'.
+ This fix should be localized to only match patterns. The reason this probably
+ wasn't reported before, is because "//" at the head of a match pattern is
+ pretty useless, "x/a" being equivelent.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>10/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToHTML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>By longstanding request, don't URL-escape spaces. This is consistent with the
+ specification, and the opinion of the right thing to do by several people on 
+the
+ XSL working group, including Mike Kay, and by the LotusXSLTeam.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLTElementDef.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Improved safety net: When running with Xerces2, the "uri" field may be null.
+ (Also reordered tests to encourage optimization of code.)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add command-line switches for the options introduced at same time as DTM, to 
+make testing those features easier.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>11/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor StylesheetPIHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4575: Add the EOL character to the list of token delimiters.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
+ IncrementalSAXSource_Xerces.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Leverage Xerces-2 incremental parsing feature, when possible,
+
+ Making this compile _and_ run under both the old and new versions of
+ the parser involves a lot of reflection... especially since Xerces-2
+ no longer provides a way to directly request incremental delivery
+ of SAX events; we now have to assemble that concept ourselves,
+ using XNI components.
+
+ Note that if you pass an existing Xerces-2 SAXParser into the
+ IncrementalSAXSource_Xerces wrapper, there is currently no way
+ for us to access its incremental controls. In that case, we are
+ forced to fall back on the _Filter solution and coroutines.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>11/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForFSB.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4396: Defaulting to the super hashCode(). This causes us to create 
+a string, but at this point this only seems to get called in key processing. 
+Maybe we can live with it?<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>11/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Use appropriate context class loader as done in JAXP's FactoryFinder;
+ Added various new jars; added checkAntVersion()<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>11/04/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize HTMLEntities.res<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Commented out mainly greek entities that Netscape seems not to handle.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>11/04/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize Encodings.java
+ SerializerToHTML.java SerializerToText.java
+ SerializerToXML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Progress on Bugzilla Bug 1639 : Xalan escaping characters for ISO encodings 
+other than ISO-8859-1.
+
+ The problem is that you can't tell from the Java Writers if they can encode
+ a character, and you can't tell which character they are going to encode to.
+ So...
+
+ Do a one-time-only reflection to see if a sun.io.CharToByteConverter for the
+ specific encoding is available. I'm hoping this will work for most or all
+ platforms... but only some extensive testing will tell for sure. If the
+ CharToByteConverter is not available, it falls back to the old behavior.
+ If it is available, use the canConvert method to see if the UTF-16 character
+ can be encoded. If it can be, just send it to the writer, otherwise escape 
+it.
+ This doesn't need to be done for &lt; 128, so I'm suspecting the performance
+ hit won't be too bad.
+
+ The alternative is to create lookups for all the encodings that tell which
+ blocks of characters can't be encoded. Too much work for me this
+ weekend, though it remains a possibility. I want to try the use of
+ CharToByteConverter.canConvert first.
+
+ One problem I've encountered is that CharToByteConverter.canConvert
+ returns true for (utf-16 code points) 127-159. And so they go unescaped.
+ How bad of a problem is this? This seems like a bug in the Java
+ CharToByteConverter for ISO-8859-7.
+
+ It remains to be seen if this problem exists with other encodings, or if this 
+is
+ the best approach.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>11/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToXML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Check for control characters for canConvert, and return false if it is a 
+control
+ character, so that it will be escaped.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>11/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Don't set the ErrorHandler if it is already set.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>11/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Minor fix to JavaDoc for setRecursionLimit.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/operations Operation.java
+ UnaryOperation.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4679: Accessors for left and right operands<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>11/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToHTML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Do not escape the percent '%' character anymore.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>11/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes LocPathIterator.java
+ OneStepIterator.java PredicatedNodeTest.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4638: When we are in a subcontext we need to clip off the predicate 
+when evaluating. If not, we end up with the wrong nodeset. This also relates to 
+test position68.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ ClonerToResultTree.java ResultTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4607; allow explicitly cloning namespace nodes rather than
+ throwing exception.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>11/07/2001<br />
+<b>
+<i>Removed: </i>
+</b>java/src/META-INF/services
+ javax.xml.parsers.SAXParserFactory
+ javax.xml.parsers.DocumentBuilderFactory<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Remove services/javax.xml.parsers.* references; we assume parsers have their 
+own<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>11/07/2001<br />
+<b>
+<i>Removed: </i>
+</b>java/src/javax/xml/transform ErrorListener.java
+ FactoryFinder.java OutputKeys.java Result.java
+ Source.java SourceLocator.java Templates.java
+ Transformer.java
+ TransformerConfigurationException.java
+ TransformerException.java TransformerFactory.java
+ TransformerFactoryConfigurationError.java
+ URIResolver.java overview.html package.html
+ java/src/javax/xml/transform/dom DOMLocator.java
+ DOMResult.java DOMSource.java package.html
+ java/src/javax/xml/transform/sax SAXResult.java
+ SAXSource.java SAXTransformerFactory.java
+ TemplatesHandler.java TransformerHandler.java
+ package.html
+ java/src/javax/xml/transform/stream StreamResult.java
+ StreamSource.java package.html
+ java/src/org/w3c/dom Attr.java CDATASection.java
+ CharacterData.java Comment.java DOMException.java
+ DOMImplementation.java Document.java
+ DocumentFragment.java DocumentType.java
+ Element.java Entity.java EntityReference.java
+ NamedNodeMap.java Node.java NodeList.java
+ Notation.java ProcessingInstruction.java Text.java
+ package.html
+ java/src/org/w3c/dom/ranges DocumentRange.java Range.java
+ RangeException.java package.html
+ java/src/org/w3c/dom/traversal DocumentTraversal.java
+ NodeFilter.java NodeIterator.java TreeWalker.java
+ package.html
+ java/src/org/xml/sax AttributeList.java Attributes.java
+ ContentHandler.java DTDHandler.java
+ DocumentHandler.java EntityResolver.java
+ ErrorHandler.java HandlerBase.java InputSource.java
+ Locator.java Parser.java SAXException.java
+ SAXNotRecognizedException.java
+ SAXNotSupportedException.java
+ SAXParseException.java XMLFilter.java
+ XMLReader.java package.html
+ java/src/org/xml/sax/ext DeclHandler.java
+ LexicalHandler.java package.html
+ java/src/org/xml/sax/helpers AttributeListImpl.java
+ AttributesImpl.java DefaultHandler.java
+ LocatorImpl.java NamespaceSupport.java
+ ParserAdapter.java ParserFactory.java
+ XMLFilterImpl.java XMLReaderAdapter.java
+ XMLReaderFactory.java package.html<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Use a condensed copy of xml-commons sources instead of individual sources;
+ remove xalan-specific copies of commons files<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>11/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTErrorResources.java
+ java/src/org/apache/xalan/templates ElemNumber.java
+ java/src/org/apache/xml/utils/res XResources_cy.java
+ XResources_el.java XResources_ja_JP_A.java
+ XResources_ja_JP_HA.java XResources_ja_JP_HI.java
+ XResources_ja_JP_I.java XResources_zh_CN.java
+ XResources_zh_TW.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4601: Change ElemNumber to use a long integer for the value of the 
+number. This will allow us to format bigger numbers. As far as japanese 
+multipliers, we decided to document as a xalan limitation the fact that the 
+last 2 japanese multipliers will not be supported. If anyone has a strong and 
+valid user case for this, we will reconsider. For now, we could not justify the 
+expense of moving to BigInteger to support these multipliers.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4735: We should at least report an error when we overflow DTM 
+addressing...<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>11/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor ProcessorInclude.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4355: Make sure that when finding out if a stylesheet imports 
+itself, we use the resolved href.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>11/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath NodeSetDTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4158: Make sure we get the current, not the node pointed to by 
+m_next, which has been already incremented.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4344: discard attrs which don't have an element to belong to<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 4344: more efficient.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Reorder slightly and add test to not synthesize xmlns:xsl declaration
+ if one was already present on the DOM's root element.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan Version.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>D13 internal version number update<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>11/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>D13 internal version number update<br />
+<br />
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
+</tr>
+</table>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D11</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>09/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed the code which precalculated node levels
+ (depth in tree). This has been IFed out for some time, but
+ was retained in case we wanted to go back to it. Since it
+ seems we're happy with this choice, zapping it entirely
+ saves a few more cycles.
+
+ It's simple enough to recreate if we change our minds later.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>09/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Minor cleanup and updates in preparation for extension function;
+ note SAX portion isn't complete yet<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>09/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib Extensions.java
+ java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Update EnvironmentCheck service with SAX checking; better method organization;
+ Add checkEnvironment to xalan: built-in Extensions class<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/compiler Lexer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 2140: Catch index out of bounds exception<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 2130: Check for null data to avoid NPE<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTErrorResources.java
+ java/src/org/apache/xalan/templates ElemElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 3421: Issue an error if namespace attribute is used with an empty string 
+in xsl:element<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Backing out this change. Some conformance tests need to be updated first<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 3421: Issue an error if namespace
+ attribute is used with an empty string in xsl:element<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemTemplateElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 3442: when building the prefix table for an element, just override 
+prefixes defined in parent element with uris that have been redefined by the 
+element instead of keeping both uris in the table.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>09/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix Bugzilla 3491: updated error message text; also updated Javadoc to
+ reflect @throws; note that the Javadoc is still somewhat contradictory
+ about returning a null on error (it appears to throw exceptions instead)
+ PR:3491
+ Submitted by:Julian.Birch@ranplc.co.uk<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>09/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/javax/xml/transform TransformerFactory.java
+ java/src/org/apache/xml/dtm DTMManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix Bugzilla 3423: documentation updates for proper class, property names
+ (one of two checkins)
+ PR:3423
+ Submitted by:gthb@dimon.is<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>09/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath XPath.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix Bugzilla 2637: documentation updates for constructor functionality
+ PR:2637
+ Submitted by:gthb@dimon.is<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemUse.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 2548: Combine attribute sets with the same name but process them in order 
+of precedence.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes UnionPathIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug 3533: Check for null m_iterators before trying to use it.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer KeyRefIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 3618: Check cache before anything else when getting the next node in 
+the iterator.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc TransletException.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed the TransletException class so that it inherits from SAXException
+ and not from Exception. This should make it possible for us to avoid
+ testing for both SAXExceptions and TransletExceptions. Exception handling
+ is one of the things that JVM takes its time with, and we should try to
+ avoid using them when we can, and use as few of them as possible otherwise.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 2332: Implement getAttribute() method to return the values for 
+incremental and optimize<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Enable Attr.getOwnerElement()<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor StylesheetHandler.java
+ java/src/org/apache/xalan/templates ElemLiteralResult.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 1803: Handle version attribute on a litteral element.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>release 2.2.D11<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>release 2.2.D11<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLTSchema.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Mark xsl:template as containing ordered elements. Fix for no error when 
+xsl:param not first child of xsl:template<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemLiteralResult.java
+ ElemTemplateElement.java Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 3800: Make sure that when looking for excluded prefixes, we check 
+the URI associated with the prefix, not the prefix in the excluded list.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>09/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath NodeSetDTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Do not reorder or strip duplicate nodes when converting a DOM nodelist into a 
+DTM nodelist<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref
+ IncrementalSAXSource_Filter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Catch for unwrappered StopException (apparently not all parsers generate
+ a SAXException wrapper).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>10/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ DTMDefaultBaseIterators.java
+ DTMDefaultBaseTraversers.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Creating the implied Namespace Node for xml:<br />
+<br />
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
+</tr>
+</table>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D10</h3>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The SQL Extension library has been updated to work with DTM.</td>
+</tr>
+</table>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>08/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix bugzilla bug 3056 
+(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3056). SAX2DTM now keeps 
+track if it is receiving events inside a DTD and ignores comment events when 
+inside the DTD.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Update version for 2.2.D9 build<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>08/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql ConnectionPool.java
+ DefaultConnectionPool.java SQLDocument.java
+ XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed bug in connect method where User and Password were not
+ correctly being passed to the JDBC Driver. Requires chnage in
+ ConnectionPool Interface
+ Submitted by: John Gentilin<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/15o2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Use defined constant DTMManager.IDENT_DTM_NODE_BITS for shifting DTM nodes, 
+not hard coded value.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix problem with resolving a relative URI from a processing instruction<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Make sure base is not null before checking for its contents.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates FuncDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix document function so that if only one argument is passed and it is a 
+nodetest, the base to be used to resolve relative URIs is the base of the each 
+node in the nodeset.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLTSchema.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Allow multiple iterations of xsl:with-param within an xsl:call-template or 
+xsl:apply-template<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added getCurrentNodeList() for getting the current node list as defined
+ by http://www.w3.org/TR/xslt#dt-current-node-list.
+ This looks up the stack of the SubContextLists to find the top-level
+ LocPathIterator. I'm fairly unhappy with this fix, and hope to restructure
+ the context list stuff a bit to avoid the casts in the getCurrentNodeList(),
+ and to fix getCurrentNode() so that it properly defines the current
+ node as defined by the XSLT spec. As a matter of fact, I would
+ like to break up XPathContext into an XSLTContext.
+ Part of the http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3031
+ fix.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/functions FuncCurrent.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Call new XPathContext#getCurrentNodeList. Fixes
+ http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3031.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer KeyRefIterator.java
+ java/src/org/apache/xpath/axes ChildIterator.java
+ ChildTestIterator.java DescendantIterator.java
+ MatchPatternIterator.java
+ SelfIteratorNoPredicate.java UnionPathIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for problem reported by Mike Starr &lt;mike.starr@air2web.com&gt;,
+ where the transformation hangs for "foo[2] | bang"
+ patters, i.e. unions with positional predicates. The fix
+ is to have the iterators#nextNode() set m_lastFetched to DTM.NULL
+ when m_foundLast is found to be true on function entry
+ (after the cache check). This allows getCurrentNode() to
+ fullfill it's contract of returning null if the last fetch was
+ null. The bug occured after an optimization for positional
+ predicates to have them not continue searching once
+ the positional node was found, by setting m_foundLast
+ to true.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>08/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed debug flag
+ Submitted by:John Gentilin<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>08/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java
+ XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed Streaming Mode
+ Submitted by: John Gentilin<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>08/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm DTM.java
+ java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ DTMDocumentImpl.java DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added document registration and release events to the DTM interface
+ Submitted by: John Gentilin<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>08/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib Extensions.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix bug 3112 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3112). Fix 
+tokenize to work with DTM by obtaining a new DocumentBuilder and not using the 
+document from the context node.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>08/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath VariableStack.java
+ java/src/org/apache/xpath/operations Variable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix bug 3265 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3265). Using 
+an expression in the evaluate extension function that contains a top-level 
+variable was cause an NPE.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XStringForChars.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed two bugs, one in getChars and one in charAt where the m_start
+ offset wasn't being used correctly. This manifested itself in some
+ stuff I was doing with the startsWith function, but likely caused
+ many other bugs with other functionality.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/27/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc StripFilter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Forgot to add this file in my last putback.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>08/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added dumpNode method, convenience for debugging.
+
+ We might want to move this function up to DTMDefaultBase, or
+ perhaps to the DTM API itself.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToText.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3131 by
+ overriding writeNormalizedChars and writeUTF16Surrogate to
+ not do any XML escaping.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>The index was being stored as opposed to the node handle when we were 
+replacing namespace nodes. Store the actual node handle.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by</i>
+</b> mmidy@apache.org<b>
+<i> on </i>
+</b>08/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>
+java/src/org/apache/xpath/compiler Lexer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for Bugzilla 2684 StringIndexOutOfBounds Exception. Check if we are at the end of the pattern string.<br />
+<br />
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
+</tr>
+</table>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D9</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>2.2.D8<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>2.2.D8<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer NodeSortKey.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Submitted fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2851.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Just added some stuff to diagnose bugs for flavor th.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes WalkerFactory.java
+ java/src/org/apache/xpath/compiler Compiler.java
+ java/src/org/apache/xpath/patterns
+ ContextMatchStepPattern.java StepPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>These are changes submitted (offline) by Mukund Raghavachari/Watson/IBM@IBMUS.
+
+ This fixes a bug with match="chapter//footnote[1]" patterns.
+
+ The main change here is minor to remove the automatic attachment of parent::* 
+to simple step patterns.
+
+ He has re-implemented executePredicates to be
+ more efficient. Given a pattern such as row[6], it
+ does not iterate over the entire axis until it reaches
+ the node to see if it is the sixth node. Rather,
+ starting from the current node, it works backwards
+ (preceding siblings) until it either runs out of nodes
+ or finds more than six nodes that match the
+ predicate [I can explain it better if desired].
+ This optimization improves performance slightly
+ overall. It helps decoy and patterns most (by
+ about 10%).
+
+ The other optimization that I implemented was the
+ following. For a pattern foo[][3][][4] ..., where more
+ than one predicate is a number (position check),
+ in checking the predicate [4], the fact that the
+ current node has passed foo[][3] implies that it is
+ the only node that is the third node among its
+ siblings that passes foo[]. Therefore, any
+ subsequent position checks can be true if and
+ only if the position is [1]. This optimization is not
+ used by the xsltmark benchmarks and so does
+ not offer any performance benefits.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes DescendantIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1336<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/compiler Lexer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Resize the m_patternMap if m_patternMapSize exceeds the bounds.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/extensions
+ ExtensionHandlerGeneral.java
+ ExtensionHandlerJavaPackage.java
+ ExtensionsTable.java MethodResolver.java
+ java/src/org/apache/xalan/lib Extensions.java
+ java/src/org/apache/xalan/lib/sql ConnectionPoolManager.java
+ java/src/org/apache/xalan/processor ProcessorLRE.java
+ ProcessorTemplateElem.java StylesheetHandler.java
+ TransformerFactoryImpl.java XSLTAttributeDef.java
+ XSLTElementProcessor.java
+ java/src/org/apache/xalan/res XSLTErrorResources.java
+ java/src/org/apache/xalan/serialize CharInfo.java
+ WriterToUTF8Buffered.java
+ java/src/org/apache/xalan/templates ElemExtensionCall.java
+ ElemExtensionDecl.java ElemMessage.java
+ FuncDocument.java FuncFormatNumb.java
+ OutputProperties.java StylesheetRoot.java
+ java/src/org/apache/xalan/transformer TrAXFilter.java
+ TransformerHandlerImpl.java
+ TransformerIdentityImpl.java TransformerImpl.java
+ java/src/org/apache/xalan/xslt Process.java
+ java/src/org/apache/xml/dtm DTMException.java
+ DTMManager.java
+ java/src/org/apache/xml/dtm/ref ChunkedIntArray.java
+ CoroutineManager.java CoroutineSAXParser.java
+ CoroutineSAXParser_Xerces.java DTMBuilder.java
+ DTMDefaultBase.java DTMDefaultBaseIterators.java
+ DTMDefaultBaseTraversers.java
+ DTMManagerDefault.java
+ IncrementalSAXSource_Filter.java
+ IncrementalSAXSource_Xerces.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java
+ java/src/org/apache/xml/utils ObjectPool.java QName.java
+ URI.java
+ java/src/org/apache/xpath NodeSet.java NodeSetDTM.java
+ VariableStack.java XPath.java XPathContext.java
+ java/src/org/apache/xpath/axes WalkerFactory.java
+ java/src/org/apache/xpath/functions FuncSubstring.java
+ FunctionDef1Arg.java
+ java/src/org/apache/xpath/objects
+ XRTreeFragSelectWrapper.java XStringForChars.java
+ java/src/org/apache/xpath/operations Variable.java
+ java/src/org/apache/xpath/res XPATHErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Getting all (almost all) error message strings into the resource bundle<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMBuilder.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Accidentally added. Now deleting.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath Expression.java
+ java/src/org/apache/xpath/axes AxesWalker.java
+ LocPathIterator.java PredicatedNodeTest.java
+ ReverseAxesWalker.java
+ java/src/org/apache/xpath/objects XNumber.java
+ java/src/org/apache/xpath/operations Variable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>If a proximity predicate is a stable number (variable or number literal) then,
+ once the node is found, don't keep searching! (since only one
+ node is possible).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>In getNextNamespaceNode and getFirstNamespaceNode, was
+ sometimes returning a node without the DTM identity bits.
+ Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2878.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/compiler OpMap.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Throw real error instead of runtime error in getFirstPredicateOpPos
+ for better error reporting.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes PredicatedNodeTest.java
+ java/src/org/apache/xpath/compiler OpMap.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bit of a hack to make /descendant-or-self::north with getFirstPredicateOpPos
+ where getFirstPredicateOpPos was always throwing an error if
+ there was not a predicate (!! Should have been discovered before
+ now?!?!). If -2 return -2 (instead of throwing an error), and
+ handle this case in PredicatedNodeTest#initPredicateInfo.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql ObjectArray.java
+ SQLDocument.java SQLErrorDocument.java
+ XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added the original pquery and streaming mode functionality
+ Submitted by: John Gentilin<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/30/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/lib/sql DTMDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added DTM Document, a common impl between SQLDocument and SQLErrorDocument
+ Submitted by: John Gentilin<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes DescendantIterator.java
+ WalkerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix addresses http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=XalanJ2,
+ and a whole class of related problems.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XNodeSet.java XObject.java
+ java/src/org/apache/xpath/patterns StepPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Detach expressions in match patterns. Also, defined
+ numWithSideEffects and boolWithSideEffects (for lack of
+ better names) that will increment the iterator, and call these
+ for predicates. The combination of these results in about an
+ 18% performance improvement for decoy.xsl.
+ Credits to Mukund Raghavachari/Watson/IBM@IBMUS.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>07/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/extensions
+ ExtensionHandlerGeneral.java
+ java/src/org/apache/xalan/res XSLTErrorResources.java
+ java/src/org/apache/xalan/templates ElemExtensionDecl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add support for external scripts (ie, the src attribute on a script element)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath XPathContext.java
+ java/src/org/apache/xpath/axes ChildTestIterator.java
+ OneStepIteratorForward.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>In XPathContext#createDTMIterator(int node), call 
+OneStepIteratorForward(Axis.SELF)
+ instead of DescendantIterator. This addresses one of the bugs
+ in http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2925
+ (i.e. &lt;xsl:copy-of select="xalan:nodeset($stylesheets)"/&gt;...
+ The DescendantIterator was enumerating all of the nodes in the RTF
+ rather than just the one.)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql ConnectionPool.java
+ ConnectionPoolManager.java DTMDocument.java
+ DefaultConnectionPool.java ObjectArray.java
+ PooledConnection.java SQLDocument.java
+ SQLErrorDocument.java XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added Error Managment and javadocs
+ Submitted by: John Gentilin<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/patterns StepPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed some major problems with position() and last() in secondary
+ predicates for match patterns. Credit goes to
+ Mukund Raghavachari/Watson/IBM@IBMUS for flagging these.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>08/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Update after building Unit Test's
+ Submitted by: John Gentilin<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLTAttributeDef.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for Bugzilla 2930. Fix from Alexander Rudnev. Handle namespaced elements.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm DTMAxisIterator.java
+ java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java
+ DTMDefaultBaseIterators.java
+ java/src/org/apache/xpath/axes OneStepIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Addresses http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2945
+
+ Bug was caused by (redundent) cloneWithReset being called from
+ the UnionPathIterator, and the iterator in OneStepIterator not being
+ reset. (Need to review: check other iterators for this.)
+
+ Call reset on the iterator in OneStepIterator#reset. Reset the position
+ value in the ancestor iterator reset. Define DTMAxisIterator#cloneIterator
+ to not reset the iterator position, and fix the implementations of
+ this to not call clone.reset().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java
+ java/src/org/apache/xpath NodeSetDTM.java
+ java/src/org/apache/xpath/functions FuncExtFunction.java
+ java/src/org/apache/xpath/objects XBoolean.java
+ XNodeSet.java XNumber.java XObject.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xpath/objects XNodeSetForDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Address http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2925
+
+ Create new XObject, XNodeSetForDOM, which is constructed
+ from a Node, NodeList, or NodeIterator, and acts the same as
+ XNodeSet, except it returns the original object for object(),
+ nodeset(), and nodelist().
+
+ Add XObject#create(Object val, XPathContext xctxt), which is
+ called from TransformerImpl#setParameter(s), and
+ FuncExtFunction#execute (for the return values of the
+ extension).
+
+ XBoolean and XNumber now also have Boolean and Number
+ constructors, in which case the original object will also be
+ returned from the object() method.
+
+ This should make the conversion from java object to XObject
+ consistent between function returns and setParameter. These
+ changes should also fix a bug where NodeLists weren't being converted.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>08/03/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Replacement for org.xml.sax.helpers.NamespaceSupport; extends
+ that API so it can be easily swapped in.
+
+ Current changes;
+
+ Minor code reorg. I'm sorry, but I find classes easier to read
+ if fields are defined before methods reference them rather than
+ at end, especially when inner classes are present.
+
+ Punt stack vector in favor of doubly-linked list. (It was already
+ singly-linked in parallel with the vector!)
+
+ The whole dirty-tables concept was broken, because Context's
+ ctor always called copyTables and thus always marked tables
+ dirty. It also wasted some time setting itself only to be reset by
+ setParent. I've fixed both by parameterizing the ctor and making
+ copyTables specific to prep-for-new-declaration. (Could be
+ moved back into the declaration method, for that matter.)
+
+ I'm dubious about the caches in processName. As far as I can
+ tell, Xalan per se never actually uses that method...
+
+ The use of Hashtables is questionable. Hashtable is
+ known to be inefficient and oversynchronized in older JVMs, and
+ the fact that this is a bidirectional mapping suggests that an
+ approach similar to our own String Pool -- lighter-weight, more
+ targeted, hashing without reduplicating the two column tables --
+ would be a win. Since these are typically short sets, even
+ simple linear search is worth considering!<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>08/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor StylesheetHandler.java
+ java/src/org/apache/xalan/templates ElemTemplateElement.java
+ java/src/org/apache/xalan/transformer ResultTreeHandler.java
+ TransformSnapshotImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Cutover to NamespaceSupport2, q.v.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>08/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Continuing code review.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>08/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>More efficient prefixes-for-specific-URI. This may wind up being
+ redone yet again if/when the underlying storage representation
+ changes.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>08/03/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/lib PipeDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>PipeDocument extension element (the pipeDocument method).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/04/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java
+ java/src/org/apache/xpath NodeSet.java NodeSetDTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug fixed regarding the current() function in the root template
+ (related to bug#1269). Bug was reported by David Marston
+ offline. The test for this is conf/copy/copy29.
+
+ In TransformerImpl#applyTemplateToNode, create a NodeSetDTM and pass it to 
+m_xcontext.pushContextNodeList(cnl);.
+ In NodeSetDTM fix getCurrentNode so that it doesn't use m_next-1
+ (which simply appears to be completely wrong). Do the same for
+ NodeSet... though I don't think this will be called anywhere in
+ Xalan.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/04/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm DTMAxisIterator.java
+ java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java
+ DTMDefaultBaseIterators.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Provide method for DTMAxisIterator to get the current root node
+ of the iteration.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/04/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XObject.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>In response to regression posted on xalan-dev by John Gentilin 
+&lt;johnglinux@eyecatching.com&gt;
+ on 08/03/2001 06:49 PM. When the XNodeSet taks a DTMIterator, it
+ will call val.getDTMManager();, which will call LocPathIterator#getDTMManager,
+ which will call m_execContext..getDTMManager(), which means
+ that setRoot has to be called on the iterator before it is added to
+ XNodeSet. Thus, call setRoot on the OneStepIterator in
+ create(Object, XPathContext) before it is added to the XNodeSet.
+ The regression was related to fix for 
+http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2925.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes OneStepIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>For the OneStepIterator(DTMAxisIterator iterator) constructor,
+ initialize the node tests to DTMFilter.SHOW_ALL (duh).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XObject.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xpath/objects XObjectFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Move create methods from XObject to XObjectFactory, in response
+ to cyclic build problems encountered with javac 1.1.8.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Moved anonomous class to PrefixEnumerator, in response
+ to problems encountered with 1.1.8 build.
+ Joe may want to fix this in another way, as
+ I'm sure the anon class is probably a bit
+ cheaper?<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath VariableStack.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Address http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2972,
+ where it was throwing a NPE instead of reporting that the variable
+ was being accessed before it was bound (i.e. the variable was being
+ accessed inside an RTF for that same variable).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ TransformerHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Remove m_hasStarted variable and associated assertion.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Addresses bug http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3001.
+ In the cloneIterator function of PrecedingIterator, the cloned array
+ was being sized for _maxAncestors, which defaults to 8. But if the
+ _stack was resized, it will copy more into the new stack than is
+ allocated. The solution is to allocate the new clone._stack array to
+ _stack.length.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>08/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Don't create caches unless used (which I don't think they are, in Xalan).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Made _maxAncestors not static, as this is
+ not compatible with 1.1.8 (reported by
+ Gary Peskin).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>08/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils NamespaceSupport2.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Playing a hunch, I moved the Context objects out of NamespaceSupport2.
+ They're now a second class in the same file rather than being an inner class.
+ That reduces the size of the Context2 object, and its initialization time, by
+ removing the need for it to carry a reference to the NamespaceSupport2
+ object that created it.
+
+ Performance seems significantly improved... even (surprisingly!) on the
+ getDeclaredPrefixes operation. Memory usage also seems better, as
+ expected.
+
+ NamespaceSupport2 is still acounting for about 5%
+ of the time spent in the ResultTreeHandler, according
+ to my latest trace. Apparently we are calling
+ getDeclaredPrefixes an obscenely large number of
+ times, and the Vector.elements call is adding up. We
+ may want to look at where this is being called from
+ and whether we can reduce the number of invocations.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>08/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Performance improvement; avoid scanning the same list twice.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ TransformerHandlerImpl.java TransformerImpl.java
+ java/src/org/apache/xalan/xslt Process.java
+ java/src/org/apache/xml/dtm/ref
+ IncrementalSAXSource_Filter.java
+ java/src/org/apache/xml/utils DefaultErrorHandler.java
+ java/src/org/apache/xpath/operations Variable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>This checkin hopefully fixes many problems with bad diagnostics lately, but
+ at the expense of a slight change in behavior. The rule now is, the
+ DefaultErrorHandler never outputs location info for error and fatalError... 
+this has to be done
+ by the catcher of the exception. Convenience methods for this are
+ in DefaultErrorHandler#printLocation. This method will unwrap the
+ exception as close to the originating source as possible.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/extensions
+ XSLProcessorContext.java
+ java/src/org/apache/xml/dtm DTMIterator.java
+ java/src/org/apache/xml/dtm/ref DTMAxisIteratorBase.java
+ java/src/org/apache/xpath NodeSetDTM.java
+ java/src/org/apache/xpath/axes AttributeIterator.java
+ AxesWalker.java ChildIterator.java
+ ChildTestIterator.java DescendantIterator.java
+ FilterExprWalker.java LocPathIterator.java
+ OneStepIterator.java OneStepIteratorForward.java
+ ReverseAxesWalker.java UnionPathIterator.java
+ WalkingIteratorSorted.java
+ java/src/org/apache/xpath/objects XObjectFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changes to allow some dynamic determination in WalkerIteratorSorted to
+ see if the nodes really need to be sorted. Added isDocOrdered() and
+ getAxis() to both DTMIterator and AxesWalker, and implemented
+ appropriate overloads in derived or implementing classes. In FilterExprWalker
+ return the contained DTMIterator's getAxis(). In WalkerIteratorSorted,
+ implement canBeWalkedInNaturalDocOrder() function that is called
+ from setRoot(...). If this function returns true, than don't sort the nodes
+ in setRoot, and in all other respects treat this as if it is a simple
+ WalkingIterator.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for bugzilla 1251. Make sure exceptions are thrown when we're on the main 
+thread.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes AxesWalker.java
+ WalkerFactory.java WalkingIteratorSorted.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Eliminate do/while check for duplicates in AxesWalker#nextNode()
+ by using WalkingIteratorSorted for cases where both the preceding[-sibling]
+ and following[-sibling] axes are being walked, and for "@*/foo" patterns
+ ("@attr/foo" patterns still use WalkingIterator).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>08/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates FuncFormatNumb.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix bugzilla bug 3036 
+(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3036). When no 
+xsl:decimal-format element is supplied in the composed stylesheet, the defaults 
+specified in the Recommendation section 12.3 should be used for the attribute 
+values, not locale-specific defaults.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>08/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for bugzilla 3060 
+(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3060). Prefixes and
+ namespaceURIs are kept in the same Vector, m_prefixMappings. The entries are 
+stored as pairs of vector elements. The even elements contain the prefix and 
+the odd elements contain the URI. In two routines, getPrefix and endElement, 
+the appropriate prefix or URI was being located in the Vector using an 
+indexOf. However, in this case where the prefix and the URI were the same, the 
+routine was looking for the URI but finding the prefix instead of the URI. It 
+tried tried to back up one to get the prefix and underflowed the Vector size.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java
+ TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Implement ErrorHandler in ResultTreeHandler so that fatal errors can get 
+passed in to the SAXHandler. Also change the code in TransformerImpl to call 
+fatalError in case of an error instead of endDocument. (overlaps with URI 
+handling fix...)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor
+ TransformerFactoryImpl.java
+ java/src/org/apache/xalan/transformer
+ TransformerIdentityImpl.java
+ java/src/org/apache/xml/utils SystemIDResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix code to handle absolute paths from unix systems. This fix is part of an 
+ongoing process and is just meant to fix a few pending bugs. More changes are 
+expected in this area.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Change version for xalan2.2.D9 build<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>08/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemElement.java
+ java/src/org/apache/xalan/transformer ResultTreeHandler.java
+ java/src/org/apache/xml/utils DefaultErrorHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>ResultTreeHandler was pushing a new namespace context but failing to note 
+that result in more pushes than pops. Cleaned up the execute() method of 
+ElemElement to make it more understandable (to me) and added a few comments. 
+The DefaultErrorHandler was not flushing Writers that it created. Since the 
+Writers are never closed (and cannot be as there is no close method), error 
+messages were failing to appear.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>08/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm DTMManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Increasing the number of bits used to identify DTM nodes, at the expense of 
+decreasing the number of DTMs that a DTMManager can track simultaneously. Some 
+other code has been updated to track this change (and to better track posible 
+future changes), as have the IDKEY testcases.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>08/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ DTMDocumentImpl.java DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Increasing the number of bits used to identify DTM nodes, at the expense of 
+decreasing the number of DTMs that a DTMManager can track simultaneously. Some 
+other code has been updated to track this change (and to better track posible 
+future changes), as have the IDKEY testcases.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>08/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/functions FuncGenerateId.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Increasing the number of bits used to identify DTM nodes, at the expense of 
+decreasing the number of DTMs that a DTMManager can track simultaneously. Some 
+other code has been updated to track this change (and to better track posible 
+future changes), as have the IDKEY testcases.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>08/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath NodeSetDTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Try to support getRoot. Fixes problem with TransformStateTest.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>08/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes WalkerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix problem with duplicate nodes produced from a walking iterator<br />
+<br />
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
+</tr>
+</table>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D8</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Code Update
+ Submitted by:John Gentilin<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed DTM.NULL compile error<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TreeWalker2Result.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Redundant test removed, possibly redundant code flagged for %REVIEW%<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java
+ java/src/org/apache/xalan/transformer
+ TransformerHandlerImpl.java
+ java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ DTMDocumentImpl.java DTMManagerDefault.java
+ IncrementalSAXSource.java
+ IncrementalSAXSource_Filter.java
+ IncrementalSAXSource_Xerces.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java
+ java/src/org/apache/xml/utils SuballocatedIntVector.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>IncrementalSAXSource replaces CoroutineSAXParser -- simpler API,
+ hence less risk of programming errors introducing timing windows. I hope.
+ A few performance-related tweaks are also included in this check-in.
+ Only very minor gains are expected.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql ObjectArray.java
+ SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Project Update<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>07/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Oops.Should have been checked in as part of the IncrementalSAXSource cutover. 
+Sorry!<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>costin@apache.org<b>
+<i> on </i>
+</b>07/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java build.xml
+ java/src/org/apache/xml/dtm/ref
+ IncrementalSAXSource_Filter.java
+ java/src/org/apache/xml/utils/synthetic JavaUtils.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>3 small fixes to the build process ( to make it work with jdk1.4 and crimson)
+
+ - exclude IncrementalSAXSource_Xerces if xerces is not detected
+ - comment-out the "main" in IncrementalSAXSource_Filter.java ( it is a
+ test, but has deps on xerces )
+ - don't try to load the compiler in syntetic/JavaUtils. This is a mess,
+ it was debated on tomcat-dev and ant-dev, as you may know some people
+ decided to remove the internal compiler class ( sun.tools.javac.Main ),
+ and that brakes jasper, ant and now xalan.
+
+ It seems right now the only portable way to run the compiler is via command
+ line call in a separate process ( jikes can easily make up for the
+ overhead of creating a new process and doesn't leave garbage ).
+
+ Question: is synthetic used ? Seems like a very usefull package, but if
+ xalan is not using it it might be better to move it to xml-commons or
+ jakarta-commons or some other place.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Don't set m_level anymore, as it looks like Joe commented out it's
+ initialization. m_level is no longer called by Xalan, and the implementation
+ can calculate it when it is called.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>07/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ TransformerIdentityImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed bug 2758 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2758). The 
+flag indicating that a call to startDocument() in the resultContentHandler was 
+necessary was not being reset for multiple transforms.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>07/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix bug 2727 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2727). 
+Attributes which contain a namespace prefix are indicated by placing a negative 
+number in the appropriate entry in the m_dataOrQName array. The absolute value 
+of this number is an entry in m_data. However, in this example, there were no 
+text nodes before the first namespaced attribute so the entry in m_data had an 
+array index of 0. This resulted in an entry of zero, not a negative number, in 
+m_dataOrQName. This situation got several routines which tested for &lt; 0 
+confused. I looked at several ways of fixing this but decided to just always 
+allocate m_data.elementAt(0) entry to a dummy entry. The other solutions 
+involved runtime checking which could slow down this piece of code and I felt 
+that wasting one entry was worth it to not slow down the run time.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>07/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize
+ WriterToUTF8Buffered.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix bugzilla bug 2639 
+(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2639) where buffer was 
+overflowing because the expansion of the Unicode characters into multiple UTF8 
+characters was not being properly taken into account. Many thanks to 
+Gunnlaugur Thor Briem for his "multiply by three" trick.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer NodeSorter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Commented out NumberFormat m_formatter = NumberFormat.getNumberInstance();.
+
+ Mukund reported:
+
+ a minor improvement for alphabetize.xsl is to comment out the line
+
+ //NumberFormat m_formatter = NumberFormat.getNumberInstance();
+
+ in NodeSorter.java. The variable m_formatter does not seem to be used 
+anywhere, and the performance difference is:
+
+ Before: alphabetize 10 90 5108 196 156 34.58 
+OK
+ After : alphabetize 10 70 4316 196 156 
+40.93 OK<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>2.2.D8<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>2.2.D8<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer NodeSortKey.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Submitted fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2851.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Just added some stuff to diagnose bugs for flavor th.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes WalkerFactory.java
+ java/src/org/apache/xpath/compiler Compiler.java
+ java/src/org/apache/xpath/patterns
+ ContextMatchStepPattern.java StepPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>These are changes submitted (offline) by Mukund Raghavachari/Watson/IBM@IBMUS.
+
+ This fixes a bug with match="chapter//footnote[1]" patterns.
+
+ The main change here is minor to remove the automatic attachment of parent::* 
+to simple step patterns.
+
+ He has re-implemented executePredicates to be
+ more efficient. Given a pattern such as row[6], it
+ does not iterate over the entire axis until it reaches
+ the node to see if it is the sixth node. Rather,
+ starting from the current node, it works backwards
+ (preceding siblings) until it either runs out of nodes
+ or finds more than six nodes that match the
+ predicate [I can explain it better if desired].
+ This optimization improves performance slightly
+ overall. It helps decoy and patterns most (by
+ about 10%).
+
+ The other optimization that I implemented was the
+ following. For a pattern foo[][3][][4] ..., where more
+ than one predicate is a number (position check),
+ in checking the predicate [4], the fact that the
+ current node has passed foo[][3] implies that it is
+ the only node that is the third node among its
+ siblings that passes foo[]. Therefore, any
+ subsequent position checks can be true if and
+ only if the position is [1]. This optimization is not
+ used by the xsltmark benchmarks and so does
+ not offer any performance benefits.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes DescendantIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1336<br />
+<br />
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
+</tr>
+</table>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D7</h3>
+<p> Core (Non-XSLTC) source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMManagerDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Since the real root of our tree may be a DocumentFragment, we need to
+ use getParent to find the root, instead of getOwnerDocument. Otherwise
+ DOM2DTM#getHandleOfNode will be very unhappy.
+ Result of report via private mail by Carsten Ziegeler of breakage
+ in Cocoon.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToHTML.java
+ SerializerToXML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Made m_maxCharacter, accumDefaultEscape,
+ accumDefaultEntity, and m_isRawStack
+ protected by request from Johannes Farrenkopf
+ and Frank Nestel.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/functions FuncNormalizeSpace.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>In executeCharsToContentHandler check first for
+ DTM.NULL before trying to get the DTM.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix bug reported by "Carsten Ziegeler" &lt;cziegeler@sundn.de&gt;.
+ Test for this is whitespace23.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>07/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils SuballocatedIntVector.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Drop some bounds tests for cases which shouldn't arise in the first place, 
+since this is an inner-loop method.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>07/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils SuballocatedByteVector.java
+ SuballocatedIntVector.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Synch SuballocatedByteVector with changed SuballocatedIntVector<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Revert back to throwing a shutdownException if (arg == null) in co_yield. I 
+see this
+ occur if the parser is Crimson with output\output01, and it causes
+ a hang if the shutdownException is not thrown.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToXML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Make accumDefaultEntity and accumDefaultEscape non-final.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes ChildTestIterator.java
+ OneStepIterator.java
+ java/src/org/apache/xpath/functions FuncExtFunction.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for John G. for the SQL extension: handle return types of
+ DTM and DTMAxisIterator.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>In executeChildTemplates, somehow there was a popMode without
+ a corresponding pushMode. The pushMode was added.
+ Addresses bug posted by Stephane Bailliez &lt;sbailliez@imediation.com&gt;
+ on the xalan-dev list on 07/09/2001 07:28 AM.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>07/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/extensions ExpressionContext.java
+ java/src/org/apache/xalan/templates StylesheetRoot.java
+ java/src/org/apache/xpath VariableStack.java
+ XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Resolve bugzilla 2355 
+&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2355&gt;. To make the 
+functionality clearer, I've changed the method name from getVariable to 
+getVariableOrParam since the routine will pick up either one. Also fixed a 
+bug where top level variables and parameters were not getting marked as such.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>07/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib Extensions.java
+ java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Resolve bugzilla 2523 
+&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2523&gt;. evaluate extension 
+function was not refactored with DTM. Also need to add function to 
+XPathContext.XPathExpressionContext to allow an extension to obtain the 
+associated XPathContext.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>07/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes DescendantIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix problem with descendant-or-self and from root pattern. When from root, 
+descedant or self was not recognized.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>07/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Quick patch to handle case where someone wants to build a DTM from
+ an Element rather than from a Document. The Attr handling might want to
+ move down into addNode.
+
+ This opens several cans of worms -- what if the next user wants the
+ root of their DTM to be an EntityReference node, which has no DTM
+ node equivalent -- but we'll eat those when we get to them.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>07/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib Extensions.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Modify distinct() extension so that it no longer relies on DOMHelper which is 
+deprecated but uses ExpressionContext.toString().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTErrorResources.java
+ java/src/org/apache/xalan/trace PrintTraceListener.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java
+ java/src/org/apache/xalan/xslt Process.java
+ java/src/org/apache/xml/dtm DTM.java
+ java/src/org/apache/xml/dtm/ref DTMDocumentImpl.java
+ ExpandedNameTable.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/lib NodeInfo.java
+ java/src/org/apache/xalan/transformer XalanProperties.java
+ java/src/org/apache/xml/dtm/ref NodeLocator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Application of patch submitted by Ovidiu Predescu &lt;ovidiu@cup.hp.com&gt;
+ for file, line, column number information for XML source document.
+
+ [A made one change: m_sourceSystemId, m_sourceLine, and
+ m_sourceColumn are not created with the member variable
+ initializer, since they are initialized in setProperty.]
+
+ The following patch is a rework of a previous patch I've submitted on
+ May 24 against the Stree model, current at that time. This time the
+ patch is against the DTM model, and makes use of DTM features to
+ optimize the lookup time and storage requirements. I hope this time
+ the patch gets incorporated in the CVS repository, before any major
+ rework happens again ;-).
+
+ As with the previous patch, there is no overhead in space or time if
+ source information is not needed.
+
+ From a user perspective, this feature can be turned on by passing the
+ -L flag to Xalan when invoking it from the command
+ line. Programmatically you can also enable it by invoking the
+ setProperty method on the TransformerImpl:
+
+ TransformerImpl impl = ((TransformerImpl) transformer);
+ 
+impl.setProperty(org.apache.xalan.transformer.XalanProperties.SOURCE_LOCATION,
+ Boolean.TRUE);
+
+ A Transformer "property" is different from a "feature": while a
+ feature is specific to all the transformer instances and usually
+ refers to an implementation aspect, a property is a runtime capability
+ that is set per Transformer instance. Currently the only property
+ added by this patch is the source location in the XML source document.
+
+ The patch adds two methods to the DTM interface:
+
+ public void setProperty(String property, Object value);
+ public SourceLocator getSourceLocatorFor(int node);
+
+ The second method is used to obtain the source location given a node
+ handle.
+
+ There are two ways you can make use of the source location. The first
+ one is from within a stylesheet, where you can have something like
+ this:
+
+ &lt;xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:nodeinfo="xalan://org.apache.xalan.lib.NodeInfo"
+ version="1.0"&gt;
+
+ &lt;xsl:template match="*"&gt;
+ //node &lt;xsl:value-of select="name()"/&gt;
+ //file &lt;xsl:value-of select="nodeinfo:systemId()"/&gt;
+ //line &lt;xsl:value-of select="nodeinfo:lineNumber()"/&gt;
+ //column &lt;xsl:value-of select="nodeinfo:columnNumber()"/&gt;
+ &lt;xsl:apply-templates/&gt;
+ &lt;/xsl:template&gt;
+
+ &lt;/xsl:stylesheet&gt;
+
+ If no arguments are passed to the systemId(), lineNumber() or
+ columnNumber() functions, the corresponding information of the current
+ context node is returned. A node can be passed as argument to the
+ above functions, in which case the corresponding information about
+ that node is returned. If a node set containing multiple nodes is
+ passed as argument, only the information of the first node in the set
+ is returned.
+
+ The second way of obtaining the source location is
+ programmatically. Given a Node instance, one can obtain the owner DTM
+ and the node handle (an integer) that represents the
+ node. Unfortunately I didn't see any way of hiding this: if you find
+ one please let me know and I'll fix it.
+
+ The following example is extracted from PrintTraceListener and
+ illustrates the API:
+
+ Node sourceNode = ev.m_sourceNode;
+ int nodeHandler = ((DTMNodeProxy)sourceNode).getDTMNodeNumber();
+ SourceLocator locator = ((DTMNodeProxy)sourceNode).getDTM()
+ .getSourceLocatorFor(nodeHandler);
+
+ m_pw.println("Selected source node '" + sourceNode.getNodeName()
+ + "', at " + locator);<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>07/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/compiler Compiler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix bug 2175 &lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2175&gt; by 
+adding the current time to the method key to ensure method key uniqueness. 
+Multiple Compilers were getting the same hashCode, particularly in Visual Age 
+for Java, due to aggressive garbage collection. Added the current time in 
+mills to distinguish between the different functions being compiled.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>07/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemVariable.java
+ StylesheetRoot.java
+ java/src/org/apache/xpath VariableStack.java
+ java/src/org/apache/xpath/operations Variable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Resolve bugzilla 2355 
+&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2355&gt;. Added code to 
+populate m_index for global variables and parameters. If the backward search 
+for templates reaches the top level, use the list of composed top-level 
+variables and parameters from StylesheetRoot.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Now implements DocumentFragment.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>07/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated version to 2.2.0.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>07/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated version to 2.2.0.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMNodeProxy.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed very ugly bug, left-over from DTM1, in getValue, where +1 was being 
+added per the old attribute structure of DTM1.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql ConnectionPool.java
+ DefaultConnectionPool.java PooledConnection.java
+ QueryParameter.java XConnection.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/lib/sql ConnectionPoolManager.java
+ ObjectArray.java SQLDocument.java
+ SQLErrorDocument.java<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xalan/lib/sql Column.java
+ ColumnAttribute.java ColumnData.java
+ ColumnHeader.java ExtensionError.java Row.java
+ RowSet.java SQLExtensionError.java
+ StreamableNode.java XConnectionPoolManager.java
+ XStatement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>First round of changes to port DOM mode to DTM Mode
+ Submitted by: John Gentilin mailto://johng@apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Check if locator property is set before trying to use locator fields<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/trace PrintTraceListener.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Don't print locator message if locator is null<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ TransformerHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>In startDocument, run m_contentHandler.startDocument before you start the 
+thread.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Call wait for initial events before the the transform is started.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref CoroutineSAXParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Allow co_yield to be called after the parse has finished.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java
+ SQLErrorDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added setProperty and getSourceLocatorFor empty methods.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>07/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix problem reported by Carsten Ziegeler &lt;cziegeler@sundn.de&gt;. Using 
+ApplyXPath (or doing a transformation) with DOM input was resulting in an NPE 
+due to declareNamespaceInContext() being called before setting m_exptype which 
+is needed by declareNamespaceInContext().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ TransformerHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add pauseForTransformThreadStartup. Call this in startDocument just
+ after starting the transform thread. This should get rid of any variability
+ with racing threads.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/extensions
+ XSLProcessorContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix problem reported by jason heddings &lt;Jason.Heddings@Sun.COM&gt;.
+
+ "In v2.0.1, I was able to pass a Node to this function and have the node
+ be copied to the result tree (as expected). In the source code for
+ XSLProcessorContext, it appears that the only objects that can be sent
+ to the result tree are XObjects. Everything else is converted to a
+ String. So for instance, I can no longer create a ProcessingInstruction
+ and pass it to the result tree via this method since the PI is simply
+ converted to a String."<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToHTML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Application of patch submitted by Benjamin Riefenstahl 
+&lt;Benjamin.Riefenstahl@ision.net&gt;
+
+ Motivation: We are using Xalan to generate HTML pages. We have the
+ requirement to integrate code for ad banners. The ad server provider
+ has written the code to use with compatibility to NetScape 4 in mind.
+ The code uses the NetScape proprietory &lt;LAYER&gt; element and &lt;IFRAME&gt;
+ elements for other browsers. The SRC attributes of these elements
+ contain URLs with several URL parameters separated by '&amp;', as is the
+ common convention.
+
+ Problem: The code is integrated in our XSL stylesheets. In the
+ stylesheet the '&amp;' has to be written as the entity '&amp;amp;'. That's
+ ok. The problem is that in the output the '&amp;' is also written as
+ '&amp;amp;' which is not ok, because NetScape doesn't understand that.
+ OTOH the same URL is written with '&amp;' when used in an &lt;A&gt; element.
+
+ Solution: This goes down to a different handling of attribute values
+ in the class SerializeToHTML, depending on whether the attribute in
+ question is known to contain a URI or not. Xalan knows this for &lt;A&gt;
+ but not for &lt;LAYER&gt; and &lt;IFRAME&gt;. When I compare the list in
+ SerializeToHTML.java with the HTML specs, I find a couple of other
+ missing URI attributes in SerializeToHTML.java. When I add the
+ missing pieces, the generation works fine.
+
+ Patch: Here is the patch (diff -c) for xalan-j_2_2_D6. I also have
+ one for xalan-j_2_0_1 which is the version I actually tested this
+ with. Please let me know if this is insufficient or the patch is
+ wrong or if there is something else I can do to fix this problem.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>On code review of previous checkin from Gary P., we determined there
+ was a problem with the point at which type was declared a
+ DTM.NAMESPACE_NODE. So that part was moved back up (actuall
+ a bit higher than where it was before),
+ and the call to declareNamespaceInContext was moved a bit
+ further down.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Project Update
+ Submitted by: John Gentilin mailto://johng@apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Project Update
+ Submitted by: John gentilin mailto://johng@apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixup from previous check-in, defined new
+ functions.
+ Submitted by: John Gentilin mailto://johng@apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Project Update<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>reduced Attribute's for testing<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>07/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Minor hack to catch an attribute value being null.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>07/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemNumber.java
+ java/src/org/apache/xalan/transformer Counter.java
+ CountersTable.java KeyRefIterator.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java
+ java/src/org/apache/xpath NodeSetDTM.java
+ java/src/org/apache/xpath/axes LocPathIterator.java
+ UnionPathIterator.java WalkingIteratorSorted.java
+ java/src/org/apache/xpath/objects XNodeSet.java
+ XRTreeFrag.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add new parameter to NodeSetDTM constructor. We need to have a DTMManager on 
+hand. Change code to use the new constructors.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>07/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref/dom2dtm DOM2DTM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>OOps! Back out this last change. Old code on my machine!!!<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>07/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql SQLDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed a few bugs, almost there
+ Submitted by: John Gentilin mailto://johng@apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>07/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref CoroutineManager.java
+ CoroutineSAXParser.java
+ CoroutineSAXParser_Xerces.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xml/dtm/ref IncrementalSAXSource.java
+ IncrementalSAXSource_Filter.java
+ IncrementalSAXSource_Xerces.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Starting to phase out Coroutine*Parser* in favor of IncrementalSAXSource*.
+ The latter simplifies the code, and should help us avoid some of the
+ confusion that can arise in using the older tools.
+
+ Most importantly, it greatly simplifies the calling sequences, by discarding
+ the "which file do you want to parse" and "do you want to parse any more
+ files" transactions. These now operate _only_ as filters, and only as single
+ -use (though in fact the Xerces-specific version is reusable, and we may
+ reintroduce that feature in the generic filtering version at a later date).
+
+ Note too that we have swept the CoroutineManager completely
+ under the covers of the filter's API. There's no particular reason to expose
+ that implementation detal to the outside world.
+
+ Still to be done: Rework the rest of Xalan to use the new code.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>07/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref CoroutineParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Starting to phase out Coroutine*Parser* in favor of IncrementalSAXSource*.
+ See comment in previous check-in; I just missed this one....<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>07/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMStringPool.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>doc.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>07/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>2.2.D7<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>07/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>2.2.D7<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>07/18/2001<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xml/dtm/ref DTMBuilder.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Obsolete<br />
+<br />
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This release includes no updates of the compatibility source code (now deprecated).</td>
+</tr>
+</table>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D6</h3>
+     <p>
+<b>Important: Xerces has added a number of DOM level-3 methods to its DOM interfaces. The DOM level-3 proposal
+is currently a working draft (it is not yet a W3C recommendation), and Xalan does not support these new methods. 
+To run Xalan in the JDK 1.1.8 platform, you must put xalan.jar (with its DOM level-2 interfaces) in front of 
+xerces.jar on the system class path. If you want to rebuild Xalan (on JDK 1.1.8 or higher), you must put Xalan 
+in front of xerces.jar the system class path.</b>
+</p>
+
+     <p>This beta release includes the following non-XSLTC code changes:</p>     
+     <ul>
+       <li>Costin Manolache has slightly modified the CoRoutine stuff so that a you can compile and run everything but the CoRoutineXercesParser without having Xerces on the classpath.<br />
+<br />
+</li>
+       <li>Joseph Kesselman added chunked int array stuff to address our scaling problems that Mukund &amp; co. uncovered.  This was a fairly mechanical, but still substantial, change.  No bugs have yet been discovered that relate to this.  This is probably the most controversial change.<br />
+<br />
+</li>       
+       <li>The Process class now outputs incrementally if the output is standard out.  This is mostly for testing purposes, but it makes general sense.<br />
+<br />
+</li>
+       <li>Bug was fixed with setting the incremental flag in TransformerFactoryImpl.  Clearly the change was made but never tested.  Simply a missing 'else'.<br />
+<br />
+</li>
+       <li>Fix for Bugzilla Bug 2275, Xalan did not fire the right templates.  This was substantial and somewhat risky.  Xalan had several problems related to the last() function.  Fixes cover four axes files.<br />
+<br />
+</li>                     
+       <li>Change PrintTraceListener to output the file, as well as the line numbers.  This is really a feature change, but simple, and aids diagnosing problems with multi-part stylesheets.<br />
+<br />
+</li>       
+       <li>XPath fix: the XPath API wasn't working correctly due to a problem with with NodeSet/NodeIterator adapters.  This fix ended up interacting quite a bit with the #2275 fix.<br />
+<br />
+</li>
+       <li>Fix for the Norm Walsh bug posted 06/20/2001: iterators weren't always being cloned correctly from the variable value stack.  This fix is not without some risk, though we haven't seen any problems since Scott Boag made it.<br />
+<br />
+</li>
+       <li>David Bertoni added missing html element properties to SerializerToHTML.java.<br />
+<br />
+</li>
+       <li>Shance Curcuru modified TransformerFactoryImpl.setAttribute() to accept a String ("true" or "false") as well as a Boolean object to set the value of a Boolean attribute.<br />
+<br />
+</li>
+       <li>TransformerHandlerImpl was threading when incrementality is turned off. Scott Boag has fixed this bug.</li>       
+     </ul>
+     
+   <a name="dtm">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D2</h3>
+     <p>This release includes the following changes:</p>
+     <ul>
+       <li>Deprecation of the <a href="usagepatterns.html#compat">Xalan-Java 1 compatiblity API</a>
+</li>
+       <li>The DTM</li>
+       <li>Other optimization work</li>
+     </ul>
+     <p>The primary focus of the 2.2 Developer releases is incorporation of all our work over the past several months on the Document Table
+      Model (<a href="dtm.html">DTM</a>).</p>
+
+<p>As a result of the changes in *internal* api, you may encounter problems with extensions. We have done some bug fixing in support
+for extensions since 2.2.D1.  John Gentilin is working on fixing the SQL library extension,which currently is broken. Please report 
+any problems you find (see <a href="jira.html">bugs</a>).</p>
+
+<p>The DTM and related work provides faster performance and less accumulation of garbage... though it is an
+ongoing battle.  Brief summary:</p>
+<ul>
+<li>The DTM identifies nodes with 32-bit integer handles.
+The DTM has many features, including direct character dispatch to SAX2,
+native DTM iterators and "traversers", multiple document management, etc.<br />
+<br />
+</li>
+<li>Joe Kesselman's CoRoutine parsers, which are in a threaded SAX flavor
+and in a Xerces parseMore() flavor (no threads).  These do away with the
+"race" conditions that occured in the original code, and should make Xalan
+much more robust.<br />
+<br />
+</li>
+<li>*Much* more robust XPath itteration.  The "waiting" iterators of old are
+no more, and good riddance.  There is stil lots more we want to do with
+this mechanism.  (There is something here called MatchIterators, but it's
+not being used yet for various reasons.  We will be taking advantage of
+these down the line.)<br />
+<br />
+</li>
+<li>A fair amount of XObject creation reduction.  You can now get boolean,
+number, nodeset, and string values directly from an Expression, instead of
+going through an XObject.<br />
+<br />
+</li>
+<li>XMLString, which allows us to work with string objects that don't wrap
+Java's String object. These objects get their character data from an array or
+Fast String Buffer.<br />
+<br />
+</li>
+<li>Serializers now only do internal buffering if they know they are writing
+to a FileStream.<br />
+<br />
+</li>
+<li>The variable stack mechanism has been redisigned, so that it is no
+longer so interpretive, and we believe it is much more robust.<br />
+<br />
+</li>
+<li> Some small amount of stylesheet rewriting (but not yet redundent
+expression elimination), in particular to reduce full RTF creation and
+interpretation.</li>
+</ul>
+<p>Xalan-Java implements two DTM performance features that you can control with the TransformerFactory
+<a href="apidocs/javax/xml/transform/TransformerFactory.html#setAttribute(java.lang.String, java.lang.Object)">setAttribute()</a>
+method. See <a href="dtm.html#settings">DTM performance settings</a>
+</p>
+     
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.1.0</h3>
+     <p>This release includes a number of bug fixes to Xalan-Java and TrAX. 
+     We have also enhanced the ApplyXSLT servlet. It can now be set up to use a compiled Templates object to respond to multiple
+     client transformation requests involving the same stylesheet.</p>
+<p>Core source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>costin@apache.org<b>
+<i> on </i>
+</b>03/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor StylesheetHandler.java
+ java/src/org/apache/xpath Expression.java XPath.java
+ XPathContext.java
+ java/src/org/apache/xpath/compiler Compiler.java
+ XPathParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Renamed "assert()" to "assertion()".
+
+ Assert can be a keyword, and brake the compilation.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>03/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer KeyWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Throw an error message if the key name in a key function was not defined<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>03/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Reworked "chunk growth" algorithm again. Growing mode not
+ yet adequately tested, but fixed-size mode (which is what Xalan
+ is currently using) is simpler code and shows improved performance.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>03/20/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Utility class to check your JVM environment for common problems<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>03/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added more .jar sizes to jarVersions listing<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>03/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>We've reworked the algorithm again. The fixed-chunk-size mode (initial
+ and max. chunk sizes equal) runs essentially unchanged, though with a
+ few cycles less overhead. The variable-chunk-size mode now uses a
+ recursive-encapsulation scheme, where the first chunk may itself be a
+ FastStringBuffer whose total length equals one chunk; every so often
+ we push the existing data down one level and restart with a larger
+ chunk size. The new scheme has been stress-tested and is apparently
+ working. At this writing, however, Xalan uses only the fixed-size
+ mode (initial size equals max size), and no effort has been made to
+ find the optimial values for the tuning parameters. It does appear
+ likely that the best values will vary with usage patterns, but we hope
+ to find a good compromise.
+
+ I'll probably be putting this aside for a while to work on other things.
+ If someone wants to experiment with varying the block sizes and
+ how frequently they grow, and suggest good performance/memory
+ tradeoff points, go for it!<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>03/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Minor tweak to the javadoc.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>03/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>reset() versus setLength(0).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemForEach.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for bug# 1116, getMatchedTemplate throws ClassCastException.
+ Don't push template unless it is a xsl:template.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates OutputProperties.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Patches submitted by Patrick Moore &lt;patrickm@rioport.com&gt;
+ on 03/15/2001 01:25 PM:
+
+ This proposed change does a number of things:
+
+ 1. Problem: HTML output method does not uses XML output properties as
+ default.
+
+ In both org/apache/xalan/templates/output_html.properties and in the java
+ doc for
+ org/apache/xalan/templates/OutputProperties#getDefaultMethodProperties(Strin
+ g) It specifically states that all OutputProperties use the
+ output_xml.properties as a base. In the code this is not true for html. This
+ is now changed to match the comments
+
+ 2. Problem: unclear IOException.
+
+ If there was a problem loading the XML properties file. The wrapped
+ exception now will say which file was trying to be loaded. If the file did
+ not exist I was getting a very strange "Stream closed" IOException message.
+
+ 3. Problem: the streams were not closed after reading the property file.
+
+ Fixed.
+
+ 4. Problem: the double-check locking mechanism does not work in Java (see
+ bug #919)
+
+ &lt;http://www.javaworld.com/javaworld/jw-02-2001/jw-0209-toolbox.html&gt;
+
+ 5. QUESTION: now if there is a default properties (i.e.
+ output_xml.properties has been loaded) but the expected properties file does
+ not exist a error message will be printed to System.err and the processing
+ will continuing using just the default properties (output_xml.properties) I
+ felt that this is the best behavior.
+
+ (comment by sboag: I think it's better to
+ throw a runtime exception in this case.
+ but we can discuss this over time. For now
+ the patch was modified to do the runtime exception).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLTSchema.java
+ java/src/org/apache/xalan/stree SourceTreeHandler.java
+ java/src/org/apache/xalan/templates ElemForEach.java
+ ElemLiteralResult.java
+ java/src/org/apache/xalan/transformer QueuedSAXEvent.java
+ ResultTreeHandler.java TransformerImpl.java
+ java/src/org/apache/xml/utils BoolStack.java
+ java/src/org/apache/xpath XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>This check-in contains a couple things that overlapped on my
+ system, so I'm checking them in together.
+ 1) Unfinished (in progress) implementation of TransformSnapshot mechanism,
+ which will hopefully allow a result ContentHandler to take a snapshot
+ at a given point, and the restart execution from that point at some
+ later time. For tooling support.
+ 2) Check to make sure SourceTreeHandler isn't being entered twice,
+ which is related to the cocoon bug from a couple of weeks ago. This
+ will just help diagnose such a problem in the future.
+ 3) Removed the error stack trace print from postExceptionFromThread.
+ 4) Report exception in SourceTreeHandler#endDocument after
+ the join, if we can determine that the posted exception won't be
+ caught elsewhere.
+ 5) removed some catches that simply rethrew the exception
+ (thanks to Patrick Moore &lt;patrickm@rioport.com&gt;).
+ See my note on 3/27/2001 to Patrick for more info
+ on the last two.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/27/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/transformer TransformSnapshot.java
+ TransformSnapshotImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Unfinished (in progress) implementation of TransformSnapshot mechanism,
+ which will hopefully allow a result ContentHandler to take a snapshot
+ at a given point, and the restart execution from that point at some
+ later time. For tooling support.on the last two.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>03/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor
+ ProcessorStylesheetElement.java
+ ProcessorTemplateElem.java StylesheetHandler.java
+ XSLTElementDef.java XSLTElementProcessor.java
+ XSLTSchema.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Try to catch element order and required element errors during stylesheet 
+object creation. This new code adds an order and a required field to 
+XSLElementDef objects where it is applicable.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>04/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix bugzilla bug 1170. If we're trying an xsl:apply-imports at the top level 
+(ie there are no
+ imported stylesheets), we need to indicate that there is no matching template 
+and prevent and infinite recursion by using the built-in template.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>04/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/extensions MethodResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Code cleanup submitted by Art Welch &lt;art_w@EASTPOINT.COM&gt;.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils TreeWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add locator support to TreeWalker<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>04/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ QueuedStartElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Small fix made for getCurrentNode.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>04/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils TreeWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Commented out extra call to getData()... this could be a big performance
+ improvement for some stylesheets.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ TransformSnapshotImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Additional support for tooling. Allow tools to take a snapshot of context and 
+restart execution at that point.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor
+ XSLTElementProcessor.java
+ java/src/org/apache/xalan/res XSLTErrorResources.java
+ java/src/org/apache/xalan/transformer
+ TransformSnapshotImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Misc stuff left out from previous check in<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/functions FuncCurrent.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Don't assume that the object returned by getSubContextList() is a 
+PredicatedNodeTest object.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor ProcessorInclude.java
+ TransformerFactoryImpl.java
+ java/src/org/apache/xalan/transformer
+ TransformerIdentityImpl.java
+ java/src/org/apache/xml/utils TreeWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Create new TreeWalker constructor that takes a systemId parameter. Change 
+TreeWalker to change fields in the locator and not set it for each node.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>04/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath XPath.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix Bugzilla bug:
+ PR: 1106
+ Submitted by: elharo@metalab.unc.edu<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>04/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql QueryParameter.java
+ SQLExtensionError.java XConnection.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Minor Javadoc updates (add @author name, remove declared but unthrown @throws)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>04/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql Column.java
+ ColumnAttribute.java ColumnData.java
+ ColumnHeader.java Row.java RowSet.java
+ StreamableNode.java XConnection.java
+ XStatement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Support for Streamable Mode- John Gentilin<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>04/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/objects XObject.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Resolve bugzilla bug 1015 
+&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1015&gt;.
+ Fix prevents null pointer exceptions when null non-XSLT arguments are
+ passed to an extension function.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>04/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/extensions MethodResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Resolve bugzilla bug 1015 
+&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1015&gt;.
+ Fix prevents null pointer exceptions when null non-XSLT arguments are
+ passed to an extension function.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix copy/paste error. Want to use TransformerFactoryImpl's class loader.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ TransformSnapshotImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Keep a copy of current contextNodeList is there is one<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>04/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt EnvironmentCheck.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added checkDirForJars() which checks java.ext.dirs as well now<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>04/26/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/javax/xml/transform package.html
+ java/src/javax/xml/transform/dom package.html
+ java/src/javax/xml/transform/sax package.html
+ java/src/javax/xml/transform/stream package.html<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add package.html for each package in javax.xml.transform.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>04/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Resolve bug 1496 &lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1496&gt; 
+where xsl:param statements were not being reset properly if the TransformerImpl 
+was reused.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>04/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/stree DocImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for #1561<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>04/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/functions FuncExtFunction.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Resolve bugzilla bug 1373 
+&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1373&gt;.
+ Added code to support return of Integer or Long by an external function.
+ Code was contributed by Patrick Moore &lt;patmoore@ieee.org&gt;.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>costin@apache.org<b>
+<i> on </i>
+</b>05/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/javax/xml/transform/stream StreamResult.java
+ StreamSource.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Small fix to avoid file:////path that may fail on some JDK.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>05/04/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql package.html<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Preliminary updates for John G's work.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>05/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Check for a null contextNodeList before returning its clone<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>05/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/stree StreeDOMBuilder.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Set the element's level correctly, before we process attributes.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>05/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ TransformerIdentityImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Resolve bugzilla 1648 
+(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1648).
+ TransformerIdentityImpl was improperly using an old LexicalHandler when 
+invoked for a second transform.
+ This bug only affects identity transforms with StreamResults.
+ Many thanks to John Keyes &lt;johnkeyes@yahoo.com&gt; for reporting this bug.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>05/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated version number to 2.1.0<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>05/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated version number to 2.1.0<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>05/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/functions FuncExtFunction.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Change submitted by Patrick Moore &lt;patmoore@ieee.org&gt; as part of bugzilla 
+1373 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1373).
+ Return value from extension function is now generalized so that all 
+derivatives of Number are now properly handled.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>05/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLTSchema.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Set the correct order of xsl:include elements<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>johng@apache.org<b>
+<i> on </i>
+</b>05/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql Column.java
+ ColumnAttribute.java ColumnData.java
+ ColumnHeader.java ConnectionPool.java
+ DefaultConnectionPool.java ExtensionError.java
+ PooledConnection.java QueryParameter.java Row.java
+ RowSet.java SQLExtensionError.java
+ StreamableNode.java XConnection.java
+ XConnectionPoolManager.java XStatement.java
+ package.html<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updates Javadocs
+ Submitted by:John Gentilin mailto://johnglinux@eyecatching.com<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>05/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Correct typo introduced in revision 1.30 causing problems with transforms on 
+Unix platforms.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>05/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemChoose.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Correct bugzilla bug 1748 
+&lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1748&gt;.
+ When evaluating xsl:when, the xsl:choose element was used to resolve 
+namespace prefixes instead of
+ the xsl:when element itself. This caused namespace prefixes defined on the 
+xsl:when to be ignored.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>costin@apache.org<b>
+<i> on </i>
+</b>05/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/javax/xml/parsers DocumentBuilderFactory.java
+ SAXParserFactory.java
+ java/src/javax/xml/transform TransformerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Use the context class loader if available.
+
+ The implementation is based on ExtensionHandler, and it's needed in order
+ to work in certain environments ( like tomcat ).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>costin@apache.org<b>
+<i> on </i>
+</b>05/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/extensions ExtensionHandler.java
+ ExtensionHandlerGeneral.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Make getClassForName a public method. There are few other places in xalan
+ where Class.forName is used, and this can create problems in some cases
+ where the Thread.getContextClassLoader should be used.
+
+ getClassForName uses introspection to call getContextClassLoader
+ ( so it works in JDK1.1 ).
+
+ In ExtensionHandlerGeneral, use the thread loader to find BSF ( it may be
+ possible that xalan is installed in CLASSPATH, but BSF is in a webapp ).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>costin@apache.org<b>
+<i> on </i>
+</b>05/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor
+ CompilingStylesheetHandler.java
+ java/src/org/apache/xalan/serialize SerializerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>2 more instances where Class.forName was used.
+
+ Use the method in ExtensionHandler for consistency ( we could move it in
+ org.apache.xml.utils, but for now it's easier to just use it as it is )<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>costin@apache.org<b>
+<i> on </i>
+</b>05/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/stree SourceTreeHandler.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>This is the "thread pooling hook".
+
+ It slightly changes the API used to create and wait for the transform thread.
+ Instead of using threadCreate() and Thread.start() that creates a new thread
+ and thread.join() that waits for a thread to end, we now use a 
+ThreadControler
+ class that has the equivalent methods:
+ - run( Runnable ) - executes a task in a thread. The default implementation
+ is identical with what we had, using new Thread() and start()
+ - waitTread() - waits for a task to end. The default impl. is identical with
+ the previous code, using thread.join().
+
+ Someone wanting to use a thread pool for xalan will have to extend
+ the ThreadControler and override the 2 methods, then call setThreadController.
+
+ Xalan itself doesn't implement a thread pool right now ( for mosts uses it's
+ not even needed - if you just do few transforms for example ), instead
+ a server that runs xalan could plug it's own thread pool.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>Gary L Peskin &lt;garyp@firstech.com&gt;<b>
+<i> on </i>
+</b>05/15/2001<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+&gt; Use the context class loader if available.
+&gt;
+&gt; The implementation is based on ExtensionHandler, and it's needed in order
+&gt; to work in certain environments ( like tomcat ).
+&gt;
+&gt;<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>05/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql ExtensionError.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed "conflict" in javadoc comments.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>05/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql package.html<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Editing pass.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>05/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc TransletOutputHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug # 1406 fixed, omit xml header implemented<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>05/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Update Javadoc and remove commented out reference to properties file
+ PR:Bugzilla1627<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>05/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer ResultTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Resolve bug 1330 &lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1330&gt;.
+ setContentHandler failed to also reset m_lexicalHandler if the ContentHandler
+ was also a LexicalHandler. This caused the old LexicalHandler to be used 
+which
+ was pointing to a previous result tree.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>05/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Resolve bug 1762 &lt;http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1762&gt;.
+ TransformerFactoryImpl's URIResolver was not propagated to created 
+Transformers.
+ Modified code to propagate.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>05/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils TreeWalker.java
+ SystemIDResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Catch SecurityException whenever accessing System.getProperty("user.dir");
+ minor javadoc update<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>05/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemCopy.java
+ ElemValueOf.java
+ java/src/org/apache/xalan/transformer TreeWalker2Result.java
+ java/src/org/apache/xpath/functions FuncLast.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for bugs reported by the Eclipse folks for TransformState, where
+ some operations (xsl:value-of, xsl-copy) were not pushing the
+ current node on the current node stack. Addresses
+ http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1524.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>05/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates OutputProperties.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Catch SecurityException as needed
+ PR: Bugzilla1258<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>05/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates OutputProperties.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to the following bug reported by dims@yahoo.com:
+
+ loadPropertiesFile method in org\apache\xalan\templates\OutputProperties.java 
+does not fall back
+ to the Thread Context Class Loader to load properties files like 
+output_xml.properties etc. This
+ is causing problems in ServletExec_3_1+C2.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>05/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates OutputProperties.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Correct implementation of ContextClassLoader to support case where properties 
+file is to be loaded by a different ClassLoader than the OutputProperties 
+class. Thanks to Davanum Srinivas &lt;dims@yahoo.com&gt; for this code and for 
+reporting this bug.
+ loadPropertiesFile should eventually be moved into a thread-specific class.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>05/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor
+ TransformerFactoryImpl.java
+ java/src/org/apache/xalan/serialize CharInfo.java
+ java/src/org/apache/xpath/functions FuncSystemProperty.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Modify getResourceAsStream calls to use the contextClassLoader, if available.
+ This is a temporary fix until we can centralize this function.<br />
+<br />
+</li>
+</ul>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">This release includes no updates of the compatibility source code.</td>
+</tr>
+</table>
+ 
+ 
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.0.1</h3>
+<p>This release includes a number of bug fixes to the Xalan-Java and TrAX core and Xalan-Java 1 compability API. We have also</p>
+<ul>
+  <li>Entered all known Xalan-Java 2 <a href="jira.html">bugs</a> in the Apache Bugzilla database<br />
+<br />
+</li>
+  <li>Added support for using custom URIResolver, EntityResolver, and ContentHandler implementations with the <a href="commandline.html">command-line utility</a>
+<br />
+<br />
+</li> 
+  <li>Upgraded from Ant 1.2 to Ant 1.3 for our <a href="builds.html">builds</a> (the new ant.jar is in the bin directory).</li>
+</ul>
+<p>Core source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes ChildWalkerMultiStep.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for bug reported by "Chris P. McCabe" &lt;chris_mccabe@choicehotels.com&gt;
+ 02/06/2001 06:55 PM.
+ Defensive fix for if the last used walker is null, then don't check to
+ see if it is a fast walker! Without this, a null pointer exception is
+ very possible.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixes for exceptions being thrown that weren't being passed through
+ the error listener.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes FollowingWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for bug reported by Dave Haffner &lt;dave.haffner@xmls.com&gt;
+ 02/06/2001 04:03 AM
+ In parentNode(), don't screen out nextAncestor, since the parent
+ is never actually returned. This sets things up correctly for firstChild
+ and nextSibling.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes PrecedingWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for bug reported by Dave Haffner &lt;dave.haffner@xmls.com&gt;
+ 02/06/2001 04:03 AM
+ In nextSibling(), don't return null if isAncestorOfRootContext, instead
+ do next.getFirstChild().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath SourceTreeManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for bug reported by anders.domeij@uc.se
+ 02/07/2001 09:35 AM
+ removed extra bogus TransformerException decl in resolveURI<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/stree SourceTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix bug reported by Jason Harrop &lt;jharrop@bigpond.net.au&gt;
+ 02/07/2001 08:12 PM
+ Don't process comment or whitespace events if inside a startDTD/endDTD
+ event.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/axes WalkerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>In indirect response to bug posted by "Thee Boon Hoo" &lt;theebh@newstakes.com&gt;
+ 02/07/2001 09:37 PM
+
+ "//table[1]" patterns would give one node
+ when they should have given 2, when applied to Boon Hoo's
+ source.
+ "//table[1]" is equivelent to
+ "/descendant-or-self::node()/table[1]",
+ and so must return the first table child
+ of each table-inst element.
+
+ An optimization was optimizing this to
+ "/descendant-or-self::table, which is
+ fine as long as indexing isn't used. Since
+ we can not tell until runtime if indexing
+ is being used, we have to turn of this
+ optimization for all predicated "//foo[xx]"
+ patterns.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor StylesheetPIHandler.java
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Patch for Dmitri IIyin to use the specified URIResolver.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemNumber.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Number Expression should be evaluated then rounded up.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Create a document fragment for the output node, for -flavor d2d.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/compiler Compiler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Better error message when quo is used.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemCallTemplate.java
+ ElemChoose.java ElemCopy.java ElemFallback.java
+ ElemIf.java ElemLiteralResult.java
+ ElemTemplate.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Remove extra method/call to TransformerImpl.executeChildTemplates()<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/patterns NodeTest.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Return an empty string instead of null from getLocalName() when the
+ nodetest does not have a name. Encountered with the SQL extension,
+ in response to bug reported by "Michael Kay" &lt;mhkay@iclway.co.uk&gt;,
+ 02/08/2001 08:57 AM.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql ColumnData.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>In getData() return an empty string instead of null if there is
+ no data to be obtained.
+ In response to bug reported by "Michael Kay" &lt;mhkay@iclway.co.uk&gt;,
+ 02/08/2001 08:57 AM.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>02/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/extensions MethodResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Correct ConversionInfo array for Node-Set and RTF. Remove DocumentFragment 
+from RTF and replace with NodeList. Remove duplicate Boolean from both. Fix 
+Boolean conversion to make java.lang.Boolean higher than string.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql ColumnHeader.java
+ RowSet.java XStatement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Use null nodetest to mean the same as "node()". This fixes a bug reported
+ by "Voytenko, Dimitry" &lt;DVoytenko@SECTORBASE.COM&gt;
+ where &lt;xsl:copy-of select="sql:query(...)"/&gt;
+ crashes with NullPointerException, i.e.
+ there are cases where we really don't want
+ to set the NodeTest.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/compiler XPathParser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Check for null token before checking if it is a letter<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ TransformerIdentityImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix made for bug reported by "Glencross, Christian" 
+&lt;Christian.Glencross@gs.com&gt;
+ on 02/16/2001 10:18 AM.
+ Xerces 1.2.3 SAX parser calls
+ handler.setDocumentLocator() before handler.startDocument().
+ TransformerIdentityImpl.m_resultContentHandler isn't initialised until
+ TransformerIdentityImpl.startDocument() is called.
+ Added lazy construction of result handler
+ in setDocumentLocator, in addition to
+ startDocument.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>02/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib Extensions.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Correct implementation of string value of a node.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>02/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql Column.java
+ ColumnAttribute.java ColumnData.java
+ ColumnHeader.java Row.java RowSet.java
+ StreamableNode.java XConnection.java
+ XStatement.java package.html<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added experimental usage metatag to all classes in this package,
+ and an explanatory note to package.html.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/stree ElementImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bug fix attributed to Norman Walsh &lt;ndw@nwalsh.com&gt;, on
+ 02/20/2001 09:50 AM. if the attribute 'name' doesn't occur in the AttList, 
+the
+ result of getIndex(name) is -1, but
+ getChildAttribute() would incorrectly
+ return the first attribute. Fix returns
+ null if index &lt; 0.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToXML.java
+ java/src/org/apache/xalan/transformer
+ TransformerIdentityImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Implement DeclHandler for identity transforms<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>02/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for bug originally reported by Daryl Beattie &lt;DarylB@screamingmedia.com&gt;
+ on 02/14/2001 04:16 PM. A hang was occuring inside the use
+ of a Result Tree Fragment. When the result tree fragement was
+ being created, the Redirect extension was being called, which
+ called createResultContentHandler which set the ContentHandler
+ in the Transformer, but not in the ResultTreeHandler. Then, Redirect
+ called Transformer#executeChildTemplates(
+ ElemTemplateElement elem, Node sourceNode, QName mode, 
+ContentHandler handler)
+ which saves the reference to the original content handler in
+ the transformer, and then sets the new one by calling setContentHandler,
+ which sets the ContentHandler in the ResultTreeHandler as well
+ as the Transformer. When it tried to restore the old ContentHandler,
+ it restored the value in the ResultTreeHandler to a Serializer, instead
+ of the correct ContentHandler. When transformToRTF then called
+ endDocument on it's resultTreeFragment, the event was sent
+ to the Serializer instead of the SourceTreeHandler, and thus the
+ isComplete flag was not set, and thus the hang. (whew!)
+ The fix is in executeChildTemplates save the value of the
+ resultTreeHandler's contentHandler as well as Transformer's
+ content handler, and restore them both. A more architectual fix
+ could be made, but not without high risk, so I think this is the best
+ and safest way to fix it.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>02/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTInfo.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed version to 2.0.1<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>02/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor XSLProcessorVersion.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed version to 2.0.1<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>02/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Update text of error messages
+ Submitted by: Andreas Zehnpfund<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>02/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Update printArgOptions() with better text and to better reflect actual
+ options that are currently supported; catch missing -IN argument<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>jkesselm@apache.org<b>
+<i> on </i>
+</b>03/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/client XSLTProcessorApplet.java
+ java/src/org/apache/xalan/processor StylesheetHandler.java
+ TransformerFactoryImpl.java
+ java/src/org/apache/xalan/stree DocImpl.java
+ StreeDOMBuilder.java TextImpl.java
+ java/src/org/apache/xalan/templates OutputProperties.java
+ java/src/org/apache/xalan/xslt Process.java
+ java/src/org/apache/xml/utils FastStringBuffer.java
+ java/src/trax trax.properties<br />
+<b>
+<i>Committer's log entry: </i>
+</b>New approach to FastStringBuffer, and changes needed to support it.
+ We still need to do some serious work on both the initial values of the
+ tuning parameters and the heuristics driving the "chunk growth" algorithms.
+ Currently set for fixed-sized chunks of 8Kch in main tree, .5Kch in RTF.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemElement.java
+ ElemForEach.java ElemLiteralResult.java
+ java/src/org/apache/xalan/transformer
+ ClonerToResultTree.java QueuedSAXEvent.java
+ QueuedStartDocument.java QueuedStartElement.java
+ ResultTreeHandler.java TransformerImpl.java
+ TreeWalker2Result.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=741.
+
+ 1) ResultTreeHandler now implements the TransformState interface.
+ 2) Queued state such as the current node and the current template is stored 
+as part of QueuedStartElement. Storage will only occur if the ContentHandler 
+implements TransformClient.
+ 3) When state is requested (for instance TransformState#getCurrentElement()), 
+if the queued element is null or not pending (for instance, in a characters 
+event), it will get the state from the transformer, otherwise it will get the 
+state from the queued element.
+
+ Other fixes were attempted for this problem, including trying to
+ get rid of queueing altogether, and flushing a bit earlier before
+ the state was pushed on the various stacks, but both of
+ these had show-stopping issues (see discussions
+ on xalan-dev).
+
+ Note that for the moment the ContextNodeList is node
+ cloned as it needs to be in order for
+ TransformState#getContextNodeList.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>03/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemParam.java
+ java/src/org/apache/xpath Arg.java VariableStack.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>The field Arg.isParamVar was attempting to serve two functions: to indicate 
+variable Frame entries which are not currently activated and to indicate Frames 
+containing parameters passed with xsl:with-param. When processing was finished 
+for a node in a node-set, the isParamVar flag was turned on to indicate the 
+Frame slot was available. Unfortunately, this also indicated that the item was 
+passed as a parameter which it wasn't. This fix changes isParamVar into to 
+fields, isAvailable which indicates that the slot is available and 
+isFromWithParam indicating the Frame slot came from an xsl:with-param or a 
+top-level parameter passed in via the tranformerImpl.setParameter() API.
+ I have tested this change against the conformance suite and had no 
+regression. I've also submitted a test case which fails on the existing 
+codebase but works okay after this fix.
+ It is possible that I've missed something with regard to the API setParameter 
+calls but we can fix those if problems are reported.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>03/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils FastStringBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Correct operation when length of content to be appended is zero.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>03/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToXML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix closing out doctype declaration<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>03/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Change SystemIdResolver to default to user.dir if the base URI is null<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>03/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java
+ java/src/org/apache/xpath VariableStack.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Parameters set with setParameter were available to stylesheet as variable 
+references ($myParam) even though there was no xsl:param element to receive it.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>03/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer
+ TransformerIdentityImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Check if there is a DeclHandler before calling it.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils WrappedRuntimeException.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Patch attributed to Patrick Moore &lt;patrickm@rioport.com&gt; on 03/09/2001.
+ Adds another constructor to pass in the error message.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemAttribute.java
+ ElemElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Checkin addresses http://nagoya.apache.org/bugzilla/show_bug.cgi?id=923.
+ elemAttribute now derives from elemElement so the basic name resolution
+ code can be shared. Breaks attribset24 test, but I think the newer
+ behavior is better. New virtual methods overloaded by elemAttribute are
+ constructNode, resolvePrefix, and validateNodeName. Also, in the
+ elemAttribute#execute method, checks are made to make sure an
+ element is pending.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils SystemIDResolver.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added getAbsoluteURI(String url), and merge
+ with Myriam's changes.
+ Part of fix for problem found when
+ investigating http://nagoya.apache.org/bugzilla/show_bug.cgi?id=906.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Call getAbsoluteURI(String url) for the source URL.
+ Fix for problem found when
+ investigating http://nagoya.apache.org/bugzilla/show_bug.cgi?id=906.
+ This tries to force us always having an absolute URL in the processing
+ stack as the base URL, which should be OK, I hope.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Call getAbsoluteURI(String url) for the source URL.
+ Fix for problem found when
+ investigating http://nagoya.apache.org/bugzilla/show_bug.cgi?id=906.
+ This tries to force us always having an absolute URL in the processing
+ stack as the base URL, which should be OK, I hope.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/transformer QueuedEvents.java
+ QueuedStartElement.java ResultTreeHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>The user for http://nagoya.apache.org/bugzilla/show_bug.cgi?id=741 reported
+ problems on testing, so these changes are a re-fix. He tested and
+ everything seems OK now. There actually may be a slight performance
+ improvement involved here.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize SerializerToHTML.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Applied patches from dmitri.ilyin@memiq.com (Dmitri Ilyin)
+ from http://nagoya.apache.org/bugzilla/show_bug.cgi?id=705.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath XPathAPI.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Applied patch submitted by nboyd@atg.com (Norris Boyd)
+ at http://nagoya.apache.org/bugzilla/show_bug.cgi?id=702.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/serialize Encodings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Applied patch submitted by havardw@underdusken.no (H嶡rd Wigtil).
+ Also added "XXX-X" variants for all "XXX_X" java encoding names.
+ I'm not totally confident that this is the right thing to do, but I can't
+ see that it will hurt, except to make the table a bit larger. I
+ would prefer to be safe and make sure we handle the encoding.
+ See my comments in http://nagoya.apache.org/bugzilla/show_bug.cgi?id=718.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates ElemTemplateElement.java
+ StylesheetRoot.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Minor changes to better bottleneck throwing of Runtime exceptions
+ during processing.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Catch all exceptions thrown when processing stylesheet, and send
+ them to the error listener. There's probably some danger of having
+ the same error sent to the error listener multiple times, but better too
+ many reports, than none, I guess.
+ This addresses http://nagoya.apache.org/bugzilla/show_bug.cgi?id=906.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql XConnection.java
+ XStatement.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/lib/sql ConnectionPool.java
+ DefaultConnectionPool.java ExtensionError.java
+ PooledConnection.java QueryParameter.java
+ SQLExtensionError.java XConnectionPoolManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>These are John Gentilin &lt;johnglinux@eyecatching.com&gt;
+ patches for connection pooling and parameterized
+ queries. These should be considered to be unstable
+ right now, as we are still working on some things.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor ProcessorInclude.java
+ TransformerFactoryImpl.java
+ java/src/org/apache/xalan/serialize SerializerToXML.java
+ java/src/org/apache/xalan/stree StreeDOMHelper.java
+ java/src/org/apache/xalan/transformer ResultTreeHandler.java
+ TransformerIdentityImpl.java TreeWalker2Result.java
+ java/src/org/apache/xml/utils AttList.java TreeWalker.java
+ java/src/org/apache/xpath DOM2Helper.java XPathContext.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>The DOM2Helper#isNodeAfter(Node node1, Node node2) method
+ has been fixed so that it no longer does the try/catch thing if one
+ of the nodes doesn't implement DOMOrder, but instead does an
+ instanceof test. In StreeDOMHelper, it overloads this method and
+ *does* do the try/catch business, since almost always both nodes
+ will implement DOMOrder in this case, and this will be faster than
+ an instanceof test. Also, in various classes, I did some stuff to try
+ and make sure that a DOM2Helper wasn't being created and used
+ when a StreeDOMHelper is needed.
+
+ This addresses http://nagoya.apache.org/bugzilla/show_bug.cgi?id=800
+ and should give a good performance fix for foreign DOM processing.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath/patterns NodeTest.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Xerces at some point decided to use "" instead
+ of null for null namespaces. There has been a
+ discussion between Gary Peskin in
+ Joe Kessleman on xalan-dev about this,
+ but I hadn't been fully keeping up the the
+ thread that well, and missed it's relation to
+ this problem. I include some of the discussion
+ at the end of this note. I made Xalan be able to
+ compare a "" namespace to null for now, until
+ we get this resolved.
+
+ The gist of the discussion on xalan-dev regarding this is:
+
+ &gt;&gt;1. Declare the Xerces-J support of schemas to have a bug and ask that
+ &gt;&gt;Xerces be corrected to always use a null namespace URI to indicate that
+ &gt;&gt;there is no default namespace. Even if the Xerces people change this
+ &gt;&gt;behavior, is this correct?
+ &gt;
+ &gt; Yes. If your description of the problem is accurate (you should probably
+ &gt; submit a more detailed case so it can be reproduced in the lab), this is a
+ &gt; parser/DOM-builder bug.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>costin@apache.org<b>
+<i> on </i>
+</b>03/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql ExtensionError.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed ( commented out ) dump() method and the imports in ExtensionError.
+
+ So far the method doesn't seem to be used ( no warning in the compile ).
+
+ The problem is that this method is breaking the build with crimson ( since
+ it uses xerces-specific classes ). It is possible to implement it on top
+ of the serialization classes that are part of xalan - if someone needs the
+ method I'll try to port it.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils TreeWalker.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added back in the TreeWalker(ContentHandler contentHandler)
+ constructor, because I'm worried I'll break more dependent code.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>03/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/res XSLTErrorResources.java
+ java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Implement new arguments for the command line interface: URIResolver, 
+EntityResolver and ContentHandler<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>03/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/templates FuncFormatNumb.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix error message to say that 2 or 3 arguments are required.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>03/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/processor ProcessorLRE.java
+ java/src/org/apache/xalan/res XSLTErrorResources.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Better error message for missing or incorrect XSLT namespace declaration in a 
+stylesheet<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>garyp@apache.org<b>
+<i> on </i>
+</b>03/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib Redirect.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java
+ java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Remember the Result that was used to trigger the transform. Access that 
+result from the Redirect extension to make file references in Redirect relative 
+to the original result URI.
+ If this is not available, references are relative to the source URI.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xpath VariableStack.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added protection for null pointer exception that I discovered when
+ running some Cocoon tests. Since I've never seen this before,
+ I assume this is related to the changes that Gary made, but am
+ unsure as it's 4:00 in the morning and I'm too tired to look into it deeply.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>03/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Remove check for missing -IN arg; there are a number of use
+ cases for calling Process.main without an XML document<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>costin@apache.org<b>
+<i> on </i>
+</b>03/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xslt Process.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A (last ? ) place where XMLReaderFactory was used without
+ trying jaxp first. I used the same code that is used in all other
+ places in xalan.
+
+ With this change, the parser defined in XSLTInfo.properties will be used
+ only if jaxp is not available.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>03/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xml/utils StringVector.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added missing @serial Javadoc tags.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/lib/sql ConnectionPool.java
+                        DefaultConnectionPool.java ExtensionError.java
+                        SQLExtensionError.java XConnection.java
+                        XConnectionPoolManager.java XStatement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Update from John Gentilin &lt;johnglinux@eyecatching.com&gt; to
+  fix connection cleanup.<br />
+<br />
+</li>
+</ul>
+<p>Compatibility source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java
+ XSLTResultTarget.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Implement some more methods for compatibility<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>02/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed javadoc for api that was just added back.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>02/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/compat_src/org/apache/xalan/xslt XSLTResultTarget.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed javadoc for api that was just added back.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix problem with calling the processor with a liaison<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix problem where source file was being parsed more than once and if using an 
+input stream, we would get a read error<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Set system id in stylesheet handler<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/compat_src/org/apache/xalan/xslt XSLTInputSource.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Call local setSystemId.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix problem with processing an input source created from a reader with no 
+systemId
+ Fix problem with reading an input source file twice if it has a PI<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>02/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/compat_src/org/apache/xalan/xslt StylesheetRoot.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add getOutputMethod API.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>dleslie@apache.org<b>
+<i> on </i>
+</b>03/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/compat_src/org/apache/xalan/xpath/xml
+ XMLParserLiaisonDefault.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Put in Apache copyright.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>sboag@apache.org<b>
+<i> on </i>
+</b>03/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/compat_src/org/apache/xalan/xpath/xml TreeWalker.java
+ java/compat_src/org/apache/xalan/xslt XSLTEngineImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Made changes for change to API for XalanJ2 TreeWalker, which
+ now requires that the DOM helper be created by the caller.</li>
+ </ul>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java version 2.0.0</h3>
+<p>Release 2.0 includes several bug fixes to the Xalan-Java and TrAX core and to the Xalan-Java 1 compatibility API. We also updated bsf.jar to the <a href="http://jakarta.apache.org/bsf/index.html">Bean Scripting Framework (BSF)</a> release candidate 2.2, which fixes a bug running JPython extensions.</p>
+<p>
+<b>Core bug fixes:</b>
+</p>
+<ul>
+  <li>A threading problem showed up when using multiple processors. We fixed it by using a separate XPathContext object to do whitespace node
+   matches (xsl:strip-space).<br />
+<br />
+</li>
+  <li>Fixed a bug running Norm Walsh's DocBook stylesheets by not setting the variable stack position if the FilterExprWalker is not owned by a
+  top-level NodeIterator.<br />
+<br />
+</li>
+  <li>Fixed a problem with null namespace being passed from xsl:element. This bug also surfaced while processing DocBook
+   stylesheets.<br />
+<br />
+</li>
+  <li>In the interest of stability, we now treat "unknown error in XPath" as a fatal error.<br />
+<br />
+</li>
+  <li>Added support in stylesheet processing instructions for "text/xml" and "application/xml+xslt" mime types.<br />
+<br />
+</li>
+  <li>Fixed tokenizing of stylesheet processing instructions to allow parameters to be passed to server in href attributes.<br />
+<br />
+</li>
+  <li>Fixed a bug passing Transformer creation error messages to ErrorListener when an ErrorListener has been set on
+   TransformerFactory.<br />
+<br />
+</li>
+  <li>When using an Exception to instantiate a FactoryConfigurationError (extends Error), we now propagate the Exception message to 
+  super().<br />
+<br />
+</li>
+  <li>Added defensive code to ElemTemplateElement for handling a null URI.<br />
+<br />
+</li>
+  <li>When using an Exception to instantiate a TransformerException (extends Exception), we now propagate the Exception message to super() 
+  rather than a generic message.<br />
+<br />
+</li>
+  <li>Fixed a bug (the generation of an unwanted entity reference) performing the identity transformation 
+  (see <a href="usagepatterns.html#serialize">Serializing output</a>) with an XML document containing a DOCTYPE
+   declaration.<br />
+<br />
+</li>
+   <li>Message manager modified so that the SourceLocator must always be passed in,
+  which will make a major difference in getting line number information.<br />
+<br />
+</li> 
+  <li>xsl:element's handling of namespace attribute and prefix in
+  name attribute changed so that it no longer manufactures prefixes...
+  it always tries its best to match the prefix entered.<br />
+<br />
+</li>  
+  <li>Bug fixed with namespace contexts in the stylesheet processor.
+  The bug could cause &lt;a xmlns:a="x"&gt;&lt;b&gt; to produce &lt;a xmlns:a="x"&gt;&lt;b xmlns:a="x"&gt;.<br />
+<br />
+</li>  
+  <li>Modified processing of xsl:message to enhance it as a debugging aid. Line numbers are now output with each
+  message. If the terminate attribute is true (the default is false) the message is sent to the console, and an exception is thrown with the
+  message "Stylesheet directed termination".<br />
+<br />
+</li>
+  <li>In TransformerException, check that the cause != null when checking for a contained exception.<br />
+<br />
+</li>
+  <li>Fixed a problem validating non-namespaced attributes and a problem allowing non-namespaced attributes to be children of the
+   stylesheet element.<br />
+<br />
+</li>
+   <li>Fixed checking of number of arguments in document() function.<br />
+<br />
+</li>
+   <li>Fixed problem with mutation of templates at run time. Templates resolution now takes place during the compose() method.<br />
+<br />
+</li>
+   <li>Fixed some minor threading issues in org.apache.xalan.stree (Child, Parent, ElementImpl, SourceTreeHandler).<br />
+<br />
+</li>
+   <li>Synchronized TrAX API functions subject to mutation to prevent mutation during a transformation.<br />
+<br />
+</li>
+   <li>Fixed bug reported by Jano Elovirta: substring() was returning an error if the start index is larger than the string.<br />
+<br />
+</li>   
+   <li>Set StringKey.toString() to return the underlying String (m_str), thus avoiding a potential symmetry problem with the equals() method
+   reported by Ito Kazumitsu.<br />
+<br />
+</li>
+   <li>In response to note from Ito Kazumitsu, changed Java encoding name "EUCJIS" in FormatterToXML to "EUC_JP".<br />
+<br />
+</li>
+   <li>When Xalan creates a FileOutputStream, it now closes the stream before exiting.<br />
+<br />
+</li>
+   <li>Fixed handling of an exception that can be thrown while building a DOM.<br />
+<br />
+</li>
+   <li>Fixed a problem reported by Dimitry Voytenko serializing compiled stylesheets.<br />
+<br />
+</li>
+   <li>For support of applets, modified TransformerFactory System.getProperty() calls to catch SecurityExceptions.<br />
+<br />
+</li>
+   <li>Fixed a bug reported by Krishna Mohan Meduri setting output properties.<br />
+<br />
+</li>
+   <li>Fixed error recovery when xsl:element encounters a bad name or unresolvable prefix.<br />
+<br />
+</li>
+   <li>Added AbstractMethodError handling to existing NoSuchMethodError handling as a fallback to the XMLReaderFactory for XML parsers that do
+       not implement the JAXP parsers interface for creating an XMLReader<br />
+<br />
+</li>
+   <li>Fixed bug with cloned iterators reported by Tim Sean.<br />
+<br />
+</li>
+   <li>Fixed null pointer exception that could occur with getValue("xxx").<br />
+<br />
+</li>
+   <li>Fixed bug reported by Tim Sean handling the xml:space attribute.</li>
+</ul>
+<p>
+<b>Bug fixes in the Xalan-Java 1 compatibility API:</b>
+</p>
+<ul>
+  <li>Fixed ProblemListener (for processing error messages) to derive from Xalan-Java 2 ErrorHandler.<br />
+<br />
+</li>
+  <li>Fixed evaluation of stylesheet string parameters to conform to Xalan-Java 1 behavior (expressions for Xalan-Java 1 vs. String objects 
+  for Xalan-Java 2).<br />
+<br />
+</li>    
+  <li>Added XPathSupport and XPathSupportDefault, and fixed the derivation of XObject sub-types (XString, etc.).<br />
+<br />
+</li>
+  <li>Fixed bug with XSLTProcessor process(xmlIn, null, out) method so that it uses the StylesheetRoot (if one exists) that has been created
+   with the processStylesheet() method.</li>
+</ul>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java version 2.0.D07</h3>
+<p>Xalan-Java 2.0.D07 incorporates a <a href="usagepatterns.html#compat">Xalan-Java 1 compatibility jar</a>, some performance enhancements, and a number of bug fixes for bugs found in version 2.0.D06.</p>
+<ul>
+<li>Fixed handling of disable-output-escaping="no".  Previously, once it was turned on, it could not be turned off.<br />
+<br />
+</li>
+<li>Fixed a bug with whitespace handling where Xalan was incorrectly checking for whitespace 
+    stripping before collation of multiple whitespace events into a single text node.<br />
+<br />
+</li>
+<li>Whitespace stripping wasn't working with input DOMs before.  This is now fixed.<br />
+<br />
+</li>
+<li>Fixed many exception handling problems and problems with error reporting.<br />
+<br />
+</li>
+<li>Fixed a bug resetting parameters in Transformer clearParameters().<br />
+<br />
+</li>
+<li>Fixed a bug where CDATA sections were not matching the text() node test.<br />
+<br />
+</li>
+<li>Made better memory allocation problem with result tree fragments.<br />
+<br />
+</li>
+<li>Made result tree fragment parsing of numbers consistent with strings.<br />
+<br />
+</li>
+<li>Exceptions thrown from extensions should now be properly reported via the error listener.<br />
+<br />
+</li>
+<li>Fixed hard-coded stack dump set off by m_reportInPostExceptionFromThread variable.<br />
+<br />
+</li>
+<li>Fixed intermittent threading problem with text nodes being dropped.<br />
+<br />
+</li>
+<li>Fixed problem with variable evaluation inside of union expressions.</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java version 2.0.D06</h3>
+<p>We have fixed the bugs reported in Xalan-Java 2.0.D05. Along with several other enhancements, 
+we have also fixed a number of bugs found by testing and our users:</p>
+<ul>
+<li>Fixed some threading problems and improved support for handling Exceptions thrown in a secondary thread.<br />
+<br />
+Note: To support incremental output, Xalan-Java performs the transformation in a second thread while building the source tree in the main thread.<br />
+<br />
+</li>
+<li>Fixed problems encountered in piping (utilizing transformation output as input for another transformation).<br />
+<br />
+</li>
+<li>Fixed problems handling attributes and adding attributes to result tree.<br />
+<br />
+</li>
+<li>Added defensive checking for null entities, null namespaces, and empty strings passed in for URIs and local names.<br />
+<br />
+</li>
+<li>We now conform to the SAX convention of representing null namespaces with empty strings.<br />
+<br />
+</li>
+<li>Fixed a bug encountered evaluating a variable in a predicate expression applied to child nodes.<br />
+<br />
+</li>
+<li>Changed names of serializers from FormatterTo<b>
+<i>Xxx</i>
+</b> to SerializerTo<b>
+<i>Xxx</i>
+</b>. See 
+<a href="apidocs/org/apache/xalan/serialize/package-summary.html">Package org.apache.xalan.serialize</a>.<br />
+<br />
+</li>
+<li>Improved debugging support in a number of areas.</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java version 2.0.D05</h3>
+<p>All of the bugs reported in Xalan-Java 2.0.D01 have been fixed. The remainder of this section discusses two changes that we believe are of particular importance:</p>
+<p>
+<b>TrAX</b>
+</p>
+<p>The Transformation API for XML (TrAX) that Xalan-Java 2 implements has undergone substantial revisions since the release of Xalan-Java 2.0.D01. TrAX has joined the Java API for XML Parsing (JAXP) as part of the Sun® <a href="http://jcp.org/aboutJava/communityprocess/review/jsr063/">Java Specification Request 63</a>. Accordingly, the TrAX package names have changed. The conceptual organization has also changed somewhat: The primary transformation interfaces are defined in javax.xml.transform, with concrete classes for managing stream input/output, SAX parsers and ContentHandler, and DOM parsers and DOM trees in javax.xml.transform.stream, javax.xml.transform.sax, and javax.xml.transform.dom. For more information, see <a href="trax.html">TrAX (Transformation API for XML)</a>, and review <a href="usagepatterns.html">Usage Patterns</a>.</p>
+<a name="outputprops">‌</a>
+<p>
+<b>Output properties</b>
+</p>
+<p>The handling of xsl:output properties has changed: org.apache.xalan.serialize.OutputFormat and apache.xalan.templates.OutputFormatExtended were removed and replaced with org.apache.xalan.templates.OutputProperties. The SerializerFactory getSerializer() method now takes Properties rather than a String indicating the output method. You can replace <code>getSerializer("xml")</code>, for example, with <code>getSerializer(OutputProperties.getDefaultMethodProperties("xml"))</code>.</p>
+<p>HTML, XML, and text xsl:output properties are specified in property files in org.apache.xalan.templates: output_html.properties, output_xml.properties, and output_text.properties.</p>
+<p>You can start using the output properties defined in these files in your stylesheets. For example, you can turn URL escaping off in HTML output with<br />
+<code>{http\u003a//xml.apache.org/xslt}use-url-escaping=no</code>
+<br />
+and you can control indenting with<br />
+<code>{http\u003a//xml.apache.org/xslt}indent-amount=<b>
+<i>n</i>
+</b>
+</code>
+</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The colon after the "http" protocol must be escaped.</td>
+</tr>
+</table>
+<p>Character-to-entity mapping is specified in org.apache.xalan.serialize: HTMLEntities.res and XMLEntities.res. You can override entity ref 
+mapping from a stylesheet. For example:</p>
+<blockquote class="source">
+<pre>&lt;?xml version="1.0"?&gt;
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+         xmlns:xalan="http://xml.apache.org/xslt" version="1.0"&gt;
+
+  &lt;xsl:output xalan:entities="myentities.ent"/&gt;
+
+  &lt;xsl:template match="/"&gt;
+    &lt;out&gt;&amp;#125;&lt;/out&gt;
+  &lt;/xsl:template&gt;
+
+&lt;/xsl:stylesheet&gt;</pre>
+</blockquote>
+<p>=== myentities.ent ===</p>
+<blockquote class="source">
+<pre>quot 34
+amp 38
+lt 60
+gt 62
+lala 125</pre>
+</blockquote>
+<p>The output is:</p>
+<blockquote class="source">
+<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;out&gt;&amp;lala;&lt;/out&gt;</pre>
+</blockquote>
+<p>See also <a href="usagepatterns.html#outputprops">Setting output properties in your stylesheets</a>.</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/index.html b/xalan-j/index.html
new file mode 100644
index 0000000..b74ba7c
--- /dev/null
+++ b/xalan-j/index.html
@@ -0,0 +1,563 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Xalan-Java Version 2.7.2</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Xalan-Java Version 2.7.2</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>Xalan-J 2.7.2<br />
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Xalan-Java Version 2.7.2</h2>
+<ul>
+  <li>
+<a href="#whatisit">What is it?</a>
+</li>
+  <li>
+<a href="#current">How about this release?</a>
+</li>
+  <li>
+<a href="#moreinfo">For more information...</a>
+</li>      
+  <li>
+<a href="#license">Apache License Version 2.0</a>
+</li>  
+  <li>
+<a href="#notice">Notice file</a>
+</li>        
+  <li>
+<a href="#license1.1">Apache License Version 1.1</a>
+</li>
+</ul>
+         
+<a name="whatisit">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>What is it?</h3>
+    <p>Xalan-Java is an XSLT processor for transforming XML documents into 
+       HTML, text, or other XML document types. It implements <a href="http://www.w3.org/TR/xslt">XSL Transformations (XSLT) Version 1.0</a> and 
+       <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version 1.0</a> and can be used from the command line, in an applet or a 
+       servlet, or as a module in other program.</p>
+    <p>Xalan-Java implements the javax.xml.transform interface in 
+       <a href="https://jaxp.java.net/">Java API for XML Processing (JAXP) 1.3</a>.  This interface provides a modular
+       framework and a standard API for performing XML transformations, and utilizes system 
+       properties to determine which Transformer and which XML parser to use.</p>
+    <p>Xalan-Java also implements the javax.xml.xpath interface in JAXP 1.3, which provides an 
+       object-model neutral API for evaluation of XPath expressions and access to the evaluation 
+       environment.</p>
+    <p>Xalan-Java also builds on <a href="http://sax.sourceforge.net/">SAX 2</a> and <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/">DOM level 3</a>.</p>
+  
+    <p>For more information, see <a href="readme.html">the release notes</a>.</p>
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Xalan-Java version 1 is no longer supported and no longer available from xml.apache.org.</td>
+</tr>
+</table>
+
+
+<a name="current">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>How about this release?</h3>
+  <p>This release includes new features as well as a number of bug fixes. See the 
+  <a href="whatsnew.html">What's New</a> and <a href="readme.html#done">Release 
+  Notes</a> for more details.</p>
+  <p>Xalan-Java Version 2.7.2 works with Xerces-Java, and the distribution includes xercesImpl.jar from Xerces-Java 2.11.0.</p>
+  <p>The Xalan-Java implementation is in xalan.jar and serializer.jar. 
+  The SAX, DOM, and JAXP 1.3 interfaces are in xml-apis.jar.</p>
+
+
+<a name="moreinfo">‌</a>  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>For more information...</h3>
+  <p>For more information, go to <a href="overview.html">Xalan-Java Overview</a>, 
+   <a href="downloads.html">Xalan-Java Downloads</a>, <a href="getstarted.html">Getting Started
+   with Interpretive Processing</a> and <a href="xsltc_usage.html">Getting Started with XSLTC</a>.
+   All of the Xalan-Java documentation on this website is included in the Xalan-Java download, as are a number of
+   <a href="samples.html">Samples</a> to help you start using Xalan-Java to transform XML documents.</p>
+
+
+<a name="license">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Apache License Version 2.0</h3>
+<p>The Apache Software License Version 2.0 applies to all releases of Xalan-Java starting with 
+Version 2.6.0.  A copy of this license is included in the distribution.</p>
+<blockquote class="source">
+<pre>
+    
+    
+                                Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+</pre>
+</blockquote>    
+
+
+<a name="notice">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>NOTICE file</h3>
+<p>A NOTICE file that accompanies The Apache Software License Version 2.0 is also included
+in the Xalan-Java distribution..</p>
+<blockquote class="source">
+<pre>
+   ======================================================================================
+   ==  NOTICE file corresponding to the section 4d of the Apache License, Version 2.0, ==
+   ==  in this case for the Apache Xalan distribution.                                 ==
+   ======================================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   Portions of this software was originally based on the following:
+   
+     - software copyright (c) 1999-2002, Lotus Development Corporation., http://www.lotus.com.
+     - software copyright (c) 2001-2002, Sun Microsystems., http://www.sun.com.
+     - software copyright (c) 2003, IBM Corporation., http://www.ibm.com.
+     - voluntary contributions made by Ovidiu Predescu (ovidiu@cup.hp.com) on behalf of the 
+       Apache Software Foundation and was originally developed at Hewlett Packard Company. 
+</pre>
+</blockquote>
+
+
+<a name="license1.1">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Apache License Version 1.1</h3>
+<p>The Apache Software License, Version 1.1, applies to all versions up to and including Xalan Java 2.5.2.</p>
+<blockquote class="source">
+<pre>
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 1999-2003 The Apache Software Foundation.  All rights 
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Xalan" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation and was
+ * originally based on software copyright (c) 1999, Lotus
+ * Development Corporation., http://www.lotus.com.  For more
+ * information on the Apache Software Foundation, please see
+ * http://www.apache.org/.
+ */
+
+</pre>
+</blockquote>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Other licenses</h3> 
+ <p>For the licences that apply to the JARs other than xalan.jar, see the licenses and 
+    associated readme files in the root directory of this distribution.</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/overview.html b/xalan-j/overview.html
new file mode 100644
index 0000000..caa6cc4
--- /dev/null
+++ b/xalan-j/overview.html
@@ -0,0 +1,447 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Xalan-Java Overview</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Xalan-Java Overview</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>Overview<br />
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Xalan-Java Overview</h2>
+<ul>
+<li>
+<a href="#intro">Introduction</a>
+</li>
+<li>
+<a href="#features">Xalan-Java Features</a>
+</li>
+<li>
+<a href="#towork">Getting to work with Xalan-Java</a>
+</li>
+<li>
+<a href="#uptospeed">Getting up to speed with XSLT</a>
+</li>
+<li>
+<a href="#glossary">Glossary</a>
+</li>
+</ul>
+<a name="intro">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3>
+<p>Xalan-Java fully implements <a href="http://www.w3.org/TR/xslt">XSL Transformations (XSLT) Version 1.0</a> 
+   and the <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version 1.0</a>. XSLT is the first part of the XSL stylesheet language for 
+   XML. It includes the XSL Transformation vocabulary and XPath, a language for addressing parts of 
+   XML documents. For links to background materials, discussion groups, frequently asked questions, 
+   and tutorials on XSLT, see <a href="#uptospeed">Getting up to speed with XSLT</a>.</p> 
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">XSL also includes a vocabulary for formatting documents, which is not part of Xalan-Java. 
+      For more information, see <a href="http://www.w3.org/TR/xsl">Extensible Stylesheet Language (XSL) Version 1.0</a> and the <a href="http://xmlgraphics.apache.org/fop">Apache XmlGraphics FOP (Formatting Objects Project)</a>.</td>
+</tr>
+</table>
+<p>XSL stylesheets are written in the XSLT language. An XSL stylesheet contains instructions 
+   for transforming XML documents into XML, HTML, XHTML or plain text. In structural terms, an XSL
+   stylesheet specifies the transformation of one tree of 
+   nodes (the XML input) into another tree of nodes (the output or transformation result).</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The XSL stylesheet may generate and refer to cascading style sheets (<a href="http://www.w3.org/Style/CSS/">CSS</a>) as part of its output.</td>
+</tr>
+</table> 
+<p>In the following example, the foo.xsl stylesheet is used to transform foo.xml into foo.out:</p>
+<p>foo.xml:</p>
+<blockquote class="source">
+<pre>&lt;?xml version="1.0"?&gt;
+&lt;doc&gt;Hello&lt;/doc&gt;</pre>
+</blockquote>
+        <p>foo.xsl:</p>
+        <blockquote class="source">
+<pre>&lt;?xml version="1.0"?&gt; 
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;
+&lt;xsl:template match="doc"&gt;
+&lt;out&gt;&lt;xsl:value-of select="."/&gt;&lt;/out&gt;
+&lt;/xsl:template&gt;
+&lt;/xsl:stylesheet&gt;</pre>
+</blockquote>
+<p>foo.out:</p>
+<blockquote class="source">
+<pre>&lt;out&gt;Hello&lt;/out&gt;</pre>
+</blockquote>
+<p>By default, Xalan-Java uses Xerces-Java, but it may be configured with system properties to work with 
+   other XML parsers (see <a href="usagepatterns.html#plug">Plugging in a Transformer and 
+   XML parser</a>). The input may be submitted in the form of a stream of XML markup (from a URI, 
+   a character or byte stream, or another transformation), a SAX InputStream, or a DOM Node.</p>
+<p>Xalan-Java performs the transformations specified in the XSL stylesheet and packages a sequence of 
+   SAX events that may be serialized to an output stream or writer, used to build a DOM tree, or 
+   forwarded as input to another transformation.</p>
+
+
+<a name="features">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Xalan-Java Features</h3>
+<ul> 
+  <li>Includes an Interpretive processor for use in a tooling and debugging environment and 
+      a Compiling processor (XSLTC) for use in a high performance runtime environment.<br />
+<br />
+</li>
+  <li>Implements the relevant W3C specifications: <a href="http://www.w3.org/TR/xslt">XSL Transformations (XSLT) Version 1.0</a> and 
+      <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version 1.0</a>.<br />
+<br />
+</li>
+  <li>Implements <a href="https://jaxp.java.net/">Java API for XML Processing (JAXP) 1.3</a>, and builds on 
+      <a href="http://sax.sourceforge.net/">SAX 2</a> and <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/">DOM level 3</a>.<br />
+<br />
+</li>
+  <li>Implements the XPath API in <a href="https://jaxp.java.net/">JAXP 1.3</a>.<br />
+<br />
+</li>
+  <li>May be configured to work with any XML parser, such as
+      <a href="http://xml.apache.org/xerces-j/index.html">Xerces-Java</a>, that implements 
+      <a href="https://jaxp.java.net/">JAXP 1.3</a> (see <a href="usagepatterns.html#plug">Plugging in an XML
+      parser</a>).<br />
+<br />
+</li>
+  <li>Can process Stream, SAX or DOM input, and output to a Stream, SAX or DOM.<br />
+<br />
+</li>
+  <li>Transformations may be chained (the output of one transformation may be the input for
+      another).<br />
+<br />
+</li>
+  <li>May be run from the <a href="commandline.html">command line</a> for convenient file-to-file
+      transformations.<br />
+<br />
+</li>
+  <li>Includes an <a href="usagepatterns.html#applet">applet wrapper</a>.<br />
+<br />
+</li>
+  <li>May be used in a <a href="samples.html#servlet">servlet</a> to transform XML documents 
+      into HTML and serve the results to clients.<br />
+<br />
+</li>
+  <li>Supports the creation of <a href="extensions.html">Java and scripting language extensions</a>. 
+      and provides a growing library of extension elements and functions.</li>
+</ul> 
+
+
+<a name="towork">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Getting to work with Xalan-Java</h3>
+<p>For instructions and some suggestions about how to get started using the XSLT Interpretive
+   processor, see <a href="getstarted.html">Getting Started with Interpretive Processing</a>.</p>
+<p>For instructions and some suggestions about how to get started using the XSLT Compiling
+   processor, see <a href="xsltc_usage.html">Getting Started with XSLTC</a>.</p>   
+
+
+<a name="uptospeed">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Getting up to speed with XSLT</h3>
+<p>If you are still working through the details of the XSLT spec (the W3C 1.0 Recommendation), you 
+   may want to consult one or more of the following:</p>
+<ul>
+  <li>XSLT - XSL Transformations in 
+      <a href="http://www.brics.dk/~amoeller/XML/">
+      The XML Revolution: Technologies for the future Web</a> by Anders Møller and Michael 
+      I. Schwartzbach (Web pages, but designed for sequential reading)<br />
+<br />
+</li>
+  <li>Crane Softwright's <a href="http://www.CraneSoftwrights.com/training/">Free preview of 
+      Practical Transformation Using XSLT and XPath</a>
+<br />
+<br />
+</li>
+  <li>Doug Tidwell's <a href="http://www.oreilly.com/catalog/xslt/">XSLT</a>, O'Reilly, 2001
+      <br />
+<br />
+</li>                 
+  <li>Bob Ducharme's <a href="http://www.manning.com/ducharme/index.html">XSLT Quickly</a>, 
+      Manning Publications, 2001<br />
+<br />
+</li>                 
+  <li>John Robert Gardner and Zarella Rendon's 
+      <a href="http://vig.prenhall.com/catalog/academic/product/1,4096,0130404462,00.html">XSLT 
+      and XPath: A Guide to Transformations</a>, Prentice-Hall, 2001<br />
+<br />
+</li>                 
+  <li>Michael Kay's <a href="http://www.wrox.com/books/0764543814.shtml">XSLT 
+      Programmer's Reference</a>, 2nd ed., Wrox Press, 2001<br />
+<br />
+</li>               
+
+  <li>Dave Pawson's <a href="http://www.dpawson.co.uk/xsl/">XSL Frequently Asked Questions</a> to search out particular answers and 
+      techniques<br />
+<br />
+</li>
+  <li>Miloslav Nic's <a href="http://zvon.vscht.cz/HTMLonly/XSLTutorial/Books/Book1/index.html">XSL 
+      Tutorial</a>, a collection of stylesheet examples<br />
+<br />
+</li>
+  <li>Elliotte Rusty Harold's <a href="http://www.ibiblio.org/xml/books/bible2/chapters/ch17.html">
+      Chapter 17 of the XML Bible: XSL Transformations</a>
+<br />
+<br />
+</li>
+  <li>The Mulberry <a href="http://www.mulberrytech.com/xsl/xsl-list/">XSL-List -- Open Forum on 
+      XSL</a> (of interest to XSL users at all levels)<br />
+<br />
+</li>
+  <li>Objects by Design's <a href="http://www.objectsbydesign.com/projects/xmi_to_html.html">
+      Transforming XMI to HTML</a> (oriented towards XMI, "an XML-based, stream representation 
+      of a UML model," but also covers "generic" XML transformations) and their related 
+      <a href="http://objectsbydesign.com/projects/xslt/xslt_by_example.html">XSLT by Example</a>
+      <br />
+<br />
+</li>         
+  <li>OASIS (the Organization for the Advancement of Structured Information Standards): 
+      <a href="http://www.oasis-open.org/cover/xsl.html">Extensible Stylesheet Language (XSL)</a> 
+      by Robin Cover<br />
+<br />
+</li>       
+</ul>
+<p>When you come across other useful introductory or background materials, please email 
+   <a href="mailto:dev@xalan.apache.org">Xalan Development Mailing List</a>, so we can add them to this list.</p>
+    
+<a name="glossary">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Glossary</h3>
+<div class="glossary">
+  <p class="label">
+<em>XSLT Namespace</em>
+</p>
+  <blockquote class="item">The <a href="http://www.w3.org/TR/REC-xml-names/">XML namespace</a> for XSLT. An XML 
+        namespace is a collection of element and attribute names, identified by a Unique Resource 
+        Identifier (URI), which often takes the form of a URL, but is really just a unique string, 
+        not a pointer to a web page. The XSLT namespace URI is http://www.w3.org/1999/XSL/Transform. 
+        In each XSLT stylesheet, you must declare this namespace in the stylesheet element tag and 
+        bind it to a local prefix. Like the XSLT specification, we always use xsl as the XSLT 
+        namespace prefix in our descriptions and examples, although you are free to bind any prefix 
+        to this namespace.<br />
+<br />
+</blockquote>
+        
+  <p class="label">
+<em>XSL Instruction</em>
+</p>
+  <blockquote class="item">Any tag associated with the XSLT namespace.<br />
+<br />
+</blockquote>
+        
+  <p class="label">
+<em>Template</em>
+</p>
+  <blockquote class="item">An element, usually with child elements, that specifies a "rule" or set of 
+        instructions to perform when a particular kind of node is encountered in the source 
+        tree.<br />
+<br />
+</blockquote>
+                
+  <p class="label">
+<em>XSL Template Instruction</em>
+</p>
+  <blockquote class="item">Any tag that occurs inside an xsl:template element and is associated with the XSLT 
+        namespace.<br />
+<br />
+</blockquote>
+                   
+  <p class="label">
+<em>Source Tree</em>
+</p>
+  <blockquote class="item">The XML tree input to the XSL process.<br />
+<br />
+</blockquote>
+        
+  <p class="label">
+<em>Result Tree</em>
+</p>
+  <blockquote class="item">The tree that is output by the XSL process.<br />
+<br />
+</blockquote>
+                
+  <p class="label">
+<em>Match Pattern</em>
+</p>
+  <blockquote class="item">The part of a template that defines the kind(s) of nodes to which the template 
+        applies.<br />
+<br />
+</blockquote>
+
+</div>
+<p>For more definitions of XSLT terminology, see Dave Pawson's 
+   <a href="http://www.dpawson.co.uk/xsl/xslvocab.html">XSLT Terminology
+   Clarification</a> and the Glossary in Michael Kay's 
+   <a href="http://www.wrox.com/books/0764543814.shtml">XSLT Programmer's Reference</a>.</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/public_apis.html b/xalan-j/public_apis.html
new file mode 100644
index 0000000..9036c12
--- /dev/null
+++ b/xalan-j/public_apis.html
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Supported Interfaces in Xalan-Java</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Supported Interfaces in Xalan-Java</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>Public APIs<br />
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Supported Interfaces in Xalan-Java</h2>
+  <ul>
+    <li>
+<a href="#public">Public interfaces</a>
+</li>
+    <li>
+<a href="#experimental">Experimental interfaces</a>
+</li>
+    <li>
+<a href="#internal">Internal interfaces</a>
+</li>
+  </ul>
+<a name="public">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Public interfaces</h3>
+  <p>A public interface of Xalan-Java 2 is an API that a typical client developer
+     should code against.  Such interfaces are usually based upon
+     World-Wide Web Consortium (W3C) recommendations, such as XSLT 1.0 and
+     XPath 1.0, or Java Specification Requests (JSR's) with a status of
+     "Final Release", such as JAXP.</p>
+  <p>The Xalan-Java 2 team will support use of public interfaces, and will
+     attempt to fix severe bugs in such interfaces.</p>
+  <p>A particular version of a public interface will be supported for all
+     the maintenance drops of a particular version and release of Xalan-Java 2
+     (that is, for a release that changes just the third digit of the
+     version number).  At the point a new version of Xalan-Java 2 is made
+     available, (that is, a release that changes the first or second digit
+     of the version number) such interfaces could change to reflect the
+     latest standard specifications.</p>
+  <p>The public interfaces of Xalan-Java 2 are:</p>
+  <ul>
+    <li>
+<a href="http://java.sun.com/xml/jaxp/">JAXP 1.3</a>
+        interfaces found in the
+        <a href="apidocs/javax/xml/parsers/package-summary.html">
+           <code>javax.xml.parsers</code>
+</a>,
+        <a href="apidocs/javax/xml/transform/package-summary.html">
+           <code>javax.xml.transform</code>
+</a>,
+        <a href="apidocs/org/xml/sax/package-summary.html">
+           <code>org.xml.sax</code>
+</a>,
+        <a href="apidocs/org/w3c/dom/package-summary.html">
+           <code>org.w3c.dom</code>
+</a> and
+        <a href="apidocs/javax/xml/xpath/package-summary.html">
+           <code>javax.xml.xpath</code>
+</a> packages. </li>
+    <li>The Xalan-Java 2 specific XPath API, defined by the classes
+      <ul>
+        <li>
+<a href="apidocs/org/apache/xpath/XPathAPI.html">
+          <code>org.apache.xpath.XPathAPI</code>
+</a>
+</li>
+        <li>
+<a href="apidocs/org/apache/xpath/CachedXPathAPI.html">
+          <code>org.apache.xpath.CachedXPathAPI</code>
+</a>
+</li>
+      </ul>
+    </li>
+    <li>API's for using, configuring or defining a serializer, from the
+        <code>org.apache.xml.serializer</code> package:
+      <ul>
+        <li>
+<a href="apidocs/org/apache/xml/serializer/OutputPropertiesFactory.html">
+                <code>OutputPropertiesFactory</code>
+</a>
+</li>
+        <li>
+<a href="apidocs/org/apache/xml/serializer/SerializerFactory.html">
+                <code>SerializerFactory</code>
+</a>
+</li>
+        <li>
+<a href="apidocs/org/apache/xml/serializer/Serializer.html">
+                <code>Serializer</code>
+</a>
+</li>
+      </ul>
+    </li>
+    <li>Properties files for configuring a serializer.  (See
+        <a href="usagepatterns.html#outputprops">Setting output
+        properties in your stylesheets</a> for more information.)
+      <ul>
+        <li>
+<code>org/apache/xml/serializer/output_xml.properties</code>
+</li>
+        <li>
+<code>org/apache/xml/serializer/output_html.properties</code>
+</li>
+        <li>
+<code>org/apache/xml/serializer/output_text.properties</code>
+</li>
+      </ul>
+    </li>
+    <li>Command-line interfaces for performing transformations:
+      <ul>
+        <li>
+<a href="commandline.html">Xalan-Java Command-line utility</a>
+</li>
+        <li>
+<a href="xsltc_usage.html#compile">Compiling translets
+              from the command line</a>
+</li>
+        <li>
+<a href="xsltc_usage.html#run">Running translets
+              from the command line</a>
+</li>
+      </ul>
+    </li>
+  </ul>
+  <a name="experimental">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Experimental interfaces</h3>
+  <p>Interfaces and classes that are designated experimental reflect recent
+     World-Wide Web Consortium (W3C) draft recommendations or draft
+     Java Specification Requests (JSR's).  Such an API is based upon
+     a specification that is subject to change, and so is itself subject
+     to change as the relevant standards body makes changes to the
+     specification.</p>
+  <p>If and when the specification upon which the API is based reaches its
+     final published form, the API could become a Public interface in
+     a subsequent release of Xalan-Java 2, although the Xalan-Java 2 team could
+     decide to simply withdraw the API, if it decided that making the API
+     a public interface would not be appropriate.</p>
+  <p>As the name suggests, experimental interfaces are provided in order to
+     give users the opportunity to experiment with new features so that they
+     can provide feed-back on those features.  They should not be used in
+     production-level code.  The Xalan-Java 2 team may fix severe bugs in
+     experimental interfaces.</p>
+  <p>The experimental interfaces of Xalan-Java 2 are:</p>
+  <ul>
+    <li>The
+        <a href="http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226">
+           DOM Level 3 XPath API</a> found in the
+        <a href="apidocs/org/apache/xpath/domapi/package-summary.html">
+           <code>org.apache.xpath.domapi</code>
+</a> package.</li>
+  </ul>
+  <a name="internal">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Internal interfaces</h3>
+  <p>All other classes are considered to be part of the internal interface of
+     Xalan-Java 2.  Some such classes or members of such classes may themselves
+     be designated as <code>public</code> using the Java keyword, but that is
+     a consequence of the internal organization of Xalan-Java 2.</p>
+  <p>Users who have complex and specific needs, such as the need to build
+     their own XSLT or XPath processors, might use these internal interfaces,
+     but their use is not supported.  In addition these interfaces are subject
+     to change without notice.</p>
+  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/readme.html b/xalan-j/readme.html
new file mode 100644
index 0000000..9415456
--- /dev/null
+++ b/xalan-j/readme.html
@@ -0,0 +1,1185 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Release Notes</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Release Notes</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>Release Notes<br />
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Release Notes</h2>
+ <ul>
+  <li>
+<a href="#notes_latest">Release notes for  version 2.7.2</a>
+</li>
+  <li>
+<a href="#notes_271">Release notes for version 2.7.1</a>
+</li>
+  <li>
+<a href="#notes_270">Release notes for version 2.7.0</a>
+</li>
+  <li>
+<a href="#notes_260">Release notes for version 2.6.0</a>
+</li>
+  <li>
+<a href="#notes_252">Release notes for version 2.5.2</a>
+</li>
+  <li>
+<a href="#notes_251">Release notes for version 2.5.1</a>
+</li>
+  <li>
+<a href="#notes_250">Release notes for version 2.5.0</a>
+</li>
+  <li>
+<a href="#notes_25D1">Release notes for version 2.5.D1</a>
+</li>
+  <li>
+<a href="#notes_241">Release notes for version 2.4.1</a>
+</li>
+  <li>
+<a href="#notes_240">Release notes for version 2.4.0</a>
+</li>
+  <li>
+<a href="#other">Other points of interest</a>
+</li>
+ </ul>
+  
+  <a name="notes_latest">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Release notes for Xalan-Java 2.7.2</h3>
+    <p>
+      Xalan-Java 2.7.2 was released in April 2014.
+    </p>
+     
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Fix for CVE-2014-0107 insufficient secure processing</h4>
+      <p>
+        When using FEATURE_SECURE_PROCESSING ("http://javax.xml.XMLConstants/feature/secure-processing") on a TransformerFactory, the output properties:
+      </p>
+      <ul>
+        <li>{http://xml.apache.org/xalan}content-handler</li>
+        <li>{http://xml.apache.org/xalan}entities</li>
+        <li>{http://xml.apache.org/xslt}content-handler</li>
+        <li>{http://xml.apache.org/xslt}entities</li>
+      </ul>
+      <p>
+        should be ignored (see http://xml.apache.org/xalan-j/usagepatterns.html#outputprops)
+      </p>
+      <p>
+        These properties can be used to load an arbitrary class or access an arbitrary URL/resource so are problematic when secure processing is desired.
+      </p>
+      <p>      
+        <code>  
+          &lt;xsl:output xalan:content-handler="org.example.BadClass" ...
+        </code>   
+      </p>
+      <p>      
+        <code>  
+          &lt;xsl:output xalan:entities="http://example.org/reallyLargeFile.bin" ...
+        </code>   
+      </p>
+      <p>
+        These features could be used to load a class that had undesirable side-effects or to load a large file and exhaust memory, etc. 
+      </p>
+      <p>
+        See <a href="#https://issues.apache.org/jira/browse/XALANJ-2435">XALANJ-2435</a>. 
+      </p>
+    
+    
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Upgrade to Xerces-J 2.11.0 and XML Commons External 1.4.01</h4>
+      The distributions contain upgraded versions of <code>xercesImpl.jar</code>
+      (Xerces-J 2.11.0) and <code>xml-apis.jar</code> (XML Commons External 1.4.01).
+    
+    
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>XALANJ Jira bug fixes</h4>
+      <p>XALANJ Jira bug fixes:
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2435">2435</a>,
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2580">2580</a>,
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2546">2546</a>,
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2581">2581</a>,
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2581">2582</a>,
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2581">2583</a>,
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2473">2473</a>,
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2495">2495</a>,
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2493">2493</a>,
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2424">2424</a>,
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2446">2446</a>,
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2447">2447</a>
+      </p>
+      <p>You can also view the list in 
+        <a href="https://issues.apache.org/jira/browse/XALANJ-2424?jql=project%20%3D%20XALANJ%20AND%20fixVersion%20%3D%202.7.2%20ORDER%20BY%20due%20ASC%2C%20priority%20DESC%2C%20created%20ASC">Jira</a>
+      </p>
+     
+        
+      
+   
+   <a name="notes_271">‌</a>
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Release notes for Xalan-Java 2.7.1</h3>
+     <p>Xalan-Java 2.7.1 was released in August 2007.
+     </p>
+      <p>
+      The serializer now has support for DOM Level 3 serialization
+      (<a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSSerializer">LSSerializer</a>)
+      for an XML parser. These changes are seen in the new class
+      <a href="apidocs/org/apache/xml/serializer/DOM3Serializer.html">
+      <code>org.apache.xml.serializer.DOM3Serializer</code>
+</a> 
+      and the new package
+      <code>org.apache.xml.serializer.dom3</code>
+      as well as a new method,       
+      <code>asDOM3Serializer()</code> on the older 
+      <a href="apidocs/org/apache/xml/serializer/Serializer.html">
+      <code>org.apache.xml.serializer.Serializer</code>
+</a> interface.
+      </p>
+      <p>
+      More details are in the javadoc of those classes and interfaces.
+      </p>
+
+    <p>    
+    The distributions contain upgraded versions of <code>xercesImpl.jar</code> 
+    (Xerces-J 2.9.0) and  <code>xml-apis.jar</code> (XML Commons External 1.3.04).
+    The distributions were tested with these versions of Xerces-J
+    and XML Commons External and are the recommended versions to use with
+    the release.
+    </p>
+    <p>
+      <b>Important:</b> You may experience unpredictable anomalies
+      if your Xalan-Java and Xerces-Java builds are not in synch.
+    </p>
+
+   
+     <p>
+       Xalan-Java 2.7.1 contains the following functional enhancements, 
+       performance enhancements and bug fixes since 2.7.0:
+     </p>
+     <ul>
+     <li>XALANJ Jira bug fixes:
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-611">611</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1243">1243</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1324">1324</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1434">1434</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1497">1497</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1706">1706</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1753">1753</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1774">1774</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2061">2061</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2091">2091</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2108">2108</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2159">2159</a>,       
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2184">2184</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2196">2196</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2199">2199</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2204">2204</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2205">2205</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2206">2206</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2208">2208</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2209">2209</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2210">2210</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2217">2217</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2218">2218</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2219">2219</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2220">2220</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2221">2221</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2220">2222</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2224">2224</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2219">2219</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2230">2230</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2236">2236</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2240">2240</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2249">2249</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2268">2268</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2269">2269</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2271">2271</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2275">2275</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2276">2276</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2277">2277</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2278">2278</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2279">2279</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2271">2281</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2283">2283</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2284">2284</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2285">2285</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2286">2286</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2290">2290</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2292">2292</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2293">2293</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2294">2294</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2295">2295</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2297">2297</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2298">2298</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2307">2307</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2312">2312</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2316">2316</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2317">2317</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2318">2318</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2319">2319</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2321">2321</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2323">2323</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2324">2324</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2329">2329</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2336">2336</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2337">2337</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2339">2339</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2341">2341</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2342">2342</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2343">2343</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2375">2375</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2377">2377</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2384">2384</a>,
+       <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2395">2395</a>
+     </li>
+     </ul>
+   
+   
+   <a name="notes_270">‌</a>
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Release notes for Xalan-Java 2.7.0</h3>
+     <p>Xalan-Java 2.7.0 was released on August 8, 2005.
+     </p>
+     <p>Xalan-Java 2.7.0 contains the following functional enhancements, performance enhancements and 
+        bug fixes since 2.6.0.
+     </p>
+
+  <h5>Support for JAXP 1.3</h5>
+  <p>Support for JAXP 1.3 has been introduced in this release of Xalan-Java. JAXP 1.3
+  includes a new javax.xml.xpath package, which provides an object-model neutral
+  API for the evaluation of XPath expressions and access to the evaluation environment. 
+  Please refer to <a href="xpath_apis.html">Using the JAXP 1.3 XPath API</a> for details on how to 
+  use the new XPath API. You can also look at the code in the samples 
+  <a href="samples.html#applyxpathjaxp">ApplyXPathJAXP</a> , 
+  <a href="samples.html#xpathresolver">XPathResolver</a> and 
+  <a href="samples.html#extensionresolver">ExtensionFunctionResolver</a>.</p>
+  
+  <p>There are also a few new transformer features
+  in JAXP 1.3, as described in the following list:<br />
+<br />
+    <li>A new method 
+    <a href="apidocs/javax/xml/transform/TransformerFactory.html#setFeature(java.lang.String, boolean)">
+    TransformerFactory.setFeature(String name, boolean value)</a>
+</li>
+    <li>A new method <a href="apidocs/javax/xml/transform/Transformer.html#reset()">
+    Transformer.reset()</a>
+</li>
+    <li>A new nextSibling attribute is introduced for 
+    <a href="apidocs/javax/xml/transform/dom/DOMResult.html">DOMResult</a>, accessible 
+    by the constructors, getter and setter methods.</li>
+    <li>Support for the <a href="features.html#secureprocessing">secure processing feature</a>
+</li>
+</p>
+  
+  <h5>New default error handling behavior</h5>
+  The behavior of the default <a href="apidocs/javax/xml/transform/ErrorListener.html">ErrorListener</a>
+  was changed in this release of Xalan-Java, 
+  in order to conform with a clarification of the required behavior described by JAXP 1.3. 
+  If an application does not register its own ErrorListener, the default ErrorListener is 
+  used which reports all warnings and errors to System.err and does not throw any Exceptions. Applications 
+  are strongly encouraged to register and use ErrorListeners that insure proper behavior for warnings and errors. 
+  The default ErrorListener of the old Xalan-Java Interpretive processor throws exceptions on errors and fatal errors. If your
+  code expects exceptions to be thrown on errors and fatal errors, you have to set a customized ErrorListener on
+  TransformerFactory and/or Transformer. You can use 
+  <a href="apidocs/org/apache/xml/utils/DefaultErrorHandler.html">org.apache.xml.utils.DefaultErrorHandler</a>
+  as a sample ErrorListener implementation.
+  
+  <h5>Support for XML 1.1</h5>
+  <p>This release of Xalan-Java adds support for Namespaces in XML 1.1 and XML 1.1 output documents.
+     The processors: <br />
+<br />
+      <li> support C0 control characters </li>
+      <li> handle C1 control characters in a way that is consistent with the requirements of XML 1.1 </li>
+      <li> treat NEL (U+0085) and LSEP (U+2028) as end-of-line markers </li> 
+      <li> support <a href="http://www.ietf.org/rfc/rfc3987.txt">Internationalized Resource Identifiers (IRIs)</a> </li>
+      <li> support the additional characters in NCNames and QNames permitted by XML 1.1 and Namespaces in XML 1.1 </li>
+</p>
+
+  <p>The processors do not undeclare namespaces other than the default namespace in serialized documents  Also, Full 
+     normalization is not supported.</p>
+  <p>An input document can be either XML 1.0 or XML 1.1.  Also, a stylesheet document can be either XML 1.0 or XML 1.1.  
+     A stylesheet document must conform to the XSLT 1.0 specifications.</p>
+  <p>Note that it is possible for a stylesheet module that is an XML 1.1 document to use constructs that cannot be 
+     serialized as part of a valid XML 1.0 document, and for a stylesheet module that is an XML 1.0 document to use 
+     constructs that cannot be serialized as part of a valid XML 1.1 document. For example, a stylesheet module that 
+     is an XML 1.1 document might contain a literal result element whose name contains characters that are not permitted 
+     as part of a QName in a document that conforms to Namespaces for XML 1.0. The user needs to ensure that the nodes 
+     created by the stylesheet can be serialized as part of a well-formed document of the required version of XML.</p>  
+  
+  <h5>Support for Alternative BSF Implementations</h5>
+  <p>Extensions written in Java are directly supported by Xalan-Java. For extensions written in languages other than 
+     Java, Xalan-Java uses the Bean Scripting Framework (BSF), an architecture for incorporating scripting into Java 
+     applications and applets, and an implementation of BSF must be available on the classpath.  In previous
+     releases, IBM's BSF implementation (<code>bsf.jar</code> from 2001) has been included in the Xalan-Java distribution.  
+     Some time ago IBM donated their BSF implementation to the <a href="http://jakarta.apache.org/bsf/index.html">
+     Apache Jakarta BSF</a> project. As of this release, 
+     the IBM <code>bsf.jar</code> is no longer included in the Xalan-Java distribution.  To use extensions written in 
+     languages other than Java, please download a version of Jakarta BSF and put it on your classpath. To use
+     a different BSF implementation, please refer to <a href="extensions.html#BSFManager">setting the BSFManager</a>.</p>
+  
+  <h5>New serializer.jar</h5>
+  <p>In this release of Xalan-Java the code related to serialization of output result trees has been pulled out of 
+     <code>xalan.jar</code> and moved into a new jar file, named <code>serializer.jar</code>.</p>
+  <p>The code in <code>serializer.jar</code> has been modified to have no build or runtime dependencies on the rest of the 
+     code in Xalan-Java, therefore, <code>serializer.jar</code> can be used in a stand-alone fashion through its public APIs. 
+     Although the code has been modified to create a stand-alone jar, the serializer public APIs have not changed
+     and the package names and classnames are the same as they were last release.</p>
+   
+
+   <p>Also the following:</p>
+
+     <ul>
+     <li>Updates to the SQL extension and SQL samples to support the Apache Derby database.</li>
+     <li>Minor restructuring of the source and binary distributions.</li>
+     <li>Various performance fixes.</li>
+     <li>Various memory leak fixes.</li>
+     <li>Upgrade to Xerces-J (2.7.1) and a new version of xml-commons (xml-commons-external-1.3.02).</li>
+
+     <li>Bugzilla fixes:
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15333">15333</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=27417">27417</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=27516">27516</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=27522">27522</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=27539">27539</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=27932">27932</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=28082">28082</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=28435">28435</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=28622">28622</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=28796">28796</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=28879">28879</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=29120">29120</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=29234">29234</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=29372">29372</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=29411">29411</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=29655">29655</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=29706">29706</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=30056">30056</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=30142">30142</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=30262">30262</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=30301">30301</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=30658">30658</a>
+     </li>
+     <li>XALANJ Jira bug fixes:
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-936">936</a>,     
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1186">1186</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1368">1368</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1417">1417</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1427">1427</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1431">1431</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1478">1478</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1526">1526</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1550">1550</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1556">1556</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1592">1592</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1640">1640</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1662">1662</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1705">1705</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1708">1708</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1761">1761</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1810">1810</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1811">1811</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1812">1812</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1822">1822</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1824">1824</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1852">1852</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1853">1853</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1886">1886</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1887">1887</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1888">1888</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1891">1891</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1908">1908</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1912">1912</a>,      
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1924">1924</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1925">1925</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1937">1937</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1938">1938</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1942">1942</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1955">1955</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1966">1966</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1967">1967</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1977">1977</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1978">1978</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1979">1979</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1985">1985</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1990">1990</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1994">1994</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-1999">1999</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2003">2003</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2008">2008</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2013">2013</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2015">2015</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2021">2021</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2023">2023</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2026">2026</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2037">2037</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2051">2051</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2054">2054</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2058">2058</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2059">2059</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2068">2068</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2070">2070</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2074">2074</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2076">2076</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2077">2077</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2079">2079</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2081">2081</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2085">2085</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2086">2086</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2087">2087</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2089">2089</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2093">2093</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2095">2095</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2097">2097</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2099">2099</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2103">2103</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2105">2105</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2109">2109</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2113">2113</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2114">2114</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2116">2116</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2121">2121</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2123">2123</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2124">2124</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2126">2126</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2134">2134</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2136">2136</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2140">2140</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2142">2142</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2143">2143</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2144">2144</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2146">2146</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2154">2154</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2161">2161</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2167">2167</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2170">2170</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2176">2176</a>,
+      <a href="http://issues.apache.org/jira/secure/ViewIssue.jspa?key=XALANJ-2183">2183</a>
+     </li>
+     <li>For a list of Xalan-Java commits, see xalan-cvs@xml.apache.org in the
+      <a href="http://mail-archives.apache.org/mod_mbox/">Apache mail archives</a>.
+     </li>        
+     </ul>
+   
+     
+   <a name="notes_260">‌</a>
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Release notes for Xalan-Java 2.6.0</h3>
+     <p>Xalan-Java 2.6.0 was released on February 29, 2004 (a leap year!).
+     </p>
+     <p>Xalan-Java 2.6.0 contains the following functional enhancements, performance enhancements and 
+        bug fixes since 2.5.2:</p>
+     <ul>
+     <li>Improvement in translet initialization time.</li>
+     <li>Addition of a translet versioning mechanism.  If the translet version
+         detected by the XSLTC runtime is more recent than any supported by the
+         XSLTC runtime, an error will be reported.</li>
+     <li>Changes that allow XSLTC to use other DTM implementations.</li>
+     <li>Release notes for the XML Serializer.  The serializer will no longer put a newline after
+         the xml header tag unless indent="yes". See bugzilla 
+         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24304">24304</a>.</li>     
+     <li>Rename of Xalan Java's xalan:doc-cache-off processing instruction to 
+         xalan-doc-cache-off.  This change was necessary due to a recent
+         change in Xerces.  Xerces has started detecting the Namespace 
+         well-formedness rule that a processing instruction's PITarget must not contain 
+         a colon. The old-style PI (xalan:doc-cache-off) will be accepted provided that
+         the XML parser does not report it as an error.  See bugzilla 
+         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=26217">26217</a>.</li>
+     <li>Enhancement to XSLTC's URIResolvers and the general mechanism to resolve relative URIs.
+         XSLTC is now compatible with Xalan Intepretive.</li>
+     <li>Addition of a TransformThread sample that demonstrates how to use different transformers
+         on different threads and in different modes.</li>
+     <li>Upgrade to Xerces-J (2.6.2) and a new version of xml-commons (xml-commons-external-1.2.01)</li>
+     <li>Elimination of "enum" as a name to allow compilation under JDK 1.5</li>   
+        
+     <li>Bugzilla fixes:     
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=797">797</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=1396">1396</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=5761">5761</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15140">15140</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=16889">16889</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=18351">18351</a>, 
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19194">19194</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19464">19464</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22376">22376</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23046">23046</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23591">23591</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24278">24278</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24111">24111</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24187">24187</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24188">24188</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24302">24302</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24304">24304</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24365">24365</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24414">24414</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24518">24518</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24695">24695</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24728">24728</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24788">24788</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24793">24793</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24958">24958</a>, 
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24979">24979</a>,           
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24985">24985</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24988">24988</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=25368">25368</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=25416">25416</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=25442">25442</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=25449">25449</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=25816">25816</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=25924">25924</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=26019">26019</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=26030">26030</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=26075">26075</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=26169">26169</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=26217">26217</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=26697">26697</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=26742">26742</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=26829">26829</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=26842">26842</a>                                                                       
+     </li>
+     <li>For a list of Xalan-Java commits, see xalan-cvs@xml.apache.org in the
+      <a href="http://mail-archives.apache.org/mod_mbox/">Apache mail archives</a>.
+     </li>         
+     </ul>
+      
+   
+   <a name="notes_252">‌</a>
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Release notes for Xalan-Java 2.5.2</h3>
+     <p>Xalan-Java 2.5.2 was released on October 30, 2003.
+     </p>
+     <p>Xalan-Java 2.5.2 contains bug fixes and performance enhancements since 2.5.1.</p>
+      <p>Fixes in this release include the following: </p>
+     <ul>
+     <li>
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=782">782</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=788">788</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=789">789</a>, 
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=795">795</a>,                
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=890">890</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=3415">3415</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=5133">5133</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=5972">5972</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6155">6155</a>, 
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7205">7205</a>,           
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7408">7408</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10900">10900</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11414">11414</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=12441">12441</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13082">13082</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14149">14149</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14607">14607</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15090">15090</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15327">15327</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15700">15700</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15828">15828</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15901">15901</a>,            
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=16311">16311</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=16512">16512</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=16675">16675</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17630">17630</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=18821">18821</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=18907">18907</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19297">19297</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19591">19591</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19770">19770</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19823">19823</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19890">19890</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19918">19918</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19972">19972</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19973">19973</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20074">20074</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20114">20114</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20256">20256</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20537">20537</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20572">20572</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20625">20625</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20685">20685</a>,            
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20795">20795</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20819">20819</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20832">20832</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20841">20841</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20909">20909</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20913">20913</a>, 
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20920">20920</a>,     
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21039">21039</a>,   
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21048">21048</a>,         
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21087">21087</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21300">21300</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21309">21309</a>,   
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21449">21449</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21452">21452</a>,               
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21471">21471</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21478">21478</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21491">21491</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21697">21697</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21713">21713</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21805">21805</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=21893">21893</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22025">22025</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22115">22115</a>,   
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22167">22167</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22342">22342</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22422">22422</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22438">22438</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22623">22623</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22769">22769</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22777">22777</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22808">22808</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22880">22880</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23200">23200</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23113">23113</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23115">23115</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23271">23271</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23418">23418</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23706">23706</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23812">23812</a>,   
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23896">23896</a>,   
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=23983">23983</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24013">24013</a>,      
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=24025">24025</a>      
+     </li>
+     <li>For a list of Xalan-Java commits, see xalan-cvs@xml.apache.org in the
+      <a href="http://mail-archives.apache.org/mod_mbox/">Apache mail archives</a>.
+     </li>         
+     </ul>
+     
+   
+   <a name="notes_251">‌</a>     
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Release notes for Xalan-Java 2.5.1</h3>
+     <p>Xalan-Java 2.5.1 was released on June 3, 2003.
+     </p>
+     <p>Xalan-Java 2.5.1 contains bug fixes and performance enhancements since 2.5.0.</p>
+      <p>Fixes in this release include the following: </p>
+     <ul>
+     <li>
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15200">15200</a>,     
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=18585">18585</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=18926">18926</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19029">19029</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19388">19388</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19471">19471</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19474">19474</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19522">19522</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19640">19640</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19900">19900</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=19960">19960</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20237">20237</a>,
+      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=20273">20273</a>
+     </li>
+     <li>For a list of Xalan-Java commits, see xalan-cvs@xml.apache.org in the
+      <a href="http://mail-archives.apache.org/mod_mbox/">Apache mail archives</a>.
+     </li>         
+     </ul>
+   
+   
+    <a name="notes_250">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Release notes for Xalan-Java 2.5.0</h3>
+     <p>Xalan-Java 2.5.0 was released on April 16,2003.
+     </p>
+     <p>Xalan-Java 2.5.0 contains a variety of features, bug fixes and 
+        performance enhancements since 2.5.D1.</p>
+     <p>New features in Xalan-Java 2.5.0 include:
+        <ul>
+        <li>integration of the Document Table Model (DTM) with the XSLTC 
+            processor [Henry Zongaro, Morris Kwan] and </li>
+        <li>integration of the Xalan Interpretive and Xalan Compiled 
+            serializers into a common serializer [Brian Minchau].</li>  
+        </ul>    
+        These features have been driven by a need to get common behavior, 
+        improve maintainability, reduce duplication of effort for future work, 
+        and in some cases improve performance and conformance.</p>
+     <p>Refer to <a href="whatsnew.html">What's New</a> for a description of the new function 
+        and <a href="history.html">History of software changes</a> for a list of the various 
+        bug fixes and other enhancements in this release.</p>
+     
+     
+     <a name="notes_25D1">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Release notes for Xalan-Java 2.5.D1</h3>
+     <p>Xalan-Java 2.5.D1 was released on March 3, 2003.
+     </p>
+     <p>This developer's release, Xalan-Java 2.5.D1, has changes since 2.4.1 and
+        is primarily for the purpose of releasing 
+        various bug fixes to the community.  These will eventually be released officially in 
+        a future Xalan-Java 2.5 version, along with some new function.</p>
+     <p>Fixes in this release include the following: </p>
+     <ul>
+     <li>
+<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=4858">4858</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=5140">5140</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6075">6075</a>,        
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6157">6157</a>,   
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10053">10053</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10626">10626</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=12481">12481</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13414">13414</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13651">13651</a>,          
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13774">13774</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13775">13775</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13977">13977</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14112">14112</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14148">14148</a>,               
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14157">14157</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14178">14178</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14229">14229</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14236">14236</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14237">14237</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14241">14241</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14244">14244</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14300">14300</a>,          
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14322">14322</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14324">14324</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14365">14365</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14368">14368</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14406">14406</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14578">14578</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14753">14753</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14856">14856</a>,               
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14862">14862</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14965">14965</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15074">15074</a>,               
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15094">15094</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15218">15218</a>,          
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15254">15254</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15373">15373</a>,          
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=15586">15586</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=16745">16745</a>,          
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17030">17030</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=17136">17136</a>
+</li>
+     <li>Support for and bundling of Xerces Java 2.3.</li>     
+     <li>Support for and bundling of <code>xml-apis.jar</code> from the tck-jaxp-1_2_0 branch of xml-commons.
+         This version of the Java APIs for XML Processing successfully passes the JAXP 1.1 and 
+         JAXP 1.2 TCKs.</li>     
+     <li>For a list of Xalan-Java commits, see xalan-cvs@xml.apache.org in the
+     <a href="http://mail-archives.apache.org/mod_mbox/">Apache mail archives</a>.</li>         
+     </ul>     
+       
+     
+     <a name="notes_241">‌</a>   
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Release notes for Xalan-Java 2.4.1</h3>
+     <p>Xalan-Java 2.4.1 was released on October 31, 2002 (Halloween!).
+     </p>
+     <ul>
+      <li>Performance fixes and enhancements to address the degradation of performance between Xalan-Java
+      version 2.3.1 and Xalan-Java 2.4.0.</li>
+      <li>A prototype implementation of the <a href="http://www.w3.org/TR/2002/WD-DOM-Level-3-XPath-20020328/">DOM Level 3 XPath Specification</a>. 
+          The implementation is considered 'experimental' at this time due to the status of the specification.
+          See the new sample, <a href="samples.html#applyxpathdom">ApplyXPathDOM</a> for an
+          example of how to use this API.</li>
+     <li>Extension changes and enhancements:</li>
+      <ul>
+        <li>Implement canonical namespaces for all Xalan extensions. All extensions
+        now use namespaces starting with <code>http://xml.apache.org/xalan</code>. The old namespaces are
+        still supported for backward compatibility. See the updated 
+        <a href="extensionslib.html#intro">extensions</a> documentation for details.</li>
+        <li>Added new EXSLT extension functions, including the EXSLT dynamic extension functions 
+        max, min, sum, map, evaluate and closure, the EXSLT strings extension functions align, 
+        concat, padding, split and tokenize, and some new extension functions in the math module.</li>
+        <li>Reorganized the extension functions for new EXSLT extensions.
+     The implementation of some extension functions (intersection, difference, distinct, 
+     evaluate and tokenize) are moved from the main Extensions class to the corresponding EXSLT modules.</li>
+        <li>Enable the EXSLT extensions for XSLTC. The EXSLT common, math, sets, dates-and-times and strings
+        modules can be used in XSLTC.</li>
+        <li>Integration of the nodeset and redirect extension for XSLTC. You can now use Xalan namespaces for
+        these extensions in XSLTC.</li>
+        <li>Enhancement in Java extenion for XSLTC. Three namespace formats (Java, package and class) can all
+        be used in XSLTC. More type conversion rules are added as well.</li>
+      </ul>
+      <li>Enable support for invoking transformations using the Xalan compiler (XSLTC) via the 
+     Xalan interpretive Process command line.  Specifically, the -XSLTC option was added.  The 
+     -TT, -TG, -TS, -TTC, -QC, -L, -INCREMENTAL, -NOOPTIMIZE and -RL option do not work in XSLTC mode.  All
+     other existing options can be used with -XSLTC.  Additional options were added to enable XSLTC compile
+     and transform modes: -XO, -XD, -XJ, -XP, -XN, -XX, -XT.  See the Process usage statement for more
+     information on these options.</li>
+     <li>Fixed SQL Extension problem where a query that returned zero rows would incorrectly
+      return a JDBC exception.</li>
+     <li>Fixed a limitation for XPath expressions. The token queue and operations map can now grow
+      to accomodate really large XPath expressions.</li>
+     <li>Fixes for the following bugzilla defects: 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=4344">4344</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=5046">5046</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6181">6181</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6927">6927</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7161">7161</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7357">7357</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=8175">8175</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=8473">8473</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=8939">8939</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9731">9731</a>,                              
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9959">9959</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10176">10176</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10384">10384</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10414">10414</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10643">10643</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11073">11073</a>,                         
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11341">11341</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11661">11661</a>,     
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11743">11743</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11809">11809</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=12077">12077</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=12127">12127</a>,                         
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=12298">12298</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=12687">12687</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13059">13059</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13303">13303</a>,               
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13305">13305</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13106">13106</a>,   
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13501">13501</a>,            
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13711">13711</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13754">13754</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13863">13863</a>,          
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13944">13944</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=14022">14022</a>
+</li> 
+     <li>Support for and bundling of Xerces Java 2.2.</li>
+     <li>Support for and bundling of <code>xml-apis.jar</code> from the factoryfinder-build of the RIVERCOURT1 branch of xml-commons.  This version of the Java
+     APIs for XML Processing successfully passes the JAXP 1.1 and JAXP 1.2 TCKs.</li>
+     <li>For a list of Xalan-Java commits, see xalan-cvs@xml.apache.org in the
+     <a href="http://mail-archives.apache.org/mod_mbox/">Apache mail archives</a>.</li>
+     <li>Support building Xalan with JDK 1.4.</li>
+     </ul>
+     
+     
+     <a name="notes_240">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Release notes for Xalan-Java 2.4.0</h3>
+     <p>Xalan-Java 2.4.0 was released on September 3, 2002.
+     </p>
+     <ul>
+     <li>Fixes for the following bugzilla defects : 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=3238">3238</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=4603">4603</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=5013">5013</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=5016">5016</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=5941">5941</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6071">6071</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6268">6268</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6284">6284</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6356">6356</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6547">6547</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6798">6798</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6833">6833</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6925">6925</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=6972">6972</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7023">7023</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7118">7118</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7123">7123</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7157">7157</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7410">7410</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=7776">7776</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=8324">8324</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=8358">8358</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=8551">8551</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=8894">8894</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9068">9068</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9137">9137</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9146">9146</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9171">9171</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9174">9174</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9179">9179</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9572">9572</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9575">9575</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9683">9683</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=9753">9753</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10137">10137</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10306">10306</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10323">10323</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10625">10625</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10715">10715</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10832">10832</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10837">10837</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10839">10839</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10914">10914</a>, 
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=10945">10945</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11123">11123</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11166">11166</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11221">11221</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11345">11345</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11704">11704</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11987">11987</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=11828">11828</a>,
+     <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=12075">12075</a>
+</li>. 
+     <li>Xalan-Java now uses a list of supported encodings in a properties file 
+     (org.apache.xml.serializer.Encodings.properties). Fixes Bugzilla 6356. Patch from Sergey Ushakov. </li>     
+     <li>Support for the <a href="http://www.exslt.org/">EXSLT</a> function and result elements, and EXSLT 
+     date-and-time functions.</li>
+     <li>Improvements to the extensions mechanism to more efficiently handle the detection and analysis of extensions 
+     during the stylesheet "composition" process, and the generation of the required extension handlers during 
+     initialization of the transformation process.</li>
+     <li>Performance improvement.  Instead of looping through the ExtendedType objects, use a hashtable and go
+     directly to the correct object.</li>
+     <li>Separation of source and messages.  Messages have been moved into property files for easier localization.</li>
+     <li>XSLTC version upgraded from 1.0 to 1.2.</li>
+     <li>Support for and bundling of Xerces Java 2.1.</li>
+     <li>Support for and bundling of <code>xml-apis.jar</code> from the RIVERCOURT1 branch of xml-commons.  This version of the Java
+     APIs for XML Processing successfully passes the JAXP 1.1 and JAXP 1.2 TCKs.</li>
+     <li>For a list of Xalan-Java commits, see xalan-cvs@xml.apache.org in the
+     <a href="http://mail-archives.apache.org/mod_mbox/">Apache mail archives</a>.</li>
+     </ul>
+     
+     <a name="other">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Other points of interest</h3>
+     <ul>
+     <li>Xalan Java 2 is integrated with release 2 of Xerces-Java. Xalan-Java Version 2.7.2 does not include support for the deprecated Xalan-Java 1 compatability API. 
+     The Xalan-Java 1 compatability code does NOT compile with Xerces-Java 2.<br />
+<br />
+</li>
+     <li>The <a href="samples.html#sql">SQL extension samples</a> continue to use InstantDB, but based on our realization of changes 
+     that have occurred in the licensing of InstantDB, we no longer include InstantDB and the associated sample database with our distibution.
+     We do, however, provide information on how to <a href="samples.html#instantdbsetup">set up InstantDB</a> to support our SQL 
+     extension samples.<br />
+<br />
+</li>
+     <li>Documentation updates: We have subdivided the release notes into multiple files to accelerate HTML document loading, and we have added a
+     document on <a href="features.html">Transform features</a>.<br />
+<br />
+</li>
+     <li>If an attempt is made to coerce a different namespace onto a prefix already in use in xsl:attribute, the attribute will come out 
+     in the wrong namespace. Workaround: either provide an NCName instead of a QName for the attribute, or provide a QName with a prefix not
+     used elsewhere.<br />
+<br />
+</li>
+     <li>Handling xsl:namespace-alias declarations: In release 2.0.D01, we reported the need to do some research concerning exactly how Xalan
+     should handle xsl:namespace-alias declarations. As a result of discussions among members of the W3C Working Group on XSL, we have reached a
+     more precise consensus on how namespaces should be represented when an xsl:namespace-alias declaration is in effect.<br />
+<br />
+     If a literal result element has a namespace prefix, the prefix will be preserved and the namespace URI of the element will be as
+     specified in the xsl:namespace-alias element, but the result-prefix is not required to appear in the result. This also applies to the
+     two other cases of "Literal namespace URI" mentioned in the XSLT Recommendation on 
+     <a href="http://www.w3.org/TR/xslt#literal-result-element">Literal Result Elements</a>. More simply, if the stylesheet calls for
+     &lt;axsl:foo&gt; to be output as a literal result element, then it will be output as &lt;axsl:foo&gt; in the result, but the namespace
+     associated with this "axsl" prefix will be as designated in the xsl:namespace-alias declaration.<br />
+<br />
+</li>
+     <li>For HTML output, Xalan-Java 2 outputs character entity references (&amp;copy; etc.) for the special characters designated in  
+     <a href="http://www.w3.org/TR/xhtml1/#dtds">Appendix A. DTDs of the XHTML 1.0: The Extensible HyperText Markup
+     Language</a>. Xalan-Java 1.x, on the other hand, outputs literal characters for some of these special characters.<br />
+<br />
+</li>
+     <li>In conformance with the <a href="http://www.w3.org/TR/xslt#section-HTML-Output-Method">XSLT Recommendation on the HTML 
+     Output Method</a> and <a href="http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.2.1">Section B.2.1 of the HTML 4.0
+     Recommendation</a>, Xalan-Java 2 uses %hh encoding for each byte of the UTF-8 representation of non-ASCII characters in HTML URI
+     attributes.<br />
+<br />
+</li>
+     <li>When your stylesheet asks for an explicit carriage-return character (&amp;#13;) to be inserted into the output, it is output during
+     the serialization process in escaped form unless escaping has been disabled.  When your stylesheet asks for an explicit line-feed character
+     (&amp;#10;) to be output, the system-default line-break character(s) is/are output during the serialization process.  Also keep in mind that
+     the XML parser normalizes line-breaks to line-feeds when it sends character events to the processor.<br />
+<br />
+</li>
+     <li>If your XML input is a DOM, use the javax.xml.parsers.DocumentBuilderFactory setCoalescing() method to set coalescing to true (it is
+     false by default), if you want to append CDATA sections to adjacent text sections to form a single text node (as the XPath standard calls
+      for), and if the XML parser supports this feature (Xerces-Java 2.11.0 does not).<br />
+<br />
+</li>
+     <li>When you traverse the namespace axis for a collection of element nodes, Xalan-Java includes <b>one</b> namespace node for each namespace in scope 
+     for one or more of the nodes in that collection. The XPath expression does not return additional (redundant) namespace nodes for each element
+     for which the namespace nodes are in scope.<br />
+<br />
+</li>
+     <li>See <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=2291">Bugzilla bug 2291</a> for a discussion of issues surrounding
+     use of the default character encoding to read META-INF/Services.<br />
+<br />
+</li>
+     <li>As <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=1800">Bugzilla bug 1800</a> reports, the Transformer does not get the 
+     setTransformState event until after the startDocument event. This could present a problem for tools developers, and we do intend to fix this 
+     bug.</li> 
+     </ul>
+     
+
+
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/resources.html b/xalan-j/resources.html
new file mode 100644
index 0000000..67d14f1
--- /dev/null
+++ b/xalan-j/resources.html
@@ -0,0 +1,527 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Resources</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Resources</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>Resources<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h4 class="resourcetitle">
+<strong>Xalan-Java</strong>
+</h4>
+<p>id = [xslt4j]<br />
+<a href="http://xalan.apache.org/xalan-j">http://xalan.apache.org/xalan-j</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Xalan-Java Version 2.7.2</strong>
+</h4>
+<p>id = [xslt4j-current]<br />
+<a href="http://xalan.apache.org/xalan-j">http://xalan.apache.org/xalan-j</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>xalan-j distribution directory</strong>
+</h4>
+<p>id = [xslt4j-distdir]<br />
+<a href="http://www.apache.org/dyn/closer.cgi/xalan/xalan-j">http://www.apache.org/dyn/closer.cgi/xalan/xalan-j</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>xalan-j archive directory</strong>
+</h4>
+<p>id = [xslt4j-distdir-previous]<br />
+<a href="http://archive.apache.org/dist/xalan/xalan-j/">http://archive.apache.org/dist/xalan/xalan-j/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Xerces-Java 2.11.0</strong>
+</h4>
+<p>id = [xml4j-used]<br />
+<a href="http://xerces.apache.org/xerces2-j/index.html">http://xerces.apache.org/xerces2-j/index.html</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>xerces-j distribution directory</strong>
+</h4>
+<p>id = [xml4j-distdir]<br />
+<a href="http://www.apache.org/dyn/closer.cgi/xerces/j/">http://www.apache.org/dyn/closer.cgi/xerces/j/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Ant</strong>
+</h4>
+<p>id = [ant]<br />
+<a href="http://jakarta.apache.org/ant/index.html">http://jakarta.apache.org/ant/index.html</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>The Apache Software License, Version 1.1</strong>
+</h4>
+<p>id = [ApacheLicense]<br />
+<a href="http://xml.apache.org/dist/LICENSE.txt">http://xml.apache.org/dist/LICENSE.txt</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>JIRA (the Apache issue tracker)</strong>
+</h4>
+<p>id = [jira]<br />
+<a href="http://issues.apache.org/jira/browse/XALANJ">http://issues.apache.org/jira/browse/XALANJ</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>XalanJ2 open bugs</strong>
+</h4>
+<p>id = [buglist]<br />
+<a href="http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;mode=hide&amp;pid=10584&amp;resolutionIds=-1&amp;sorter/field=issuekey&amp;sorter/order=DESC">http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;mode=hide&amp;pid=10584&amp;resolutionIds=-1&amp;sorter/field=issuekey&amp;sorter/order=DESC</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Bean Scripting Framework (BSF)</strong>
+</h4>
+<p>id = [bsf]<br />
+<a href="http://jakarta.apache.org/bsf/index.html">http://jakarta.apache.org/bsf/index.html</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Xalan Repository Release Notes</strong>
+</h4>
+<p>id = [Readme]<br />
+<a href="http://www.apache.org/websrc/cvsweb.cgi/xml-xalan/README">http://www.apache.org/websrc/cvsweb.cgi/xml-xalan/README</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Mulberry XSL Mailing List</strong>
+</h4>
+<p>id = [mulberryxsl-list]<br />
+<a href="http://mulberrytech.com/xsl/xsl-list/index.html">http://mulberrytech.com/xsl/xsl-list/index.html</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>XSL Frequently Asked Questions</strong>
+</h4>
+<p>id = [dpawsonxslfaq]<br />
+<a href="http://www.dpawson.co.uk/xsl/">http://www.dpawson.co.uk/xsl/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Extensible Stylesheet Language (XSL) Version 1.0</strong>
+</h4>
+<p>id = [xsl]<br />
+<a href="http://www.w3.org/TR/xsl">http://www.w3.org/TR/xsl</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>XSL Transformations (XSLT) Version 1.0</strong>
+</h4>
+<p>id = [xslt]<br />
+<a href="http://www.w3.org/TR/xslt">http://www.w3.org/TR/xslt</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>XML Path Language (XPath) Version 1.0</strong>
+</h4>
+<p>id = [xpath]<br />
+<a href="http://www.w3.org/TR/xpath">http://www.w3.org/TR/xpath</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>DOM</strong>
+</h4>
+<p>id = [dom]<br />
+<a href="http://www.w3.org/DOM">http://www.w3.org/DOM</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>DOM level 2</strong>
+</h4>
+<p>id = [dom2]<br />
+<a href="http://www.w3.org/TR/DOM-Level-2/">http://www.w3.org/TR/DOM-Level-2/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>DOM level 3</strong>
+</h4>
+<p>id = [dom3]<br />
+<a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/">http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>SAX</strong>
+</h4>
+<p>id = [sax]<br />
+<a href="http://www.megginson.com/SAX/sax.html">http://www.megginson.com/SAX/sax.html</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>SAX 2</strong>
+</h4>
+<p>id = [sax2]<br />
+<a href="http://sax.sourceforge.net/">http://sax.sourceforge.net/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Java API for XML Parsing 1.0</strong>
+</h4>
+<p>id = [jaxp]<br />
+<a href="http://java.sun.com/webservices/jaxp/dist/1.1/docs/api/index.html">http://java.sun.com/webservices/jaxp/dist/1.1/docs/api/index.html</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Java API for XML Processing 1.1</strong>
+</h4>
+<p>id = [jaxp11]<br />
+<a href="http://java.sun.com/webservices/jaxp/dist/1.1/jaxp-1_1-spec.pdf">http://java.sun.com/webservices/jaxp/dist/1.1/jaxp-1_1-spec.pdf</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Java API for XML Processing 1.2</strong>
+</h4>
+<p>id = [jaxp12]<br />
+<a href="http://java.sun.com/webservices/jaxp/index.jsp">http://java.sun.com/webservices/jaxp/index.jsp</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Java API for XML Processing (JAXP) 1.3</strong>
+</h4>
+<p>id = [jaxp13-longname-withacronym]<br />
+<a href="https://jaxp.java.net/">https://jaxp.java.net/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>JAXP 1.3</strong>
+</h4>
+<p>id = [jaxp13]<br />
+<a href="https://jaxp.java.net/">https://jaxp.java.net/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Java Specification Request 63</strong>
+</h4>
+<p>id = [jsr063]<br />
+<a href="http://jcp.org/aboutJava/communityprocess/review/jsr063/">http://jcp.org/aboutJava/communityprocess/review/jsr063/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>The Jakarta Site - Apache Tomcat</strong>
+</h4>
+<p>id = [tomcat]<br />
+<a href="http://tomcat.apache.org/">http://tomcat.apache.org/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>xml-commons/java/external/src</strong>
+</h4>
+<p>id = [xmlapirepository]<br />
+<a href="http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/">http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Endorsed Standards Override Mechanism</strong>
+</h4>
+<p>id = [endorsed]<br />
+<a href="http://java.sun.com/j2se/1.4.2/docs/guide/standards/">http://java.sun.com/j2se/1.4.2/docs/guide/standards/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Apache mail archives</strong>
+</h4>
+<p>id = [apache-mail-archives]<br />
+<a href="http://mail-archives.apache.org/mod_mbox/">http://mail-archives.apache.org/mod_mbox/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Apache bugzilla</strong>
+</h4>
+<p>id = [old-bugzilla]<br />
+<a href="http://issues.apache.org/bugzilla/">http://issues.apache.org/bugzilla/</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Xalan Development Mailing List</strong>
+</h4>
+<p>id = [xalandev]<br />
+<a href="mailto:dev@xalan.apache.org">mailto:dev@xalan.apache.org</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Steven J. Hathaway</strong>
+</h4>
+<p>id = [shathaway]<br />
+<a href="mailto:shathaway@apache.org">mailto:shathaway@apache.org</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Scott Boag</strong>
+</h4>
+<p>id = [sboag]<br />
+<a href="mailto:scott_boag@us.ibm.com">mailto:scott_boag@us.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Shane Curcuru</strong>
+</h4>
+<p>id = [scurcuru]<br />
+<a href="mailto:Shane_Curcuru@us.ibm.com">mailto:Shane_Curcuru@us.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Paul Dick</strong>
+</h4>
+<p>id = [pdick]<br />
+<a href="mailto:Paul_Dick@us.ibm.com">mailto:Paul_Dick@us.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Joseph Kesselman</strong>
+</h4>
+<p>id = [jkesselman]<br />
+<a href="mailto:keshlam@us.ibm.com">mailto:keshlam@us.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Donald Leslie</strong>
+</h4>
+<p>id = [dleslie]<br />
+<a href="mailto:donald_leslie@us.ibm.com">mailto:donald_leslie@us.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Costin Manolache</strong>
+</h4>
+<p>id = [cmanolache]<br />
+<a href="mailto:cmanolache@yahoo.com">mailto:cmanolache@yahoo.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>David Marston</strong>
+</h4>
+<p>id = [dmarston]<br />
+<a href="mailto:David_Marston@us.ibm.com">mailto:David_Marston@us.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Myriam Midy</strong>
+</h4>
+<p>id = [mmidy]<br />
+<a href="mailto:myriam_midy@us.ibm.com">mailto:myriam_midy@us.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Gary L Peskin</strong>
+</h4>
+<p>id = [gpeskin]<br />
+<a href="mailto:garyp@firstech.com">mailto:garyp@firstech.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>John Gentilin</strong>
+</h4>
+<p>id = [jgentilin]<br />
+<a href="mailto:johng@apache.org">mailto:johng@apache.org</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Morris Kwan</strong>
+</h4>
+<p>id = [mkwan]<br />
+<a href="mailto:mkwan@ca.ibm.com">mailto:mkwan@ca.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Ilene Seelemann</strong>
+</h4>
+<p>id = [ilene]<br />
+<a href="mailto:ilene@ca.ibm.com">mailto:ilene@ca.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Henry Zongaro</strong>
+</h4>
+<p>id = [zongaro]<br />
+<a href="mailto:zongaro@ca.ibm.com">mailto:zongaro@ca.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Brian Minchau</strong>
+</h4>
+<p>id = [minchau]<br />
+<a href="mailto:minchau@ca.ibm.com">mailto:minchau@ca.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Igor Hersht</strong>
+</h4>
+<p>id = [igor]<br />
+<a href="mailto:igorh@ca.ibm.com">mailto:igorh@ca.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Christine Li</strong>
+</h4>
+<p>id = [jycli]<br />
+<a href="mailto:jycli@ca.ibm.com">mailto:jycli@ca.ibm.com</a>
+<br />
+</p>
+<h4 class="resourcetitle">
+<strong>Joanne Tong</strong>
+</h4>
+<p>id = [jtong]<br />
+<a href="mailto:joannet@ca.ibm.com">mailto:joannet@ca.ibm.com</a>
+<br />
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/resources/Xalan-Logo-tm.png b/xalan-j/resources/Xalan-Logo-tm.png
new file mode 100644
index 0000000..9a08808
--- /dev/null
+++ b/xalan-j/resources/Xalan-Logo-tm.png
Binary files differ
diff --git a/xalan-j/resources/Xalan-Logo.txt b/xalan-j/resources/Xalan-Logo.txt
new file mode 100644
index 0000000..7886950
--- /dev/null
+++ b/xalan-j/resources/Xalan-Logo.txt
@@ -0,0 +1,85 @@
+
+The XALAN Logo
+
+Graphic: A stylized version of the African Xalam instrument.
+
+
+
+TEXT FONTS SIZE AND STYLE:
+
+TM (trademark)
+
+	Font: Arial
+	Size: 14pt
+	Style: Bold)
+
+XSLT
+
+	Font: Arial
+	Size: 22pt
+	Style: Bold
+
+Apache Software Foundation
+
+	Font: Arial
+	Size: 18pt
+	Style: Bold
+	Note: 2 space characters between words
+
+Xalan	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-C	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-J	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+
+INSTRUMENT GRAPHIC (vector equations)
+
+	Vertical Width:		0.75 inch (3/4)
+	HorizontalLength:	3.667 inch (3 2/3)
+
+	Oval on the left,
+	neck and butt on the right.
+
+	Oval Width:		0.75 inch (3/4)
+	Oval Length:		1.583 inch (1 7/12)
+
+	Neck Width:		0.167 inch (1/6)
+
+	Butt Width:		0.25 inch (1/4)
+	Butt Length:		0.417 inch (5/12)
+
+
+Description of instrument logo
+
+	Oval: simulation of a gourd sound chamber
+	With orange gradation hues
+
+	Neck: rectangle simulating a round fingerboard
+	With yellow-green gradation hues
+
+	Butt: rounded rectangle simulating end of neck
+	With olive-green hue
+
+	String Anchor:  rounded rectangle on the gourd
+	With olive-green hue
+
+	2 strings: the full length from Anchor to Butt
+
+	2 strings: tied to neck, at 1/2 length from Anchor to Butt
+
+	3 Loose Tie Strings on the Butt, simulating tuning anchors
+
+	
\ No newline at end of file
diff --git a/xalan-j/resources/Xalan-Trademark.txt b/xalan-j/resources/Xalan-Trademark.txt
new file mode 100644
index 0000000..0bd3704
--- /dev/null
+++ b/xalan-j/resources/Xalan-Trademark.txt
@@ -0,0 +1,106 @@
+
+The XALAN Logo - Trademark Description
+--------------------------------------
+
+Prepared By:  
+
+	Steven J. Hathaway
+
+	(shathaway@apache.org)
+
+	September 3, 2011
+
+
+
+Prepared for:
+
+	The Apache Software Foundation
+
+--------------------------------------
+
+Graphic: A stylized version of the African Xalam instrument.
+
+Note: the difference in spelling.
+
+	Xalam is the African Musical Instrument
+	Xalan is the Apache Xalan Software Project
+
+
+TEXT FONTS SIZE AND STYLE:
+
+TM (trademark symbol)
+
+	Font: Arial
+	Size: 14pt
+	Style: Bold)
+
+XSLT
+
+	Font: Arial
+	Size: 22pt
+	Style: Bold
+
+Apache Software Foundation (trademark name)
+
+	Font: Arial
+	Size: 18pt
+	Style: Bold
+	Note: 2 space characters between words
+
+Xalan	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-C	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-J	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+
+INSTRUMENT GRAPHIC (vector equations)
+
+	Vertical Width:		0.75 inch (3/4)
+	HorizontalLength:	3.667 inch (3 2/3)
+
+	Oval on the left,
+	neck and butt on the right.
+
+	Oval Width:		0.75 inch (3/4)
+	Oval Length:		1.583 inch (1 7/12)
+
+	Neck Width:		0.167 inch (1/6)
+
+	Butt Width:		0.25 inch (1/4)
+	Butt Length:		0.417 inch (5/12)
+
+
+Description of instrument logo
+
+	Oval: simulation of a gourd sound chamber
+	With orange gradation hues
+
+	Neck: rectangle simulating a round fingerboard
+	With yellow-green gradation hues
+
+	Butt: rounded rectangle simulating end of neck
+	With olive-green hue
+
+	String Anchor:  rounded rectangle on the gourd
+	With olive-green hue
+
+	2 strings: the full length from Anchor to Butt
+
+	2 strings: tied to neck, at 1/2 length from Anchor to Butt
+
+	3 Loose Tie Strings on the Butt, simulating tuning anchors
+
+	
\ No newline at end of file
diff --git a/xalan-j/resources/XalanJ-Logo-tm.png b/xalan-j/resources/XalanJ-Logo-tm.png
new file mode 100644
index 0000000..cab93a7
--- /dev/null
+++ b/xalan-j/resources/XalanJ-Logo-tm.png
Binary files differ
diff --git a/xalan-j/resources/apache-xalan.css b/xalan-j/resources/apache-xalan.css
new file mode 100644
index 0000000..fc2fa1a
--- /dev/null
+++ b/xalan-j/resources/apache-xalan.css
@@ -0,0 +1,414 @@
+/* Xalan-C/C++ Project Web Pages (css) Stylesheet */

+

+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements. See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership. The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the  "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+*/

+

+/* This (css) stylesheet renders the xhtml web pages that were generated

+ * from StyleBook XML markup using the "xalan-book.xslt" transformation.

+*/

+

+html > bod  {left:0;}

+body {

+/*  background-color: white; */

+  background-color: #f8f8f0;

+  color: black;

+  padding: 0;

+  margin: 0;

+  font-family: arial, "lucida console", san-serif;

+}

+

+/* Emulate table align=center */

+div.centered, td.centered {

+  text-align: center;

+}

+

+div.centered table {

+  margin: 0 auto;

+  text-align: left;

+}

+

+/*

+ * ID Sections

+ */

+

+#content {

+  width: 80%;

+  float: left;

+  font-size: 12pt;

+  padding-top: 1em;

+  padding-left: 5px;

+  margin-left: 10px;

+  border-left: 1px solid #aaa;

+}

+

+#navLeft {

+  clear: left;

+  width: 15%;

+  float: left;

+  padding: 2px;

+  margin-left: 1%;

+  color: red;

+  position: relative;

+  left: 1px;

+  background-color: #eee;

+}

+

+.navGroup {

+  color: Black;

+  font-size: 14pt;

+}

+

+

+#title {

+  color: black;

+  background-color: #eee;

+  text-align: center;

+  border-bottom: 1px solid #aaa;

+  padding: 0;

+  vertical-align: middle;

+}

+

+table.HdrTitle {

+  font-size: 18pt;

+}

+

+table.HdrButtons {

+  font-size: 8pt;

+  background-color: #ccf;

+  align: "center";

+  border: "1";

+

+}

+

+#footer {

+    clear: both;

+    margin: 0 2em;

+    color: #444;

+    background-color: #ddd;

+    text-align: center;

+    padding: .5em 0;

+    font-size: 75%;

+    border-top: 1px solid #aaa;

+}

+

+/*

+ * Anchors

+ */

+

+a {

+  color: blue;

+  text-decoration: undedrline;

+}

+

+a img {

+  border: 0;

+}

+

+a:hover {

+  text-decoration: none;

+  background-color: #d7c9c9;

+}

+

+/*

+ * Headers

+ */

+

+h1 {}

+

+#title h1 {

+  padding: 1px 0;

+  margin: 0;

+  float: right;

+  width: 60%;

+  font-size: 20pt;

+  text-align: center;

+}

+

+#content h1 { background-color: #8af }

+

+h2 {}

+

+#title h2 {

+  font-size: 14pt;

+  width: 60%;

+  text-alignment: center;

+  padding: 1px 0;

+  margin: 0;

+}

+

+#content h2 { background-color: #9bf }

+

+#content h2.year {

+  background-color: #ddd;

+  text-align: center;

+}

+

+h3 {}

+

+#content h3.monthName {

+  background-color: #333;

+  text-align: center;

+}

+

+#content h3 { background-color: #acf }

+

+h4{}

+

+#content h4.eventTitle {

+  margin-left: 1%;

+  border-bottom: 1px solid blue;

+}

+

+#content h4 { background-color: #cdf }

+

+/*

+ * Tables

+ */

+

+th {}

+

+td {}

+

+th.content {background-color: #4BD }

+td.content {background-color: #AEF }

+

+/*

+ * Lists and navLeft

+ */

+

+ul {}

+

+#navLeft ul {

+  list-style-type: none;

+  margin: 0;

+  padding: 0;

+}

+

+#navLeft ul li {

+  margin: 0;

+}

+

+#navLeft ul li p {

+  margin: 0;

+}

+

+#navLeft ul li ul {

+  list-style-type: none;

+  font-size: 90%;

+  margin: 0 2em;

+}

+

+#navLeft ul li ul li {

+  margin: 0;

+}

+

+/*

+ * Paragraphs

+ */

+

+p {}

+

+#navLeft p {

+  text-align: center;

+  padding: 0 auto;

+  margin: 0;

+}

+

+#footer p {

+  padding: 0;

+}

+

+#content p.topalign {

+  vertical-align: middle;

+  height: 2em;

+  text-align: center;

+  width: 100%;

+  padding: .5em;

+  border: 1px solid #ddd;

+}

+

+#content p.topalign img {

+  vertical-align: middle;

+  text-align: text-middle;

+}

+

+#content p.quote {

+  color:black;

+  font-style: italic;

+  font-size: 110%;

+  margin-left: 10%;

+  margin-right: 10%;

+  padding 1em;

+  border: 1px solid #ddd;

+  text-align: center;

+}

+

+#content p.navbar {

+  font-size: 90%;

+  text-align: center;

+  border-top: 1px solid #ddd;

+  border-bottom: 1px solid #ddd;

+}

+

+blockquote {}

+

+blockquote.note {

+  font-size: 80%;

+  border: 1px solid #ddd;

+  background-color: #eee;

+}

+

+td.noteImg {

+  background-color: white;

+  border: 0;

+}

+

+td.noteTxt {

+  background-color: white;

+  font-size: 120%;

+  border: 2px solid #ddd;

+  background-color: #eee;

+}

+

+/**

+ ** UNSPECIFIED IN APACHE STYLEBOOK DTD

+ ** <caution>..</caution> and <warning>..</warning>

+ **

+ * 

+ * td.cautionImg {

+ *   background-color: white;

+ *   border: 0;

+ * }

+ * 

+ * td.cautionTxt {

+ *   background-color: white;

+ *   font-size: 120%;

+ *   border: 2px solid #ddd;

+ *   background-color: #eee;

+ * }

+ * 

+ * 

+ * td.warningImg {

+ *   background-color: white;

+ *   border: 0;

+ * }

+ * 

+ * td.warningTxt {

+ *   background-color: white;

+ *   font-size: 120%;

+ *   border: 2px solid #ddd;

+ *   background-color: #eee;

+ * }

+ * 

+**/

+

+

+blockquote.source {

+  font-size: 75%;

+}

+

+code {

+  font-size: 75%;

+}

+

+

+/*

+ * Special Table (note)

+ */

+

+#notediv div { background-color: white }

+

+table.note {

+  width: 90%;

+}

+

+td.noteImg {

+  background-color: white;

+  vertical-align: top;

+  border: 0;

+  width: 24;

+}

+

+td.noteTxt {

+  color: black;

+  background-color: #eee;

+  font-size: 90%;

+  border: 2px solid;

+  border-color: #ccc;

+}

+

+

+/*

+ * Images

+ */

+

+img {}

+

+

+#footer img {

+  border: 0;

+}

+

+

+/*

+ * Document Divisions

+ */

+

+div {}

+

+/*

+ * Pre

+ */

+

+pre {}

+

+

+/*

+ * Generic Classes

+ */

+

+.indented {

+  margin-left: 3%;

+}

+

+.topBanner {

+  float: right;

+  margin: 0;

+  border: 0;

+  vertical-align: middle;

+}

+

+.noborder {

+  border: 0;

+  margin: 0;

+}

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

diff --git a/xalan-j/resources/asf_logo.png b/xalan-j/resources/asf_logo.png
new file mode 100644
index 0000000..66c34f0
--- /dev/null
+++ b/xalan-j/resources/asf_logo.png
Binary files differ
diff --git a/xalan-j/resources/note.gif b/xalan-j/resources/note.gif
new file mode 100644
index 0000000..3394222
--- /dev/null
+++ b/xalan-j/resources/note.gif
Binary files differ
diff --git a/xalan-j/samples.html b/xalan-j/samples.html
new file mode 100644
index 0000000..3e53c79
--- /dev/null
+++ b/xalan-j/samples.html
@@ -0,0 +1,1410 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Xalan-Java Samples</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Xalan-Java Samples</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>Sample Apps<br />
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Xalan-Java Samples</h2>
+
+<p>Xalan-Java Interpretive samples:</p>
+<ul>
+<li>
+<a href="#simpletransform">SimpleTransform</a>
+</li>
+<li>
+<a href="#usestylesheetpi">UseStylesheetPI</a>
+</li>
+<li>
+<a href="#usestylesheetparam">UseStylesheetParam</a>
+</li>
+<li>
+<a href="#sax2sax">SAX2SAX</a>
+</li>
+<li>
+<a href="#dom2dom">DOM2DOM</a>
+</li>
+<li>
+<a href="#pipe">Pipe</a>
+</li>
+<li>
+<a href="#usexmlfilters">UseXMLFilters</a>
+</li>
+<li>
+<a href="#appletxmltohtml">AppletXMLtoHTML</a>
+</li>
+<li>
+<a href="#extensions">Extensions</a>
+</li>
+<li>
+<a href="#trace">Trace</a>
+</li>
+<li>
+<a href="#validate">Validate</a>
+</li>
+<li>
+<a href="#trax">trax (JAXP transform samples)</a>
+</li>
+<li>
+<a href="#transformthread">TransformThread</a>
+</li>
+<li>
+<a href="#applyxpath">ApplyXPath</a>
+</li>
+<li>
+<a href="#applyxpathdom">ApplyXPathDOM</a>
+</li>
+<li>
+<a href="#applyxpathjaxp">ApplyXPathJAXP</a>
+</li>
+<li>
+<a href="#xpathresolver">XPathResolver</a>
+</li>
+<li>
+<a href="#extensionresolver">ExtensionFunctionResolver</a>
+</li>
+</ul>
+<p>Xalan-Java Interpretive servlet samples:</p>
+<ul>
+<li>
+<a href="#servlet">servlet</a>
+</li>
+</ul>
+<p>Xalan-Java Compiled samples:</p>
+<ul>
+<li>
+<a href="#translets">translets</a>
+</li>
+</ul>  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Samples to help you get started</h3>
+<p>Each of the subdirectories in the Xalan-Java java/samples directory
+   contains the source files for one or more sample applications.  The class
+   files for the samples are in the following jar files:</p>
+<table border="1">
+<tr>
+  <th class="content" rowspan="1" colspan="1">JAR file</th>
+  <th class="content" rowspan="1" colspan="1">Content</th>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">xalansamples.jar</td>
+  <td class="content" rowspan="1" colspan="1">Everything except the Xalan-Java Interpretive servlet sample and some
+      XSLTC samples</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">xalanservlet.jar</td>
+  <td class="content" rowspan="1" colspan="1">Xalan-Java Interpretive servlet sample</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">xsltcapplet.jar</td>
+  <td class="content" rowspan="1" colspan="1">XSLTC applet sample</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">xsltcbrazil.jar</td>
+  <td class="content" rowspan="1" colspan="1">XSLTC Brazil server sample</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">xsltcejb.jar</td>
+  <td class="content" rowspan="1" colspan="1">XSLTC EJB sample</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">xsltcservlet.jar</td>
+  <td class="content" rowspan="1" colspan="1">XSLTC servlet sample</td>
+</tr>
+</table>
+<p>With most of the samples, you can use the following procedure:</p>
+ <ol>
+   <li>Be sure <code>xalan.jar</code>, <code>serializer.jar</code>, <code>xml-apis.jar</code>, the appropriate samples JAR file, 
+       and <code>xercesImpl.jar</code> are on the system class path. For the extension examples, <code>bsf.jar</code> 
+       and (for the JavaScript extensions) <code>js.jar</code> must also be on the class path.</li>
+   <li>Be sure the java executable is on your path.</li>
+   <li>Go to the samples subdirectory containing the sample (use the DOS shell if you are running Windows).</li>
+   <li>Run the sample from the command line (as indicated below).</li>
+   <li>Examine the application source files. You may also want to modify the source files. Remember that if you
+       modify a java file, you must recompile the class and place it on the classpath before you can run the
+       modified application.</li>
+ </ol>      
+<p>The basic command line for running most of the samples is </p> 
+    <p>
+<code>java <b>
+<i>classname args</i>
+</b>
+</code>
+</p>
+    <p>where <b>
+<i>classname</i>
+</b> is the sample class and <b>
+<i>args</i>
+</b> are the arguments, if any. As described in
+     the following sections, some samples take no arguments. The UseStylesheetParam sample takes an
+     additional argument. Several samples in extensions use the Xalan-Java 
+     <a href="commandline.html">command-line utility</a>, so they take arguments for the XML source
+     file and the XSL stylesheet.</p>
+  
+   
+   <a name="simpletransform">‌</a>
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>SimpleTransform</h3>
+   <p>What it does: The SimpleTransform class uses the birds.xsl stylesheet to transform birds.xml, and prints the
+   output to birds.out.</p>
+   <p>You can run it from the SimpleTransform subdirectory with</p>
+   <p>
+<code>java SimpleTransform</code>
+</p>
+   
+   
+   <a name="usestylesheetpi">‌</a>
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>UseStylesheetPI</h3>
+   <p>What it does: The UseStylesheetPI class uses the stylesheet processing instruction in the XML source document to determine
+   which stylesheet to use to perform the transformation.</p>
+   <p>You can run it from the UseStylesheetPI subdirectory with</p>
+   <p>
+<code>java UseStylesheetPI</code>
+</p>
+   <p>For more information, see <a href="usagepatterns.html#embed">Working with embedded stylesheets</a>.</p>
+   
+   
+   <a name="usestylesheetparam">‌</a>
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>UseStylesheetParam</h3>
+   <p>What it does: The UseStyleSheetParam class uses foo.xsl and a stylesheet parameter to transform foo.xml,
+   and prints the output to System.out. The stylesheet parameter appears as a text node in the output.</p>
+   <p>Run this sample from the UseStylesheetParam subdirectory with</p> 
+   <p>
+<code>java UseStylesheetParam <b>
+<i>param</i>
+</b>
+</code>
+</p>
+   <p>where <b>
+<i>param</i>
+</b> is the stylesheet parameter value (a string of your choice).</p>  
+   
+   
+   <a name="sax2sax">‌</a>
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>SAX2SAX</h3>
+   <p>What it does: Explicitly sets the SAX XMLReader and SAX ContentHandler for processing the stylesheet (birds.xsl), processing the XML input (birds.xml), and producing the output (birds.out).</p>
+   <p>Run this sample from the SAX2SAX subdirectory with</p>
+   <p>
+<code>java SAX2SAX</code>
+</p>
+   
+   
+   <a name="dom2dom">‌</a>
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>DOM2DOM</h3>
+   <p>What it does: the DOM2DOM class uses the birds.xsl stylesheet to transform a DOM Document generated from birds.xml,
+   produces an output DOM, and traverses the DOM, printing the traversal to System.out. In contrast to SimpleTransform,
+   DOM2DOM illustrates the procedure for processing an input DOM and creating an output DOM that is available for
+   further processing.</p>
+   <p>You can run it from the DOM2DOM subdirectory with</p>
+   <p>
+<code>java DOM2DOM</code>
+</p>
+   
+   
+   <a name="pipe">‌</a>
+   <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Pipe</h3>
+   <p>What it does: Pipes the output from one transformation to a second transformation, then from the second
+    transformation to the third transformation. Transformer1 is the ContentHandler for the XMLReader (which parses the
+    input document). Transformer2 provides the ContentHandler for Transformer1, and Transformer3 for Transformer2.</p>
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Pipe and UseXMLFilters illustrate two strategies for using the output of one transformation as the input for
+    another transformation. The Pipe sample incorporates a "push" model -- Transformer1 "pushes" its output to
+    Transformer2, and so on -- whereas in the UseXMLFilters sample, Transformer3 "pulls" its input from Transformer2,
+    and so on.</td>
+</tr>
+</table>
+    <p>Run this sample from the Pipe subdirectory with</p> 
+    <p>
+<code>java Pipe</code>
+</p>
+    
+    
+    <a name="usexmlfilters">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>UseXMLFilters</h3>
+    <p>What it does: Chains together the same transformations as the preceding Pipe sample. Using each Transformer
+    object as an extension of the SAX XMLFilter interface, sets the XMLReader as the parent of filter1,
+    filter1 as the parent of filter2, and filter2 as the parent of of filter3.</p>
+    <p>
+<img src="xmlfilters.gif" alt="xmlfilters.gif" />
+</p>
+    <p>Run this sample from the UseXMLFilters subdirectory with</p>
+    <p>
+<code>java UseXMLFilters</code>
+</p>
+    
+    
+    <a name="appletxmltohtml">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>AppletXMLtoHTML</h3>
+    <p>This applet uses a stylesheet to transform an XML document into HTML. It displays the XML document, the
+     stylesheet, and the HTML output.</p>
+    <p>How to run it: Open appletXMLtoHTML.html in the Internet Explorer 5 browser.</p>
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">For information about running Xalan-Java applets in Netscape Communicator, see <a href="usagepatterns.html#netscape">Problems
+    with Netscape</a>.<br />
+<br />
+    This applet looks for <code>xalan.jar</code> and <code>serializer.jar</code> in the build directory, or the top level directory, and <code>xml-apis.jar</code> and 
+    <code>xercesImpl.jar</code> in the lib subdirectory. If you have placed these JAR files elsewhere, adjust the applet archive setting in 
+    client.html accordingly.</td>
+</tr>
+</table>
+    
+
+    <a name="servlet">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>servlet</h3>
+    <p>For a general introduction, see <a href="usagepatterns.html#servlet">Using Xalan-Java in a servlet</a>.</p>
+    <p>The servlet subdirectory contains four sample servlets and one JSP that use Xalan-Java to perform transformations. The sample 
+    code is compiled and packed in xalanservlet.war. To run these samples, you must place 
+    xalanservlet.war on a web server with a servlet engine. For example, using <a href="http://tomcat.apache.org/index.html">jakarta-tomcat 4.1.*</a>. 
+    Copy the xalanservlet.war to %Tomcat_Home%/webapps. For more details about deploying
+    servlets on Tomcat, please refer to <a href="http://tomcat.apache.org/tomcat-4.1-doc/appdev/deployment.html">Deployment Organization</a>.</p>
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Dependency on Tomcat version. If encountering "java.lang.VerifyError: Cannot inherit from final class" error, 
+    replace <code>xercesImpl.jar</code> under %Tomcat_Home%/common/endorsed with the one included with Xalan-Java .</td>
+</tr>
+</table>
+    <p>
+<a href="#simplexsltservlet">servlet.SimpleXSLTServlet</a> applies a particular stylesheet to a particular 
+    XML document.</p> 
+    <p>
+<a href="#usestylesheetparamservlet">servlet.UseStylesheetParamServlet</a> sets a stylesheet parameter 
+    (the parameter name is hardwired into the servlet), and requires the user to supply parameters for the 
+    XML document and XSL stylesheet.</p>
+    <p>
+<a href="#jspsample">jspSample.jsp</a> is a Java ServerPage that sets a stylesheet parameter and applies the
+     stylesheet to the XML document.</p>
+    <p>
+<a href="#xsltservletwithparams">servlet.XSLTServletWithParams</a> accepts parameters for the XML document, 
+    the XSL stylesheet, and any number of stylesheet parameters.</p>
+    <p>
+<a href="#applyxslt">servlet.ApplyXSLT</a> (and associated classes) is closer to a production level servlet. It accepts parameters, provides a 
+    listener for capturing and reporting debugger messages, and supports  use of a property file to determine which 
+    stylesheet to apply based on the identity of the client browser/device.</p>
+    <a name="simplexsltservlet">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>servlet.SimpleXSLTServlet</h4>
+    <p>What it does: servlet.SimpleXSLTServlet applies the birds.xsl stylesheet to birds.xml 
+    and returns the transformation result to the HTTP client.</p>
+    <p>To run this servlet: set up an HTML page to call the servlet as
+    follows:</p>
+    <div class="glossary">
+<p class="label">
+<em>http://localhost:port/xalanservlet/SimpleXSLTServlet</em>
+</p>
+</div>
+    <a name="usestylesheetparamservlet">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>servlet.UseStylesheetParamServlet</h4>
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Paul Campbell &lt;seapwc@halcyon.com&gt; wrote this servlet and the following explanatory text.
+    Thank you, Paul!</td>
+</tr>
+</table>
+    <p>What it does: The client (perhaps an HTML form) specifies an XML document, a stylesheet, and a value to be passed
+    to the stylesheet for a stylesheet parameter named "param1". The servlet performs the transformation and returns
+    the output to the client. The client must specify which stylesheet (containing a "param1" stylesheet parameter") 
+    and XML file are to be used or use sample files fooparam.xml and fooparam.xsl.</p>
+    <p>How to run it: set up an HTML client to call the servlet with arguments along the lines of</p>
+    <div class="glossary">
+<p class="label">
+<em>http://localhost:port/xalanservlet/UseStylesheetParamServlet?
+    XML=fooparam.xml&amp;XSL=fooparam.xsl&amp;PVAL=GoodBye</em>
+</p>
+</div>
+    <p>In the doGet() method, the servlet obtains the PVAL value "GoodBye" from the servlet request and passes it to the 
+    stylesheet as the paramValue argument in a Transformer setParameter() call:</p>
+    <p>
+<code>String paramValue = httpServletRequest.getParameter("PVAL");</code>
+<br />
+    <code>...</code>
+<br />
+    <code>transformer.setParameter("param1", paramValue);</code>
+</p>
+    <p>The result is returned to the client:</p>
+    <p>
+<code>&lt;html&gt;&lt;body&gt;&lt;p&gt;GoodBye&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</code>
+</p>
+    <a name="jspsample">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>jspSample.jsp</h4>
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Paul Campbell &lt;seapwc@halcyon.com&gt; wrote this Java Server Page.</td>
+</tr>
+</table>
+    <p>This Java Server Page performs essentially the same operation as 
+    <a href="#usestylesheetparamservlet">servlet.UseStylesheetParamServlet</a>. It applies a stylesheet parameter 
+    to a stylesheet (fooparam.xsl), applies the stylesheet to an XML source document (fooparam.xml), and returns the
+    result.</p>
+    <p>Call JSP as follows:</p>
+    <div class="glossary">
+<p class="label">
+<em>http://localhost:port/xalanservlet/jspSample.jsp?
+    XML=fooparam.xml&amp;XSL=fooparam.xsl&amp;PMA=GoodBye</em>
+</p>
+</div>
+    <p>The JSP obtains the PMA value "GoodBye" from the http request and passes it to the stylesheet as the 
+    paramValue argument in a Transformer setParameter() call.</p>    
+    <a name="xsltservletwithparams">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>servlet.XSLTServletWithParams</h4>
+    <p>What it does: servlet.XSLTServletWithParams takes parameters in the request -- a URL parameter for
+    the XML input document URL and an xslURL parameter for the stylesheet URL.</p>
+    <p>To use XSLTServletWithParams to perform the same transformation as SimplestServlet: 
+    use birds.xsl and birds.xml as examples. Set up an HTML page to call the servlet as follows:</p>
+    <div class="glossary">
+<p class="label">
+<em>http://localhost:port/xalanservlet/XSLTServletWithParams?URL=birds.xml&amp;
+    xslURL=birds.xsl</em>
+</p>
+</div>
+    <p>If the XML document contains an associated stylesheet (a stylesheet Processing Instruction) that you want to use, simply omit the
+    xslURL parameter.</p>
+    <p>If the stylesheet takes stylesheet parameters, you can include them in the URL. For example to set the param1
+    stylesheet parameter to foo, include param1=foo in the URL.</p>
+    <a name="applyxslt">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>servlet.ApplyXSLT</h4>
+    <p>What it does: The client (which you must set up) specifies an XML document and a stylesheet. The servlet
+    performs the transformation and returns the output to the client. You can use media.properties to specify 
+    which stylesheet is to be used depending on the client browser/device.</p>
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The source files for this servlet, including ApplyXSLT.java, ApplyXSLTProperties.java, DefaultApplyXSLTProperties.java,
+    ApplyXSLTListener.java, ApplyXSLTException.java. booklist1.xsl, booklist2.xsl and catalog.xml,
+    are provided for testing.</td>
+</tr>
+</table>
+    <p>To run the servlet:  set system property server.root=server root. Set up an HTML page to call
+    servlet.ApplyXSLT with arguments as illustrated below.</p>
+    <p>The files catalog.xml,  booklist1.xsl and booklist2.xsl are used in the following example.
+    In the deployment descriptor, booklist1.xsl is set as the default xsl file. If you create these 
+    files yourself, make sure that you set the output method to "xml" in the stylesheet.</p>
+    <p>Examples:</p>
+    <div class="glossary">
+    <p class="label">
+<em>http://localhost:port/xalanservlet/ApplyXSLT?URL=/xalanservlet/catalog.xml&amp;xslURL=
+    /xalanservlet/booklist2.xsl</em>
+</p>
+    <blockquote class="item">...applies the booklist2.xsl stylesheet to the catalog.xml data. Both files are<br />
+    served from the Web server's HTTP document root.<br />
+<br />
+</blockquote>
+    <p class="label">
+<em>http://localhost:port/xalanservlet/ApplyXSLT?URL=/xalanservlet/catalog.xml&amp;xslURL=
+    /xalanservlet/booklist2.xsl&amp;debug=true</em>
+</p>
+    <blockquote class="item">...ensures that XML and XSL processor messages are returned in the event of problems
+    applying booklist2.xsl to catalog.xml<br />
+<br />
+</blockquote>
+    <p class="label">
+<em>http://localhost:port/xalanservlet/ApplyXSLT/xalanservlet/catalog.xml?xslURL=/xalanservlet/booklist2.xsl</em>
+</p>
+    <blockquote class="item">...applies the booklist2.xsl stylesheet to the catalog.xml data, just like the first example.
+    This is an alternative way of specifying the XML XSLTInputSource by utilizing the HTTP request's path
+    information.<br />
+<br />
+</blockquote>
+    <p class="label">
+<em>http://localhost:port/xalanservlet/ApplyXSLT/xalanservlet/catalog.xml</em>
+</p>
+    <blockquote class="item">...examines catalog.xml for an associated XSL stylesheet booklist1.xsl (a stylesheet Processing Instruction). If multiple XSLs are associated with the data, the stylesheet whose media attribute maps to your browser type will be chosen.  If no mapping is successful, the primary associated stylesheet is used.<br />
+<br />
+</blockquote>
+    </div>     
+    
+    
+   
+    <a name="extensions">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Extensions</h3>
+    <p>For an introduction to the creation and use of extension elements and extension functions, and
+    for information about the extensions library distributed with the Xalan-Java Interpretive processor, 
+    see <a href="extensions.html">Extensions</a>. Extensions are also supported for the Xalan-Java 
+    Compiling processor (XSLTC), however no samples exist at this time.  See 
+    <a href="extensions_xsltc.html">Extensions for XSLTC</a>.</p>
+    <ul>
+      <li>
+<a href="#ext1">1-redir</a>
+</li>
+      <li>
+<a href="#ext2">2-basicJscript</a>
+</li>
+      <li>
+<a href="#ext3">3-java-namespace</a>
+</li>
+      <li>
+<a href="#ext4">4-numlistJava</a>
+</li>
+      <li>
+<a href="#ext5">5-numlistJScript</a>
+</li>
+      <li>
+<a href="#sql">SQL library extensions</a>
+</li>
+    </ul>
+    <p>The extensions subdirectory contains six samples with Xalan-Java Interpretive extensions. Two of the samples use
+     extensions implemented in JavaScript, and four of the samples use extensions implemented in Java.</p>
+    <p>To run these examples, you must place <code>bsf.jar</code> and <code>js.jar</code> (version 1.5, available from 
+     <a href="http://www.mozilla.org/rhino">http://www.mozilla.org/rhino</a>) on the classpath. 
+     You do not need <code>js.jar</code> on the classpath for the samples that use Java extensions. <a href="faq.html">
+     Problems related to JDK 1.4 or higher</a>.</p>
+    <p>Use java.org.apache.xalan.xslt.Process, the Xalan-Java command-line utility, to run most of these samples from
+     the <a href="commandline.html">command line</a>. The command line must include an -in flag with the 
+     XML source and an -xsl flag with the XSL stylesheet. If you want the output to be written to a file, rather
+     than to the screen, add an -out flag with the output file name.</p>
+    <p>Run these samples from the extensions directory as follows (each of the following is a single command
+     line):</p> 
+
+    <a name="ext1">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>1-redir</h4>
+    <p>What it does: Uses the Redirect extension elements shipped with Xalan-Java to direct output to two output
+     files.</p>
+    <p>Run this sample from the extensions subdirectory with</p> 
+    <p>
+<code>java org.apache.xalan.xslt.Process -in 1-redir.xml</code>
+<br />
+       <code>-xsl 1-redir.xsl</code>
+</p>
+    <p>The standard (non-redirected) output is written to the screen. The redirected output is written to 1-redir-out, or
+     whatever filename you assign to the doc/foo @file attribute in 1-redir.xml. The stylesheet gets the file name for
+     redirected output from the XML input file.</p>
+    
+    
+    <a name="ext2">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>2-basicJscript</h4>
+    <p>What it does: Uses an extension element and extension function implemented in JavaScript to compute a
+      deadline for responding to a customer inquiry.</p>
+     <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">
+<code>js.jar</code> must be on the classpath.</td>
+</tr>
+</table>
+    <p>Run this sample from the extensions subdirectory with</p>
+    <p>
+<code>java org.apache.xalan.xslt.Process -in 2-basicJscript.xml</code>
+     <br />  <code>-xsl 2-basicJscript.xsl</code>
+</p>     
+    
+    
+    <a name="ext3">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>3-java-namespace</h4>
+    <p>What it does: Uses extension functions to format dates. This sample illustrates use of the predefined java
+     extension namespace to provide ready access to extensions implemented in Java.</p>
+    <p>Run this sample from the extensions subdirectory with</p> 
+    <p>
+<code>java org.apache.xalan.xslt.Process -in 3-java-namespace.xml</code>
+     <br />  <code>-xsl 3-java-namespace.xsl</code>
+</p>    
+    
+    
+    <a name="ext4">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>4-numlistJava</h4>
+    <p>What it does: Uses a Java extension to transform a set of name elements into a numbered and alphabetized
+     list.</p>
+    <p>Run this sample from the extensions subdirectory with</p> 
+    <p>
+<code>java org.apache.xalan.xslt.Process -in numlist.xml</code> 
+     <br />  <code>-xsl 4-numlistJava.xsl</code>
+</p>    
+    
+    
+    <a name="ext5">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>5-numlistJscript</h4>
+    <p>What it does: Uses a JavaScript  extension to transform a set of name elements into a numbered and
+     alphabetized list. This sample performs the same operations as the preceding Java extension.</p>
+     <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">
+<code>js.jar</code> must be on the classpath.</td>
+</tr>
+</table>
+    <p>Run this sample from the extensions subdirectory with</p>
+    <p>
+<code> java org.apache.xalan.xslt.Process -in numlist.xml</code>
+     <br />  <code>-xsl 5-numlistJscript.xsl</code>
+</p>
+    
+    
+   
+    <a name="sql">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>SQL library extensions</h3>
+    <p>The <a href="extensionslib.html#sql">SQL library </a> 
+     extension enables you to execute SQL queries from within a stylesheet, 
+     and to incorporate query result sets in the XML output. 
+     To use the SQL library, you need a JDBC driver, the underlying DBMS, 
+     and a database.</p>
+    <p>Our samples use Apache Derby DBMS, but the SQL Extensions and sample code
+     can be configured to query data from any DBMS that can be accessed through
+     JDBC.</p>
+
+    <a name="dbsetup">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Setting up the SQL extension samples</h4>   
+    <p>To run the SQL library extension samples, do the following:</p>
+    <p>The SQL Extension examples require the Apache Derby jars.
+     The Derby jars are available from <a href="http://db.apache.org/derby/">
+     http://db.apache.org/derby/</a>.</p>
+    <p>The sample batch/script files are configured to look for the 
+     derby jars in the xml-xalan/java/samples/extensions/sql directory by default.</p>
+    <p>If you already have derby installed and want to use that implementation.
+      You can do one of the following.</p>
+    <ol>
+      <li>set the environment variable DERBY_JAR_DIR to point to the location of <code>derby.jar</code> and <code>derbytools.jar</code>
+</li>
+      <li>have the <code>derby.jar</code> and <code>derbytools.jar</code> in your classpath.</li>
+    </ol>
+    <p>First create the sample database using Derby.  To do this, </p>
+    <ul>
+<li>on Windows, execute the command<br /> <code>runDerby.bat createdb.sql</code>
+</li>
+        <li>on Unix, execute the command<br /> <code>sh runDerby.sh createdb.sql</code>
+</li>
+    </ul>
+    <p>You can use the Derby tools to examine the raw database. To do this, </p>
+      <ul>
+      <li>on Windows execute the command<br />
+      <code>runDerby.bat</code>
+<br />
+      At the lj&gt; prompt type the following commands:<br />
+      <code>lj&gt; connect 'sampleDB';</code>
+<br />
+      <code>lj&gt; select * from import1;</code>
+<br />
+<br />
+      <code>To quit the lj session type</code>
+<br />
+      <code>lj&gt; quit;</code>
+<br />
+      <br />
+</li>
+      <li>To Start lj on Unix type<br />
+      <code>sh runDerby.sh</code>
+<br />
+<br />
+</li>
+      </ul>
+    <p>Once the sample database has been created, you can run the sample
+      stylesheets using the runXalan script.</p>
+    
+
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>SQL Library samples</h4>   
+    <ul>
+    <li>
+<a href="#Dump-SQL">The Details - Dump SQL</a>
+</li>
+    <li>
+<a href="#basic-conn">Basic Connections</a>
+</li>
+    <li>
+<a href="#ext-conn">ExternalConnection</a>
+</li>
+    <li>
+<a href="#pquery">Parameterized query</a>
+</li>
+    <li>
+<a href="#streamable">Streamable</a>
+</li>
+    <li>
+<a href="#showerror">Show-error</a>
+</li>
+    </ul>
+    
+
+    <a name="Dump-SQL">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Dump-SQL</h4>
+    <p>The Dump SQL example is used to show what data is available to the XSLT process.</p>
+    <p>To run the DumpSQL Example, execute the following command<br />
+         <code>runXalan.bat -XSL basic-connection/DumpSQL.xsl</code>
+</p>
+    <p>Dump SQL should produce the following output:</p>
+    <blockquote class="source">
+<pre>
+    &lt;sql&gt;
+      &lt;metadata&gt;
+        &lt;column-header searchable="true" writable="false" signed="true" 
+    nullable="true" definitely-writable="false" case-sensitive="false" 
+    table-name="IMPORT1" schema-name="" scale="0" precision="10" 
+    column-typename="INTEGER" column-type="4" column-display-size="11" 
+    catalogue-name="" column-label="PRODUCTID" column-name="PRODUCTID"&gt;&lt;/column-header&gt;
+        &lt;column-header searchable="true" writable="false" signed="false" 
+    nullable="true" definitely-writable="false" case-sensitive="true" 
+    table-name="IMPORT1" schema-name="" scale="0" precision="40" 
+    column-typename="VARCHAR" column-type="12" column-display-size="40" 
+    catalogue-name="" column-label="NAME" column-name="NAME"&gt;&lt;/column-header&gt;
+      &lt;/metadata&gt;
+      &lt;row-set&gt;
+       &lt;row&gt;
+        &lt;col searchable="true" writable="false" signed="true" 
+    nullable="true" definitely-writable="false" case-sensitive="false" 
+    table-name="IMPORT1" schema-name="" scale="0" precision="10" 
+    column-typename="INTEGER" column-type="4" column-display-size="11" 
+    catalogue-name="" column-label="PRODUCTID" column-name="PRODUCTID"&gt;1&lt;/col&gt;
+        &lt;col searchable="true" writable="false" signed="false" 
+    nullable="true" definitely-writable="false" case-sensitive="true" 
+    table-name="IMPORT1" schema-name="" scale="0" precision="40" 
+    column-typename="VARCHAR" column-type="12" column-display-size="40" 
+    catalogue-name="" column-label="NAME" column-name="NAME"&gt;toothpaste&lt;/col&gt;
+       &lt;/row&gt;
+       &lt;row&gt;
+        &lt;col searchable="true" writable="false" signed="true" 
+    nullable="true" definitely-writable="false" case-sensitive="false" 
+    table-name="IMPORT1" schema-name="" scale="0" precision="10" 
+    column-typename="INTEGER" column-type="4" column-display-size="11" 
+    catalogue-name="" column-label="PRODUCTID" column-name="PRODUCTID"&gt;2&lt;/col&gt;
+        &lt;col searchable="true" writable="false" signed="false" 
+    nullable="true" definitely-writable="false" case-sensitive="true" 
+    table-name="IMPORT1" schema-name="" scale="0" precision="40" 
+    column-typename="VARCHAR" column-type="12" column-display-size="40" 
+    catalogue-name="" column-label="NAME" column-name="NAME"&gt;milk&lt;/col&gt;
+       &lt;/row&gt;
+       &lt;row&gt;
+        &lt;col searchable="true" writable="false" signed="true" 
+    nullable="true" definitely-writable="false" case-sensitive="false" 
+    table-name="IMPORT1" schema-name="" scale="0" precision="10" 
+    column-typename="INTEGER" column-type="4" column-display-size="11" 
+    catalogue-name="" column-label="PRODUCTID" column-name="PRODUCTID"&gt;3&lt;/col&gt;
+        &lt;col searchable="true" writable="false" signed="false" 
+    nullable="true" definitely-writable="false" case-sensitive="true" 
+    table-name="IMPORT1" schema-name="" scale="0" precision="40" 
+    column-typename="VARCHAR" column-type="12" column-display-size="40" 
+    catalogue-name="" column-label="NAME" column-name="NAME"&gt;bread&lt;/col&gt;
+       &lt;/row&gt;
+       &lt;row&gt;
+        &lt;col searchable="true" writable="false" signed="true" 
+    nullable="true" definitely-writable="false" case-sensitive="false" 
+    table-name="IMPORT1" schema-name="" scale="0" precision="10" 
+    column-typename="INTEGER" column-type="4" column-display-size="11" 
+    catalogue-name="" column-label="PRODUCTID" column-name="PRODUCTID"&gt;4&lt;/col&gt;
+        &lt;col searchable="true" writable="false" signed="false" 
+    nullable="true" definitely-writable="false" case-sensitive="true" 
+    table-name="IMPORT1" schema-name="" scale="0" precision="40" 
+    column-typename="VARCHAR" column-type="12" column-display-size="40" 
+    catalogue-name="" column-label="NAME" column-name="NAME"&gt;cereal&lt;/col&gt;
+       &lt;/row&gt;
+      &lt;/row-set&gt;
+    &lt;/sql&gt;
+    </pre>
+</blockquote>
+    
+    
+    
+    <a name="basic-conn">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Basic-Connection</h4>
+    <p>
+<b>Contributed by John Gentilin (johnglinux@eyecatching.com).</b>
+</p>
+    <p>What it does: illustrates two strategies for connecting to a database, executing a 
+      static query, and returning the query result.</p>
+    <p>The first strategy is to get connection information along with the static query from 
+      the stylesheet (dbtest.xsl)\ in the form of stylesheet parameters.</p>
+    <p>The second strategy is to get connection information from a nodeset in an XML source 
+      document (dbInfo.xml).</p>
+    <p>
+<a href="#dbsetup">Set up the database</a>, and run this sample from the 
+      extensions/sql/ directory.</p>
+    <p>1. To get connection information from the stylesheet:</p>
+     <code>runXalan -xsl basic-connection/dbtest.xsl -out import1.html</code>
+    <p>2. To get connection information in the form of a nodeset from the XML source document:</p>
+     <code>runXalan -in dbinfo.xml -xsl dbtest-cinfo.xsl -out import1.html</code>
+    
+    
+    <a name="ext-conn">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>ExternalConnection</h4>
+    <p>
+<b>Contributed by John Gentilin (johnglinux@eyecatching.com).</b>
+</p>
+    <p>What it does: The ExternalConnection classes uses the default implementation of the 
+     ConnectionPool interface to create a pool of connections. A stylesheet in turn uses a 
+     connection from this pool to instantiate an XConnection object and connect to a datasource.</p>
+    <p>The stylesheet uses this named connection pool to instantiate an XConnection object and 
+     connect to the datasource. The ExternalConnection class is in <code>xalansamples.jar</code>.</p>
+    <p>
+<a href="#dbsetup">Set up the database</a>, be sure <code>xalanxamples.jar</code> is on the 
+     class path, and run this sample from the extensions/sql directory:</p>
+    <code>runExtConnection ext-connection/dbtest.xsl</code>
+    <p>ExternalConnection creates the ConnectionPool, and performs a transformation with dbtest.xsl, 
+     which draws from the pool to instantiate an XConnection object, connect to the datasource, 
+     execute a static query, and return the query result.</p>
+    
+  
+    <a name="pquery">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Parameterized query</h4>
+    <p>
+<b>Contributed by John Gentilin (johnglinux@eyecatching.com).</b>
+</p>
+    <p>What it does: connects to a datasource, executes a parameterized query, and returns 
+     the result. The XML source document provides the parameter value as well as the connection 
+     information. The parameter value is in a node in the XML source.</p>
+    <p>The stylesheet gets the required connection and parameter information from the XML source, 
+     sets up and executes the parameterized query, and retuns the query result set.</p>
+    <p>
+<a href="#dbsetup">Set up the database</a>, and run this sample from the sql subdirectory:</p>
+     <code>runXalan -in pquery/dbinfo.xml -xsl pquery/dbtest.xsl -out import1.html</code>
+    
+  
+    <a name="streamable">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Streamable</h4>
+    <p>
+<b>Contributed by John Gentilin (johnglinux@eyecatching.com).</b>
+</p>
+    <p>What it does: Illustrates enabling and disabling of a streamable result set returned by a query.</p>
+    <p>With a streamable result set, you can create a query that will return many rows but the
+     result will only consume the amount of memory to represent a single row. As a benefit,
+     you can perform transformations on large amounts of data while maintaining a low memory profile. 
+     On the down side, when you use streaming, you can NOT, visit previous nodes because the SQL
+     extension only supports unidirectional cursors. If you requires that the whole query be available
+     so that you can apply templates to previous rows, just disable caching.</p>
+    <p>
+<a href="#dbsetup">Set up the database</a>, and run these samples from the sql subdirectory.</p>
+    <p>1. An example where streaming is disabled:</p>
+     <code>runXalan -in streamable/dbinfo.xml -xsl streamable/cachedNodes.xsl -out import1.html</code>
+    <p>2. An example where streaming is enabled</p>
+     <code>runXalan -in streamable/dbinfo.xml -xsl streamable/streamNodes.xsl -out import1.html</code>
+    <p>3. This example performs a pivor function swaping rows and columns, streaming is 
+     required to be disabled here.</p>
+     <code>runXalan -in streamable/dbinfo.xml -xsl streamable/pivot.xsl -out import1.html</code>
+    
+ 
+    <a name="showerror">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Show-error</h4>
+    <p>
+<b>Contributed by John Gentilin (johnglinux@eyecatching.com).</b>
+</p>
+    <p>What it does: use the SQL library ExtensionError class to return an error message 
+     in the output stream. The stylesheet calls a template with a select statement that 
+     returns a nodeset when an error occurs.</p>
+    <p>
+<a href="#dbsetup">Set up the database</a>, and run this sample from the extensions/sql subdirectory:</p>
+    <p>1. An example where we specify invalid connection information:</p>
+     <code>runXalan -in show-error/dbinfo.xml -xsl show-error/invalidConn.xsl -out import1.html</code>
+    <p>2. An example where we specify invalid parameters to a parameterized query:</p>
+     <code>runXalan -in show-error/dbinfo.xml -xsl show-error/invalidPQuery.xsl -out import1.html</code>
+    <p>3. An example where we specify an invlaid query:</p>
+     <code>runXalan -in show-error/dbinfo.xml -xsl show-error/invalidQuery.xsl -out import1.html</code>
+    
+        
+    
+    <a name="trace">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Trace</h3>
+      <p>What it does: Trace uses the TraceListener and TraceManager classes to log transformation events.</p>
+      <p>Run this sample from the Trace subdirectory with</p>
+      <p>
+<code>java Trace</code>
+</p>
+      <p>and examine the result in events.log. Additionally, run this sample from the extensions subdirectory with</p>
+      <p>
+<code>java Trace 3-java-namespace</code>
+</p>
+      <p>for the trace of a stylesheet with extensions.  For more information, see <a href="usagepatterns.html#debugging">Debugger Interface</a>
+</p>
+     <a name="validate">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Validate</h3>
+     <ul>
+     <li>
+<a href="#validatexmlinput">ValidateXMLInput</a>
+</li>
+     <li>
+<a href="#validateutility">Validate utility</a>
+</li>
+     </ul>
+<a name="validatexmlinput">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>ValidateXMLInput</h4>
+     <p>What it does: Uses <a href="apidocs/javax/xml/parsers/SAXParserFactory.html">SAXParserFactory</a> to turn on validation, and 
+     <a href="apidocs/org/xml/sax/XMLReader.html">XMLReader</a> to parse the XML input and report errors and warnings to a SAX event
+     handler. The XML input (birds.xml) contains an internal DOCTYPE declaration, and a few minor document type violations, which you are 
+     invited to fix, add to, and vary in any way you find useful.</p>
+     <p>Run this sample from the Validate subdirectory with</p>
+     <p>
+<code>java ValidateXMLInput</code>
+</p>
+     <a name="validateutility">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Validate utility</h4>
+     <p>What it does: Uses the <a href="apidocs/javax/xml/parsers/SAXParser.html">JAXP SAXParser</a> with a SAX event handler 
+     (extends <a href="apidocs/org/xml/sax/helpers/DefaultHandler.html">DefaultHandler</a> and implements 
+     <a href="apidocs/org/xml/sax/ext/LexicalHandler.html">LexicalHandler</a>) to verify that XML files conform to their declared 
+     document type. You can use this utility to verify that an individual file or all the .xml files in a directory are
+     well-formed and valid. Each .xml file should contain a DOCTYPE declaration.</p>
+     <p>Run this sample from any directory with</p>
+     <p>
+<code>java Validate <b>
+<i>file-or-dir-name</i>
+</b> [<b>
+<i>logfile</i>
+</b>
+</code>]</p>
+     <p>where <b>
+<i>file-or-dir-name</i>
+</b> is an XML file or directory pathname, and <b>
+<i>logfile</i>
+</b> designates a log.
+     If you omit the second argument, Validate reports its findings to the screen.</p>
+     <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">A limitation: Files containing document parts appear to fail if you check them with Validate. Check readme.xml, 
+     which "includes" by entity reference a number of files, and it passes. The parse operation scans the entire document
+     with the includes. Check an "included" file (such as history.xml) as if it were an independent document and it fails.</td>
+</tr>
+</table>
+     
+     
+
+     <a name="trax">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>trax (JAXP transform samples)</h3>
+     <p>What it does: runs a number of samples illustrating uses of the <a href="trax.html">JAXP transform interfaces</a>.</p>
+     <p>Run this sample from the trax subdirectory with</p>
+     <p>
+<code>java Examples</code>
+</p>
+     <p>and examine the source in Examples.java and ExampleContentHandler.java.</p>
+     
+     
+     <a name="transformthread">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>TransformThread</h3>
+     <p>What it does: spawns multiple threads, with each thread running two transformations on two different XML files.</p>
+     <p>Run this sample from the TransformThread subdirectory with</p>
+     <p>
+<code>java TransformThread</code>
+</p>
+     <p>and examine the source in TransformThread.java. A more detailed description along with configuration options are listed in the header.</p>
+     
+     
+     <a name="applyxpath">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>ApplyXPath</h3>
+     <p>What it does: ApplyXPath uses the convenience methods in the Xalan-Java 2 specific <a href="apidocs/org/apache/xpath/XPathAPI.html">XPathAPI</a> to
+     execute an XPath expression against an XML document and return the nodes (if any) it finds.</p>
+     <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">You can use this sample as an aid when you want to find out what a given XPath expression returns from a
+     given XML file. Keep in mind that the context node (base point of evaluation) for the XPath expression is the document
+     root.</td>
+</tr>
+</table>
+     <p>Run this sample from the ApplyXPath subdirectory with</p> 
+     <p>
+<code>java ApplyXPath <b>
+<i>XMLFile XPathExpression</i>
+</b>
+</code>
+</p>
+     <p>where <b>
+<i>XMLFile</i>
+</b> is an XML source file and <b>
+<i>XPathExpression</i>
+</b> is an XPath expression to
+     apply to that file. The ApplyXPath subdirectory contains an XML file named foo.xml --<br />
+          <code>&lt;doc&gt;&lt;name first="David" last="Marston"/&gt;...&lt;/doc&gt;</code>
+<br /> -- so you can try command
+     lines like</p>
+     <p>
+<code>java ApplyXPath foo.xml /</code>
+</p>
+     <p>and</p>
+     <p>
+<code>java ApplyXPath foo.xml /doc/name/@first</code>
+</p>
+     <p>For more information, see <a href="usagepatterns.html#xpath">Working with XPath expressions</a>.</p>
+     
+    
+     <a name="applyxpathdom">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>ApplyXPathDOM</h3>
+     <p>What it does: ApplyXPathDOM is very similar to the <a href="#applyxpath">ApplyXPath</a> sample, but it uses the API 
+     in the <a href="http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/">DOM Level 3 XPath 
+     Specification</a> to execute an XPath expression against an XML document and return 
+     the nodes (if any) it finds.</p>
+     <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">You can use this sample as an aid when you want to find out what a given XPath expression returns from a
+     given XML file. Keep in mind that the context node (base point of evaluation) for the XPath expression is the document
+     root.</td>
+</tr>
+</table>
+     <p>Run this sample from the ApplyXPathDOM subdirectory with</p> 
+     <p>
+<code>java ApplyXPathDOM <b>
+<i>XMLFile XPathExpression</i>
+</b>
+</code>
+</p>
+     <p>where <b>
+<i>XMLFile</i>
+</b> is an XML source file and <b>
+<i>XPathExpression</i>
+</b> is an XPath expression to
+     apply to that file. The ApplyXPathDOM subdirectory contains an XML file named foo.xml --<br />
+          <code>&lt;doc&gt;&lt;name first="David" last="Marston"/&gt;...&lt;/doc&gt;</code>
+<br /> -- so you can try command
+     lines like</p>
+     <p>
+<code>java ApplyXPathDOM foo.xml /</code>
+</p>
+     <p>and</p>
+     <p>
+<code>java ApplyXPathDOM foo.xml /doc/name/@first</code>
+</p>
+     <p>For more information, see <a href="usagepatterns.html#xpath">Working with XPath expressions</a>.</p>
+     
+     
+     <a name="applyxpathjaxp">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>ApplyXPathJAXP</h3>
+     <p>What it does: ApplyXPathJAXP is similar to the <a href="#applyxpath">ApplyXPath</a> sample, but it uses the XPath API in JAXP 1.3
+     to evaluate an XPath expression against an XML document and return the evaluation result in the specified type.</p>
+     <p>Run this sample from the XPathAPI subdirectory with</p>
+     <p>
+<code>java ApplyXPathJAXP <b>
+<i>XMLFile XPathExpression ReturnType</i>
+</b>
+</code>
+</p>
+     <p>where <b>
+<i>XMLFile</i>
+</b> is an XML source file, <b>
+<i>XPathExpression</i>
+</b> is an XPath expression to 
+     apply to that file, and <b>
+<i>ReturnType</i>
+</b> is one of the strings from the list {"num", "bool", "str", "node", "nodeset"}
+     designating the return type of the evaluation. The XPathAPI subdirectory contains an XML file named 
+     foo.xml. So you can try command lines like</p>
+     <p>
+<code>java ApplyXPathJAXP foo.xml /doc/name[1]/@last str</code>
+</p>
+     <p>and</p>
+     <p>
+<code>java ApplyXPathJAXP foo.xml /doc/name nodeset</code>
+</p>
+     
+
+     <a name="xpathresolver">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XPathResolver</h3>
+     <p>What it does: XPathResolver provides sample implementations of the NamespaceContext, XPathFunctionResolver 
+     and XPathVariableResolver interfaces described in the <a href="apidocs/javax/xml/xpath/XPath.html">
+     JAXP 1.3 XPath API</a>. 
+     The sample demonstrates how these implementations can be used to to evaluate XPath expressions that contain 
+     extension functions and references to variables.</p>
+     <p>Run this sample from the XPathAPI subdirectory with</p>
+     <p>
+<code>java XPathResolver</code>
+</p>
+     
+
+     <a name="extensionresolver">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>ExtensionFunctionResolver</h3>
+     <p>What it does: ExtensionFunctionResolver demonstrates how to use the sample implementation of XPathFunctionResolver to 
+     evaluate XPath expressions containing Java or EXSLT extension functions.</p>
+     <p>To run this sample from the XPathAPI subdirectory, you need to compile ExtensionTest.java first and put
+     the XPathAPI directory on your classpath. Run the sample using</p>
+     <p>
+<code>java ExtensionFunctionResolver</code>
+</p>
+     
+     
+     <a name="translets">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Translets</h3>
+                 <ul>
+                 <li>
+<a href="#xsltc1">JAXPTransletOneTransformation</a>
+</li>
+                 <li>
+<a href="#xsltc2">JAXPTransletMultipleTransformations</a>
+</li>
+                 <li>
+<a href="#xsltcother">Other XSLTC samples</a>
+</li>   
+                 </ul>
+                 <p>You can use the JAXP interfaces to compile and run translets.
+                 For an overview of the usage patterns these samples illustrate, see 
+                 <a href="xsltc_usage.html#api">Calling XSLTC with the JAXP API</a>.</p>
+                 <a name="xsltc1">‌</a>
+                 <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>JAXPTransletOneTransformation</h4>
+                 <p>What it does: Uses the XSLTC TransformerFactory to compile a translet and use
+                 the translet to transform the XSLTC to-do list from XML into HTML.</p>
+                 <p>Run this sample from the translets subdirectory with</p>
+                 <p>
+<code>java JAXPTransletOneTransformation</code>
+</p>
+                 <p>View the result in todo.html.</p>
+                 <a name="xsltc2">‌</a>
+                 <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>JAXPTransletMultipleTransformations</h4>
+                 <p>What it does: Uses the XSLTC TransformerFactory to compile a translet and use
+                 the Templates object associated with the translet to transform the XSLTC and Xalan to-do lists from XML 
+                 into HTML.</p>
+                 <p>Run this sample from the translets subdirectory with</p>
+                 <p>
+<code>java JAXPTransletMultipleTransformations</code>
+</p>
+                 <p>View the results in todo.html and todotoo.html.</p>                
+                 <a name="xsltcother">‌</a>
+                 <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Other XSLTC samples</h4>
+                 <p>Other XSLTC samples are located in the following samples subdirectories:</p>
+                 <ul>
+                 <li>CompiledServlet</li>
+                 <li>CompiledBrazil</li>
+                 <li>CompiledJAXP</li>
+                 <li>CompiledApplet</li>
+                 <li>CompiledEJB</li>
+                 </ul>
+                 <p>For information about each of these samples, consult the README file in the subdirectory.</p>
+                 <p>XSLTC provides demos for using XSLTC as a servlet and as a handler for
+                 Brazil (a new and powerful Web techology from Sun labs).</p>
+                 <p>To run the Brazil-handler demo, download Brazil from sunlabs:</p>
+                 <p>
+<code>    <a href="http://research.sun.com/research/download/index.html">http://research.sun.com/research/download/index.html</a>
+</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>    translet=mk054</code>
+</p>
+                 <p>The document must be specified as a valid URL. For example:</p>
+                 <p>
+<code>    document=http://server/path/to/filename.xml</code>
+</p>
+                 <p>If the file is local to the Brazil handler, it has to be
+                specified using the "file:filename.xml" format.</p>
+                <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">In order to run the Brazil-handler demo, you also need to
+                      make the Brazil and javax classes available from your
+                      classpath</td>
+</tr>
+</table>
+                 <p>To run the servlet demo, download the java extensions for servlets from Sun:</p>
+                 <p>
+<code>    
+                 <a href="http://java.sun.com/products/servlet/download.html">
+                 http://java.sun.com/products/servlet/download.html</a>
+</code>
+</p>
+                 
+                 
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/trax.html b/xalan-j/trax.html
new file mode 100644
index 0000000..f60caa7
--- /dev/null
+++ b/xalan-j/trax.html
@@ -0,0 +1,546 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Using the JAXP Transform APIs</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Using the JAXP Transform APIs</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>Transform API<br />
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Using the JAXP Transform APIs</h2>
+<ul>
+ <li>
+<a href="#intro">Introduction</a>
+</li>
+ <li>
+<a href="#terminology">General Terminology</a>
+</li>
+ <li>
+<a href="#model">Model</a>
+</li>
+ <li>
+<a href="#patterns">Patterns</a>
+</li> 
+</ul>
+<a name="intro">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3>   
+<p>This document describes the transformation API for XML (TrAX), the set of APIs contained in
+	 <a href="apidocs/javax/xml/transform/package-summary.html">javax.xml.transform</a>, <a href="apidocs/javax/xml/transform/stream/package-summary.html">javax.xml.transform.stream</a>, <a href="apidocs/javax/xml/transform/dom/package-summary.html">javax.xml.transform.dom</a>, and <a href="apidocs/javax/xml/transform/sax/package-summary.html">javax.xml.transform.sax</a>.</p> 
+  
+<p>There is a broad need for Java applications to be able to transform XML
+	 and related tree-shaped data structures. In fact, XML is not normally very
+	 useful to an application without going through some sort of transformation,
+	 unless the semantic structure is used directly as data. Almost all XML-related
+	 applications need to perform transformations. Transformations may be described
+	 by Java code, Perl code, <a href="http://www.w3.org/TR/xslt">XSLT</a>
+	 Stylesheets, other types of script, or by proprietary formats. The inputs, one
+	 or multiple, to a transformation, may be a URL, XML stream, a DOM tree, SAX
+	 Events, or a proprietary format or data structure. The output types are 
+	 pretty much the same types as the inputs, but different inputs may need to be
+	 combined with different outputs.</p> 
+  
+<p>The great challenge of a transformation API is how to deal with all the
+	 possible combinations of inputs and outputs, without becoming specialized for
+	 any of the given types.</p> 
+   
+<a name="terminology">‌</a>	 
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>General Terminology</h3> 
+	 
+<p>This section will explain some general terminology used in this
+		document. Technical terminology will be explained in the Model section. In many
+		cases, the general terminology overlaps with the technical terminology.</p> 
+	 
+<div class="glossary">
+<p class="label">
+<em>Tree</em>
+</p>
+<blockquote class="item">This term, as used within this document, describes an
+			 abstract structure that consists of nodes or events that may be produced by
+			 XML. A Tree physically may be a DOM tree, a series of well balanced parse
+			 events (such as those coming from a SAX2 ContentHander), a series of requests
+			 (the result of which can describe a tree), or a stream of marked-up
+			 characters.</blockquote>
+
+<p class="label">
+<em>Source Tree(s)</em>
+</p>
+<blockquote class="item">One or more trees that are the inputs to the
+			 transformation.</blockquote>
+
+<p class="label">
+<em>Result Tree(s)</em>
+</p>
+<blockquote class="item">One or more trees that are the output of the
+			 transformation.</blockquote>
+
+
+
+<p class="label">
+<em>Transformation</em>
+</p>
+<blockquote class="item">The process of consuming a stream or tree to produce
+			 another stream or tree.</blockquote>
+
+
+
+<p class="label">
+<em>Identity (or Copy) Transformation</em>
+</p>
+<blockquote class="item">The process of transformation from a source to a result,
+			 making as few structural changes as possible and no informational changes. The
+			 term is somewhat loosely used, as the process is really a copy from one
+			 "format" (such as a DOM tree, stream, or set of SAX events) to
+			 another.</blockquote>
+
+
+
+<p class="label">
+<em>Serialization</em>
+</p>
+<blockquote class="item">The process of taking a tree and turning it into a stream. In
+			 some sense, a serialization is a specialized transformation.</blockquote>
+
+
+
+<p class="label">
+<em>Parsing</em>
+</p>
+<blockquote class="item">The process of taking a stream and turning it into a tree. In
+			 some sense, parsing is a specialized transformation.</blockquote>
+
+
+
+<p class="label">
+<em>Transformer</em>
+</p>
+<blockquote class="item">A Transformer is the object that executes the transformation.
+			 </blockquote>
+
+
+
+<p class="label">
+<em>Transformation instructions</em>
+</p>
+<blockquote class="item">Describes the transformation. A form of code, script, or
+			 simply a declaration or series of declarations.</blockquote>
+
+
+
+<p class="label">
+<em>Stylesheet</em>
+</p>
+<blockquote class="item">The same as "transformation instructions," except it is
+			 likely to be used in conjunction with <a href="http://www.w3.org/TR/xslt">XSLT</a>.</blockquote>
+
+
+
+<p class="label">
+<em>Templates</em>
+</p>
+<blockquote class="item">Another form of "transformation instructions." In the TrAX
+			 interface, this term is used to describe processed or compiled transformation
+			 instructions. The Source flows through a Templates object to be formed into the
+			 Result.</blockquote>
+
+
+
+<p class="label">
+<em>Processor</em>
+</p>
+<blockquote class="item">A general term for the thing that may both process the
+			 transformation instructions, and perform the transformation.</blockquote>
+
+       
+
+
+<p class="label">
+<em>DOM</em>
+</p>
+<blockquote class="item">Document Object Model, specifically referring to the <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/">DOM level 3</a>
+                         Specification.</blockquote>
+			 
+
+<p class="label">
+<em>SAX</em>
+</p>
+<blockquote class="item">Simple API for XML, specifically referring to the
+			 <a href="http://www.saxproject.org/">SAX 2.0
+			 release</a>.</blockquote>
+</div> 
+
+ <a name="model">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Model</h3> 
+  
+<p>The section defines the abstract model for TrAX, apart from the details
+	 of the interfaces.</p> 
+  
+<p>A TrAX <a href="#pattern-TransformerFactory">TransformerFactory</a> is an object
+	 that processes transformation instructions, and produces
+	 <a href="#pattern-Templates">Templates</a> (in the technical
+	 terminology). A <a href="#pattern-Templates">Templates</a>
+	 object provides a <a href="#pattern-Transformer">Transformer</a>, which transforms one or
+	 more <a href="#pattern-Source">Source</a>s into one or more
+	 <a href="#pattern-Result">Result</a>s.</p> 
+  
+<p>To use the TrAX interface, you create a
+	 <a href="#pattern-TransformerFactory">TransformerFactory</a>,
+	 which may directly provide a <a href="#pattern-Transformer">Transformer</a>, or which can provide
+	 <a href="#pattern-Templates">Templates</a> from a variety of
+	 <a href="#pattern-Source">Source</a>s. The
+	 <a href="#pattern-Templates">Templates</a> object is a processed
+	 or compiled representation of the transformation instructions, and provides a
+	 <a href="#pattern-Transformer">Transformer</a>. The
+	 <a href="#pattern-Transformer">Transformer</a> processes a
+	 <a href="#pattern-Transformer">Source</a> according to the
+	 instructions found in the <a href="#pattern-Templates">Templates</a>, and produces a
+	 <a href="#pattern-Result">Result</a>.</p> 
+  
+<p>The process of transformation from a tree, either in the form of an
+	 object model, or in the form of parse events, into a stream, is known as
+	 <b>
+<i>serialization</i>
+</b>.</p> 
+<a name="patterns">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>TrAX Patterns</h3>
+<p>The intent, responsibilities, and thread safety of TrAX objects:</p>
+<ul>
+  <li>
+<a href="#pattern-Processor">Processor</a>
+</li>
+  <li>
+<a href="#pattern-TransformerFactory">TransformerFactory</a>
+</li>
+  <li>
+<a href="#pattern-Templates">Templates</a>
+</li>
+  <li>
+<a href="#pattern-Transformer">Transformer</a>
+</li>
+  <li>
+<a href="#pattern-Source">Source</a>
+</li>
+  <li>
+<a href="#pattern-Result">Result</a>
+</li>  
+</ul>
+<a name="pattern-Processor">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Processor</h4>
+<div class="glossary">
+<p class="label">
+<em>Intent</em>
+</p>
+<blockquote class="item">Generic concept for the
+  set of objects that implement the TrAX interfaces.</blockquote>
+<p class="label">
+<em>Responsibilities</em>
+</p>
+<blockquote class="item">Create compiled transformation instructions, transform
+  sources, and manage transformation parameters and
+  properties.</blockquote>
+<p class="label">
+<em>Thread safety</em>
+</p>
+<blockquote class="item">Only the Templates object can be
+  used concurrently in multiple threads. The rest of the processor does not do
+  synchronized blocking, and so may not be used to perform multiple concurrent
+  operations.</blockquote>
+</div>
+ <a name="pattern-TransformerFactory">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>TransformerFactory</h4>
+<div class="glossary">
+<p class="label">
+<em>Intent</em>
+</p>
+<blockquote class="item">Serve as a vendor-neutral Processor interface for
+  <a href="http://www.w3.org/TR/xslt">XSLT</a> and similar
+  processors.</blockquote>
+<p class="label">
+<em>Responsibilities</em>
+</p>
+<blockquote class="item">Serve as a factory for a concrete
+  implementation of an TransformerFactory, serve as a direct factory for
+  Transformer objects, serve as a factory for Templates objects, and manage
+  processor specific features.</blockquote>
+<p class="label">
+<em>Thread safety</em>
+</p>
+<blockquote class="item">A TransformerFactory may not perform mulitple concurrent
+  operations.</blockquote>
+</div>  
+<a name="pattern-Templates">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Templates</h4>
+<div class="glossary">
+<p class="label">
+<em>Intent</em>
+</p>
+<blockquote class="item">The runtime representation of the transformation instructions.</blockquote>
+<p class="label">
+<em>Responsibilities</em>
+</p>
+<blockquote class="item">A data bag for transformation instructions; act as a factory
+  for Transformers.</blockquote>
+<p class="label">
+<em>Thread safety</em>
+</p>
+<blockquote class="item">Threadsafe for concurrent
+  usage over multiple threads once construction is complete.</blockquote>
+</div>  
+<a name="pattern-Transformer">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Transformer</h4>
+<div class="glossary">
+<p class="label">
+<em>Intent</em>
+</p>
+<blockquote class="item">Act as a per-thread
+  execution context for transformations, act as an interface for performing the
+  transformation.</blockquote>
+<p class="label">
+<em>Responsibilities</em>
+</p>
+<blockquote class="item">Perform the
+  transformation.</blockquote>
+<p class="label">
+<em>Thread safety</em>
+</p>
+<blockquote class="item">Only one instance per thread
+  is safe.</blockquote>
+</div>  
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The Transformer is bound to the Templates
+  object that created it.</td>
+</tr>
+</table>
+<a name="pattern-Source">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Source</h4>
+<div class="glossary">
+<p class="label">
+<em>Intent</em>
+</p>
+<blockquote class="item">Serve as a
+  single vendor-neutral object for multiple types of input.</blockquote>
+<p class="label">
+<em>Responsibilities</em>
+</p>
+<blockquote class="item">Act as simple data holder for System IDs, DOM nodes, streams,
+  etc.</blockquote>
+<p class="label">
+<em>Thread safety</em>
+</p>
+<blockquote class="item">Threadsafe concurrently over multiple
+  threads for read-only operations; must be synchronized for edit
+  operations.</blockquote>
+</div>  
+<a name="pattern-Result">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Result</h4>
+<div class="glossary">
+<p class="label">
+<em>Intent</em>
+</p>
+<blockquote class="item">Serve
+  as a single object for multiple types of output, so there can be simple process
+  method signatures.</blockquote>
+<p class="label">
+<em>Responsibilities</em>
+</p>
+<blockquote class="item">Act as simple data holder for
+  output stream, DOM node, ContentHandler, etc.</blockquote>
+<p class="label">
+<em>Thread safety</em>
+</p>
+<blockquote class="item">Threadsafe concurrently over multiple threads for read-only,
+  must be synchronized for edit.</blockquote>
+</div>
+ 
+ 
+ <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/usagepatterns.html b/xalan-j/usagepatterns.html
new file mode 100644
index 0000000..88cecbd
--- /dev/null
+++ b/xalan-j/usagepatterns.html
@@ -0,0 +1,1026 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Basic usage patterns</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Basic usage patterns</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>Usage Patterns<br />
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Basic usage patterns</h2>
+<ul>
+<li>
+<a href="#basic">Basic steps</a>
+</li>
+<li>
+<a href="#plug">Plugging in the Transformer and XML parser</a>
+</li>
+<li>
+<a href="#outputprops">Configuring serialization output properties</a>
+</li>
+<li>
+<a href="#outputencoding">Caution: setting output encoding in the stylesheet</a>
+</li>
+<li>
+<a href="#incremental">Performing incremental transformations</a>
+</li>
+<li>
+<a href="#embed">Working with embedded stylesheets</a>
+</li>
+<li>
+<a href="#params">Setting stylesheet parameters</a>
+</li>
+<li>
+<a href="#serialize">Serializing output</a>
+</li>
+<li>
+<a href="#sax">Explicitly working with SAX</a>
+</li>
+<li>
+<a href="#outasin">Using transformation output as input for another transformation</a>
+</li>
+<li>
+<a href="#dom">Processing and producing DOM trees</a>
+</li>
+<li>
+<a href="#xpath">Working with XPath expressions</a>
+</li>
+<li>
+<a href="#applet">Using the Xalan-Java applet wrapper</a>
+</li>
+<li>
+<a href="#servlet">Using Xalan-Java in a servlet</a>
+</li>
+<li>
+<a href="#extensions">Creating and using extensions</a>
+</li>
+<li>
+<a href="#multithreading">Multithreading</a>
+</li>
+<li>
+<a href="#debugging">Debugger interface</a>
+</li>
+</ul>
+<p>See also: <a href="features.html">Transform Features</a>.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Unless otherwise specified, the usage discussed in this section refers to 
+the Xalan-Java Interpretive processor. See <a href="xsltc_usage.html">Getting Started Using  
+XSLTC</a> for information on using the Xalan-Java Compiling processor.</td>
+</tr>
+</table>
+<br />
+<a name="basic">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Basic steps</h3>
+    <ol>
+    <li>
+<a href="#transformerfactory">Instantiate a TransformerFactory</a>
+</li>
+    <li>
+<a href="#transformer">Process the stylesheet and generate a Transformer</a>
+</li>
+    <li>
+<a href="#transformation">Perform the transformation</a>
+</li>
+  </ol>
+    <p>The following example illustrates the three basic steps involved in performing a transformation.</p>
+    <blockquote class="source">
+<pre>// 1. Instantiate a TransformerFactory.
+javax.xml.transform.TransformerFactory tFactory = 
+                  javax.xml.transform.TransformerFactory.newInstance();
+
+// 2. Use the TransformerFactory to process the stylesheet Source and
+//    generate a Transformer.
+javax.xml.transform.Transformer transformer = tFactory.newTransformer
+                (new javax.xml.transform.stream.StreamSource("foo.xsl"));
+
+// 3. Use the Transformer to transform an XML Source and send the
+//    output to a Result object.
+transformer.transform
+    (new javax.xml.transform.stream.StreamSource("foo.xml"), 
+     new javax.xml.transform.stream.StreamResult( new
+                                  java.io.FileOutputStream("foo.out")));</pre>
+</blockquote>
+  <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">For a working example of this model at its simplest, see SimpleTransform.java in the java/samples/SimpleTransform subdirectory.</td>
+</tr>
+</table>
+  <a name="transformerfactory">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>1. Instantiate a TransformerFactory</h3>
+  <p>
+<a href="apidocs/javax/xml/transform/TransformerFactory.html">TransformerFactory</a> is an abstract class with a static newInstance() method that instantiates the concrete subclass designated by the javax.xml.transform.TransformerFactory system property.</p>
+  <p>The default setting for this system property is <a href="apidocs/org/apache/xalan/processor/TransformerFactoryImpl.html">org.apache.xalan.processor.TransformerFactoryImpl</a>.</p>
+<a name="transformer">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>2. Use the TransformerFactory to process the stylesheet Source and produce a Transformer</h3>
+<p>The TransformerFactory <a href="apidocs/javax/xml/transform/TransformerFactory.html#newTransformer(javax.xml.transform.Source)">newTransformer(Source xslSource)</a> method processes the stylesheet Source into a Templates object and returns a Transformer that you can use to perform a transformation (apply the Templates object to an XML Source).</p>
+<p>You may provide the stylesheet Source in the form of a stream of XML markup (<a href="apidocs/javax/xml/transform/stream/StreamSource.html">StreamSource</a>), a DOM Node (<a href="apidocs/javax/xml/transform/dom/DOMSource.html">DOMSource</a>), or a SAX InputSource (<a href="apidocs/javax/xml/transform/sax/SAXSource.html">SAXSource</a>). To specify a StreamSource, you may use a system ID or file name (using URI syntax), a java.io.InputStream, or a java.io.Reader. The use of DOMSource and SAXSource are illustrated in subsequent sections.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">If you plan to use the stylesheet Source to transform multiple XML Sources, you should use the TransformerFactory <a href="apidocs/javax/xml/transform/TransformerFactory.html#newTemplates(javax.xml.transform.Source)">newTemplates(Source xslSource)</a> method to explicitly generate a Templates object. For each transformation, use the Templates object to generate a new Transformer. For the details, see <a href="#multithreading">Multithreading</a>.</td>
+</tr>
+</table>
+<a name="transformation">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>3. Use the Transformer to perform a transformation</h3>
+<p>Use the Transformer <a href="apidocs/javax/xml/transform/Transformer.html#transform(javax.xml.transform.Source,javax.xml.transform.Result">transform(Source xmlSource, Result transformResult)</a> method to transform  the XML Source and place the transformation output in a Result object.</p>
+<p>Just as with the stylesheet, you can supply the XML Source in the form of a <a href="apidocs/javax/xml/transform/stream/StreamSource.html">StreamSource</a>, <a href="apidocs/javax/xml/transform/dom/DOMSource.html">DOMSource</a>, or <a href="apidocs/javax/xml/transform/sax/SAXSource.html">SAXSource</a>. Likewise, the Result may be a <a href="apidocs/javax/xml/transform/stream/StreamResult.html">StreamResult</a>, <a href="apidocs/javax/xml/transform/dom/DOMResult.html">DOMResult</a>, or <a href="apidocs/javax/xml/transform/sax/SAXResult.html">SAXResult</a>.</p>
+<p>For each node in the XML source, the Transformer uses the transformation instructions in the Templates object to determine which template to apply: one of the templates in the Templates object, a default template rule as specified in the XSLT spec, or none.</p>
+<a name="plug">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Plugging in a Transformer and XML parser</h3>
+<p>The Java API for XML Processing interfaces enable you to isolate your application from the internal implementation details of a given Transformer, SAX parser, or DOM parser. For each of these objects, there is an abstract Factory class with a static newInstance() method that instantiates a concrete Factory which wraps the underlying implementation. These newInstance() methods use system property settings to determine which implementation to instantiate.</p>
+<p>Xalan-Java is distributed with a system property setting for the Xalan-Java processor. This setting is in <code>xalan.jar</code> in META-INF/services (see src/META-INF/services).</p>
+<div class="glossary">
+  <p class="label">
+<em>System property</em>
+</p>
+    <blockquote class="item">Setting</blockquote>
+  <p class="label">
+<em>
+<code>javax.xml.transform.TransformerFactory</code>
+</em>
+</p>
+   <blockquote class="item">
+<code>org.apache.xalan.processor.TransformerFactoryImpl</code>
+</blockquote>
+</div>
+<p>If you are using Xerces, the XML parser factory settings are as follows:</p>
+<div class="glossary">
+  <p class="label">
+<em>System property</em>
+</p>
+    <blockquote class="item">Setting</blockquote>
+  <p class="label">
+<em>
+<code>javax.xml.parsers.DocumentBuilderFactory</code>
+</em>
+</p>
+   <blockquote class="item">
+<code>org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</code>
+</blockquote>    
+  <p class="label">
+<em>
+<code>javax.xml.parsers.SAXParserFactory</code>
+</em>
+</p>
+   <blockquote class="item">
+<code>org.apache.xerces.jaxp.SAXParserFactoryImpl</code>
+</blockquote>
+ </div>
+<p>You can change any of these settings as follows (in order of precedence):</p>
+<ol>
+  <li>Set the system property from the command line when you launch Java or from within your application.<br />
+<br />
+</li>
+  <li>Set the system property in jaxp.properties in the JAVA_HOME/lib directory, where JAVA_HOME is the root of the JDK.<br />
+<br />
+</li>
+  <li>Revise the entry in src/META-INF/services and rebuild <code>xalan.jar</code> or <code>xercesImpl.jar</code>, depending on which entry you have changed.<br />
+<br />
+</li>
+</ol>
+<p>For example, to use the Crimson XML parser in place of the Xerces XML parser, place Crimson on the class path and set the 
+<code>javax.xml.parsers.SAXParserFactory</code> system property to <code>org.apache.crimson.jaxp.SAXParserFactoryImpl</code>.</p>
+<p>For more information about the mechanism used to determine system property values and how you can plug other implementations into your applications, see "Section 3: Plugability Layer" in the <b>
+<i>Java API for XML Processing</i>
+</b> at 
+<a href="http://java.sun.com/aboutJava/communityprocess/review/jsr063/index.html">JSR-000063 1.1</a>.</p> 
+<a name="outputprops">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Configuring serialization output properties</h3>
+<p>Output properties for XML, HTML, and text transformation output are defined in property files in the org.apache.xml.serializer package.</p>
+<p>You can override the default value of these properties in your stylesheet by using the attributes of an xsl:output element. 
+You can override the Xalan specific default settings as follows:</p>
+<ol>
+  <li>Declare the xalan namespace in your stylesheet element (xmlns:xalan="http://xml.apache.org/xalan").<br />
+<br />
+</li>
+  <li>Use the namespace prefix you assign (for example, "xalan") to redefine properties of interest in the stylesheet xsl:output
+      element (for example, xalan:indent-amount="5").</li>
+</ol>
+<p>The following stylesheet fragment declares the xalan namespace and sets indent-amount to 2:</p>
+<blockquote class="source">
+<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xalan="http://xml.apache.org/xalan"&gt;
+                
+  &lt;xsl:output method="xml" 
+              encoding="UTF-8"
+              indent="yes" 
+              xalan:indent-amount="2"/&gt;</pre>
+</blockquote>
+  <p>If you want to change the property settings globally, edit the values in the property files in src/org/apache/xml/serializer, 
+  and use Ant to <a href="readme.html#jar">rebuild <code>serializer.jar</code>
+</a>. Be aware that if you change the default value
+  of a standard property, such as the default encoding value, this may be in conflict with the default value specified by the XSLT 1.0 
+  recommendation.</p>
+<p>The properties files define the following properties:</p>
+<p>
+<b>
+<i>output_xml.properties</i>
+</b>:</p>
+<table border="1">
+  <tr>
+    <th class="content" rowspan="1" colspan="1">Property</th>
+    <th class="content" rowspan="1" colspan="1">Default value</th>
+  </tr>  
+  <tr>
+    <td class="content" rowspan="1" colspan="1">version</td>
+    <td class="content" rowspan="1" colspan="1">1.0</td>
+  </tr>  
+  <tr>
+    <td class="content" rowspan="1" colspan="1">encoding</td>
+    <td class="content" rowspan="1" colspan="1">UTF-8</td>
+  </tr>  
+  <tr>
+    <td class="content" rowspan="1" colspan="1">indent</td>
+    <td class="content" rowspan="1" colspan="1">no</td>
+  </tr>  
+  <tr>
+    <td class="content" rowspan="1" colspan="1">omit-xml-declaration</td>
+    <td class="content" rowspan="1" colspan="1">no</td>
+  </tr> 
+  <tr>
+    <td class="content" rowspan="1" colspan="1">standalone</td>
+    <td class="content" rowspan="1" colspan="1">no</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">media-type</td>
+    <td class="content" rowspan="1" colspan="1">text/xml</td>
+  </tr>     
+  <tr>
+    <td class="content" rowspan="1" colspan="1">xalan:indent-amount</td>
+    <td class="content" rowspan="1" colspan="1">0</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">xalan:content-handler</td>
+    <td class="content" rowspan="1" colspan="1">org.apache.xml.serializer.ToXMLStream</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">xalan:entities</td>
+    <td class="content" rowspan="1" colspan="1">org/apache/xml/serializer/XMLEntities</td>
+  </tr>
+</table>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The xalan:content-handler property specifies the default name of the Java class that implements the 
+<a href="apidocs/org/xml/sax/ContentHandler.html">org.xml.sax.ContentHandler</a>
+interface and recieves calls during result tree serialization. If you specify an 
+alternate Java class it must implement the ContentHandler interface.</td>
+</tr>
+</table>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">You can also create your own XML entity file (mapping characters to
+entities) or edit src/org/apache/xml/serializer/XMLEntities.properties and
+rebuild <code>serializer.jar</code>.</td>
+</tr>
+</table>
+<p>
+<b>
+<i>output_html.properties</i>
+</b>:</p>
+<table border="1">
+  <tr>
+    <th class="content" rowspan="1" colspan="1">Property</th>
+    <th class="content" rowspan="1" colspan="1">Default value</th>
+  </tr>  
+  <tr>
+    <td class="content" rowspan="1" colspan="1">version</td>
+    <td class="content" rowspan="1" colspan="1">4.0</td>
+  </tr> 
+  <tr>
+    <td class="content" rowspan="1" colspan="1">indent</td>
+    <td class="content" rowspan="1" colspan="1">yes</td>
+  </tr>   
+  <tr>
+    <td class="content" rowspan="1" colspan="1">media-type</td>
+    <td class="content" rowspan="1" colspan="1">text/html</td>
+  </tr>   
+  <tr>
+    <td class="content" rowspan="1" colspan="1">xalan:indent-amount</td>
+    <td class="content" rowspan="1" colspan="1">0</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">xalan:content-handler</td>
+    <td class="content" rowspan="1" colspan="1">org.apache.xml.serializer.ToHTMLStream</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">xalan:entities</td>
+    <td class="content" rowspan="1" colspan="1">org/apache/xml/serializer/HTMLEntities</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">xalan:use-url-escaping</td>
+    <td class="content" rowspan="1" colspan="1">yes</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">xalan:omit-meta-tag</td>
+    <td class="content" rowspan="1" colspan="1">no</td>
+  </tr>
+</table>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The xalan:content-handler property specifies the default name of the Java class that implements the 
+<a href="apidocs/org/xml/sax/ContentHandler.html">org.xml.sax.ContentHandler</a>
+interface and recieves calls during result tree serialization. If you specify an 
+alternate Java class it must implement the ContentHandler interface.</td>
+</tr>
+</table>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">You can also create your own HTML entity file (mapping characters to entities) 
+or edit src/org/apache/xml/serializer/HTMLEntities.properties and rebuild <code>serializer.jar</code>.</td>
+</tr>
+</table>
+<p>
+<b>
+<i>output_text.properties</i>
+</b>:</p>
+<table border="1">  
+  <tr>
+    <th class="content" rowspan="1" colspan="1">Property</th>
+    <th class="content" rowspan="1" colspan="1">Default value</th>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">media-type</td>
+    <td class="content" rowspan="1" colspan="1">text/plain</td>
+  </tr>    
+  <tr>
+    <td class="content" rowspan="1" colspan="1">xalan:content-handler</td>
+    <td class="content" rowspan="1" colspan="1">org.apache.xml.serializer.ToTextStream</td>
+  </tr>
+</table>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The xalan:content-handler property specifies the default name of the Java class that implements the 
+<a href="apidocs/org/xml/sax/ContentHandler.html">org.xml.sax.ContentHandler</a>
+interface and recieves calls during result tree serialization. If you specify an 
+alternate Java class it must implement the ContentHandler interface.</td>
+</tr>
+</table>
+<a name="outputencoding">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Caution: setting output encoding in the stylesheet</h3>
+<p>When you use the &lt;xsl:output&gt; encoding attribute to set output character encoding, you should not 
+use StreamResult(java.io.Writer) to construct a 
+<a href="apidocs/javax/xml/transform/stream/StreamResult.html">StreamResult</a> object to hold the transformation result.
+If you do, the Writer uses its own encoding rather than the encoding specified in the stylesheet.</p>
+<p>If you want to use a Writer, you can specify an encoding when you create the Writer (java.io.OutputStreamWriter). Once the 
+Writer exists, you cannot reset the encoding it uses.</p>
+<a name="incremental">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Performing incremental transformations</h3>
+<p>The <a href="dtm.html">DTM</a> (Document Table Model) supports incremental transformations, the incremental generation of the 
+transformation result while the source document is still being parsed. For more information, see 
+<a href="dtm.html#incremental">incremental transformations</a>.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">You can also enable incremental transformations with the <a href="commandline.html">command-line utility</a> by including the -INCREMENTAL flag.</td>
+</tr>
+</table>
+<a name="embed">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Working with embedded stylesheets</h3>
+<p>An XML Source may include an <a href="http://www.w3.org/TR/xml-stylesheet/">xml-stylesheet processing instruction</a> which identifies the stylesheet to be used to process the document. As indicated by the processing instruction <b>
+<i>href</i>
+</b> attribute, the stylesheet itself may be embedded in the XML document or located elsewhere.</p>
+<p>Suppose you have an XML document (foo.xml) with the following xml-stylesheet processing instruction:</p>
+<p>
+<code>&lt;?xml-stylesheet type="text/xml" href="foo.xsl"?&gt;</code>
+</p>
+<p>The following fragment uses this instruction to locate the stylesheet (foo.xsl in the same directory as foo.xml) and create a Templates object. Note the use of the TransformerFactory getAssociatedStylesheet() in step 2a.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">An XML document may include more than one xml-stylesheet processing instruction, hence the support for working with multiple stylesheets. If more than one stylesheet is returned, the other stylesheets are imported into the first stylesheet.</td>
+</tr>
+</table>
+<blockquote class="source">
+<pre>// 1. Instantiate the TransformerFactory.
+javax.xml.transform.TransformerFactory tFactory = 
+                    javax.xml.transform.TransformerFactory.newInstance();
+// 2a. Get the stylesheet from the XML source.
+String media = null , title = null, charset = null;
+javax.xml.transform.Source stylesheet = tFactory.getAssociatedStylesheet
+                   (new StreamSource("foo.xml"), media, title, charset);
+
+// 2b. Process the stylesheet and generate a Transformer.
+Transformer transformer = tFactory.newTransformer(stylesheet);
+
+// 3. Use the Transformer to perform the transformation and send the
+//    the output to a Result object.
+transformer.transform
+             (new javax.xml.transform.stream.StreamSource("foo.xml"),
+              new StreamResult (new java.io.FileOutputStream("foo.out")));</pre>
+</blockquote>
+<p>For a sample that uses this technique, see <a href="samples.html#usestylesheetpi">UseStylesheetPI</a>.</p>
+<p>You can also instruct the <a href="commandline.html">command-line utility</a> to use stylesheet processing
+instructions:</p>
+<ol>
+  <li>Include the <code>-in</code> flag with an XML source that contains a stylesheet processing instruction.<br />
+<br />
+</li>
+  <li>Do not include the <code>-xsl</code> flag.</li>
+</ol>
+<a name="serialize">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Serializing output</h3>
+<p>In some cases, you may want to "transform" a DOM tree into a stream, which the XML community calls serialization. 
+<a href="https://jaxp.java.net/">JAXP 1.3</a> and the Xalan-Java Transformer implementation provide direct 
+support for this operation. Simply use the TransformerFactory newTransformer() method (no arguments) to create a Transformer 
+that you can use to "copy" a DOMSource to a StreamResult. For examples, see Examples.exampleDOM2DOM(), 
+Examples.exampleSerializeNode(), and Examples.exampleAsSerializer() in the <a href="samples.html#trax">trax (JAXP transform) sample</a>.</p>
+<a name="params">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Setting stylesheet parameters</h3>
+<p>An XSLT stylesheet may include parameters that are set at run time each time a transformation is performed. To set a stylesheet parameter, use the Transformer 
+<a href="apidocs/javax/xml/transform/Transformer.html#setParameter(java.lang.String,java.lang.Object)">setParameter(String name, Object value)</a> method. For a working example, see UseStylesheetParam.java in the samples/UseStylesheetParam subdirectory.</p>
+<p>You can also set a parameter with the command-line utility by including the <code>-param</code> flag. For example:</p>
+<p>
+<code>java org.apache.xalan.xslt.Process -in foo.xml -xsl foo.xsl -param param1 foobar</code>
+</p>
+<p>where <code>param</code> is the parameter name and <code>foobar</code> is the parameter value. The parameter namespace is null.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Xalan-Java 2 processes string parameters. You are no longer required (as you were with Xalan-Java version 1) to enclose strings in single 
+quotes (') as string expressions.</td>
+</tr>
+</table>
+<a name="sax">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Explicitly working with SAX</h3>
+  <p>Xalan-Java uses the SAX event model to process stylesheets, to parse XML input documents, and to produce output. For each of these operations, an XMLReader reads input, firing parse events, and a ContentHandler listens to the XMLReader and executes parse event methods.</p>
+<p>When you use the basic procedure described above for performing transformations, Xalan-Java takes care of many of the SAX details under the covers. You are free to make these details explicit, which simply means that you can intervene in the procedure to accommodate the precise environment in which your application operates.</p>
+<p>Suppose, for example, you are using a custom XMLReader (perhaps for doing more than just parsing static XML documents) to generate Xalan-Java SAX parse events. You might even have a custom reader for producing/processing stylesheets. You can cast the TransformerFactory to a SAXTransformerFactory, which provides access to a TransformerHandler, which you can set as the ContentHandler for this reader.</p>
+  <p>The following example explicitly sets up the XMLReader and ContentHandlers, and replicates the <a href="#basic">basic steps</a> described above.</p>
+  <blockquote class="source">
+<pre>// Instantiate a TransformerFactory.
+javax.xml.transform.TransformerFactory tFactory = 
+                    javax.xml.transform.TransformerFactory.newInstance();
+// Verify that the TransformerFactory implementation you are using
+// supports SAX input and output (Xalan-Java does!).
+if (tFactory.getFeature(javax.xml.transform.sax.SAXSource.FEATURE) &amp;&amp; 
+    tFactory.getFeature(javax.xml.transform.sax.SAXResult.FEATURE))
+  { 
+    // Cast the TransformerFactory to SAXTransformerFactory.
+    javax.xml.transform.sax.SAXTransformerFactory saxTFactory = 
+                   ((javax.xml.transform.sax.SAXTransformerFactory) tFactory);
+    // Create a Templates ContentHandler to handle parsing of the 
+    // stylesheet.
+    javax.xml.transform.sax.TemplatesHandler templatesHandler = 
+                                        saxTFactory.newTemplatesHandler();
+
+    // Create an XMLReader and set its ContentHandler.
+    org.xml.sax.XMLReader reader = 
+                   org.xml.sax.helpers.XMLReaderFactory.createXMLReader();
+    reader.setContentHandler(templatesHandler);
+    
+    // Parse the stylesheet.                       
+    reader.parse("foo.xsl");
+
+    // Get the Templates object (generated during the parsing of the stylesheet)
+    // from the TemplatesHandler.
+    javax.xml.transform.Templates templates = 
+                                          templatesHandler.getTemplates();
+    // Create a Transformer ContentHandler to handle parsing of 
+    // the XML Source.  
+    javax.xml.transform.sax.TransformerHandler transformerHandler 
+                           = saxTFactory.newTransformerHandler(templates);
+    // Reset the XMLReader's ContentHandler to the TransformerHandler.
+    reader.setContentHandler(transformerHandler);
+
+    // Set the ContentHandler to also function as a LexicalHandler, which
+    // can process "lexical" events (such as comments and CDATA). 
+    reader.setProperty("http://xml.org/sax/properties/lexical-handler", 
+                        transformerHandler);
+
+    // Set up a Serializer to serialize the Result to a file.
+    org.apache.xml.serializer.Serializer serializer = 
+    org.apache.xml.serializer.SerializerFactory.getSerializer
+    (org.apache.xml.serializer.OutputPropertiesFactory.getDefaultMethodProperties
+                                                                   ("xml"));
+    serializer.setOutputStream(new java.io.FileOutputStream("foo.out"));
+    // The Serializer functions as a SAX ContentHandler.
+    javax.xml.transform.Result result =
+      new javax.xml.transform.sax.SAXResult(serializer.asContentHandler());
+    transformerHandler.setResult(result);
+      
+    // Parse the XML input document.
+    reader.parse("foo.xml");</pre>
+</blockquote>
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">If you want to perform multiple transformations with the same Templates object and a TransformerHandler, you must create a new
+    TransformerHandler for each transformation. The Xalan-Java implementation of TransformerHandler 
+    (<a href="apidocs/org/apache/xalan/transformer/TransformerHandlerImpl.html">TransformerHandlerImpl</a> fails to respond 
+    to events after the first endDocument event occurs.</td>
+</tr>
+</table>
+<a name="outasin">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using transformation output as input for another transformation</h3>
+
+<p>You can chain together a series of transformations such that the output of each transformation provides input for the next transformation. Xalan-Java supports two basic strategies for chaining a series of transformations:</p>
+<ul>
+  <li>Use the SAXTransformerFactory to process the stylesheet and create a TransformerHandler for each transformation. Then you can set
+the first TransformerHandler as the ContentHandler for the XMLReader that parses the input, make the second TransformerHandler the ContentHandler for the output of the first TransformerHandler, and so on. For more detail and an example, see the <a href="samples.html#pipe">Pipe</a> sample.<br />
+<br />
+</li>
+  <li>Use the SAXTransformerFactory to process the stylesheet and create a SAX XMLFilter for each transformation. Set an XMLReader as the parent of the first XMLFilter, the first XMLFilter as the parent of the second XMLFilter, and so on. You launch the series of transformations by instructing the last XMLFilter to parse the XML Source for the first transformation. For more detail and an example, see the <a href="samples.html#usexmlfilters">UseXMLFilters</a> sample.</li>
+</ul>
+<a name="dom">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Processing and producing DOM trees</h3>
+  <p>In some cases, the input and/or desired output for a transformation may be a DOM tree object. The javax.xml.transform.DOM package provides <a href="apidocs/javax/xml/transform/dom/DOMSource.html">DOMSource</a> and a <a href="apidocs/javax/xml/transform/dom/DOMResult.html">DOMResult</a>, either or both of which you can use when you perform a transformation.</p>
+<p>In some cases, your application provides input in the form of a DOM tree, which accelerates the transformation process, since the input has in effect already been processed. To produce DOM input from a stream, you can use a <a href="apidocs/javax/xml/parsers/DocumentBuilderFactory.html">DocumentBuilderFactory</a> to produce a <a href="apidocs/javax/xml/parsers/DocumentBuilder.html">DocumentBuilder</a> with which you can parse the XML input into a DOM Document, as illustrated below.</p>
+<blockquote class="source">
+<pre>// Instantiate a DocumentBuilderFactory.
+javax.xml.parsers.DocumentBuilderFactory dfactory =
+                    javax.xml.parsers.DocumentBuilderFactory.newInstance();
+// Use the DocumentBuilderFactory to provide access to a DocumentBuilder.
+javax.xml.parsers.DocumentBuilder dBuilder = dfactory.newDocumentBuilder();
+// Use the DocumentBuilder to parse the XML input.
+org.w3c.dom.Document inDoc = dBuilder.parse("foo.xml");</pre>
+</blockquote>
+<p>To produce DOM output, simply use a Transformer to transform to a DOMResult object.</p>
+<blockquote class="source">
+<pre>// Generate a Transformer.
+javax.xml.transform.Transformer transformer = tFactory.newTransformer
+                  (new javax.xml.transform.stream.StreamSource("foo.xsl"));
+// Create an empy DOMResult object for the output.
+javax.xml.transform.dom.DOMResult domResult =
+                                   new javax.xml.transform.dom.DOMResult();
+// Perform the transformation.
+transformer.transform(new javax.xml.transform.dom.DOMSource(inDoc),
+                      domResult);
+// Now you can get the output Node from the DOMResult.
+org.w3c.dom.Node node = domResult.getNode();</pre>
+</blockquote>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Create a new DOMResult object or use DOMResult.setNode() to assign a new container each time you want to perform a transformation 
+and place the output in a DOMResult object.</td>
+</tr>
+</table>
+<p>The <a href="samples.html#dom2dom">DOM2DOM</a> illustrates both procedures, and serializes the DOMResult to System.out.</p>
+<a name="xpath">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Working with XPath expressions</h3>
+<p>XSLT stylesheets use XPath expressions to select nodes, specify conditions, and generate text for the result tree. XPath provides an API that you can call directly. For example, you may want to evaluate an XPath expression programmatically and do your own processing without a stylesheet.</p>
+<p>XPath is an independent entity, with clients other than XSLT processors (such as XPointer). Accordingly, Xalan-Java 2 has packaged XPath as a separate module (org.apache.xpath and its subpackages). The org.apache.xpath.XPathAPI class contains convenience methods that you can use to return single DOM Nodes, NodeIterators, and XObjects. Apart from their own functionality, these methods also provide a path into the lower-level XPath API that you may find useful.</p>
+<p>JAXP 1.3 also provides an API for xpath expression evaluation in the javax.xml.xpath package. Users are 
+ recommended to use the new JAXP 1.3 XPath API rather than the old Xalan-Java 2 specific XPath API.</p>
+<p>For an example that uses the Xalan-Java 2 specific XPathAPI to execute XPath expressions against XML source files, 
+see <a href="samples.html#applyxpath">ApplyXPath</a>. For examples on how to use the new JAXP 1.3 XPath
+API, see <a href="samples.html#applyxpathjaxp">ApplyXPathJAXP</a> and 
+<a href="samples.html#xpathresolver">XPathResolver</a>.</p>
+<a name="applet">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using the Xalan-Java applet wrapper</h3>
+<ol> 
+<li>Include <a href="apidocs/org/apache/xalan/client/XSLTProcessorApplet.html">XSLTProcessorApplet</a> in an HTML client.<br />
+<br />
+</li>
+<li>Specify the XML source document and XSL stylesheet.<br />
+<br />
+You can use the DocumentURL and StyleURL PARAM tags or the <a href="apidocs/org/apache/xalan/client/XSLTProcessorApplet.html#setDocumentURL(java.lang.String)">setdocumentURL()</a> and <a href="apidocs/org/apache/xalan/client/XSLTProcessorApplet.html#setStyleURL(java.lang.String)">setStyleURL()</a> methods. If the XML document contains a stylesheet Processing Instruction (PI), you do not need to specify an XSL stylesheet.<br />
+<br />
+</li>
+<li>Call the <a href="apidocs/org/apache/xalan/client/XSLTProcessorApplet.html#transformToHtml(java.lang.String,java.lang.String)">transformToHtml()</a> or <a href="apidocs/org/apache/xalan/client/XSLTProcessorApplet.html#getHtmlText()">getHtmlText()</a> method, which performs the transformation and returns the new document as a String.</li>
+</ol>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The transformToHTML() method takes arguments for the XML source document and XSL stylesheet. The getHtmlText() method takes no arguments: it uses property or parameter settings, as in the example below.</td>
+</tr>
+</table>
+<p>For an example, see the <a href="samples.html#appletxmltohtml">AppletXMLtoHTML</a> sample applet. The &lt;applet&gt; tag is in samples/AppletXMLtoHTML/client.html:</p>
+<blockquote class="source">
+<pre>&lt;applet  
+    name="xslControl"
+    code="org.apache.xalan.client.XSLTProcessorApplet.class"
+    archive="../../xalan.jar,../../build/xalan.jar,../../serializer.jar,../../build/serializer.jar,../../lib/xml-apis.jar,../../lib/xercesImpl.jar"
+    height="0"
+    width"0"&gt;
+    &lt;param name="documentURL" value="xalanApplets.xml"/&gt;
+    &lt;param name="styleURL" value="s1ToHTML.xsl"/&gt;
+&lt;/applet&gt;</pre>
+</blockquote>
+<p>When the user clicks the Transform button, the HTML client calls the getHtmlText() method, and puts the returned HTML text in a frame for the user to view.</p>
+<p>For samples, see <a href="samples.html#applet">AppletXMLtoHTML</a>.</p>
+<a name="netscape">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Problems with Netscape</h4>
+    <p>The JAXP strategy of reading system properties 
+    generates SecurityExceptions when you attempt to run Xalan-Java applets in the Netscape Communicator 4.7.</p> 
+    <p>Stuart Connell 
+    &lt;Stuart.Connell@compuware.com&gt; reports that the Xalan-Java applet wrapper does work in Netscape Communicator 6, 
+    provided that you avoid calls to the AppletContext showStatus() method. In other words, you can remove the showStatus() calls
+    from org.apache.xalan.client.XSLTProcessorApplet, and run Xalan-Java applets from Netscape Communicator 6. This appears to be a
+    Netscape bug, which hopefully will be fixed soon. For more information, see 
+    <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=3231">Bugzilla bug 3231</a>.</p>
+    
+<a name="servlet">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using Xalan-Java in a servlet</h3>
+<p>You can set up a servlet to use Xalan-Java to respond to requests for XML documents by transforming those documents into HTML and serving them to web browsers. To respond to HTTP GET requests, all you need to do is overwrite the HttpServlet doGet() method with a procedure that instantiates a Transformer and uses it to perform a transformation. As the following example shows, you can generate a ResultStream that a PrintWriter writes to the HttpResponse OutputStream, returning the transformation output to the web browser.</p>
+<blockquote class="source">
+<pre>
+public class SampleXSLTServlet extends javax.servlet.http.HttpServlet {
+  
+  public final static String FS = System.getProperty("file.separator"); 
+  // Respond to HTTP GET requests from browsers.
+  public void doGet (javax.servlet.http.HttpServletRequest request,
+                     javax.servlet.http.HttpServletResponse response)
+    throws javax.servlet.ServletException, java.io.IOException
+  {
+    // Set content type for HTML.
+    response.setContentType("text/html; charset=UTF-8");    
+    // Output goes to the response PrintWriter.
+    java.io.PrintWriter out = response.getWriter();
+    try
+    {	
+      javax.xml.transform.TransformerFactory tFactory = 
+                javax.xml.transform.TransformerFactory.newInstance();
+      //get the real path for xml and xsl files.
+      String ctx = getServletContext().getRealPath("") + FS;        
+      // Get the XML input document and the stylesheet, both in the servlet
+      // engine document directory.
+      javax.xml.transform.Source xmlSource = 
+                new javax.xml.transform.stream.StreamSource
+                             (new java.net.URL("file", "", ctx+"foo.xml").openStream());
+      javax.xml.transform.Source xslSource = 
+                new javax.xml.transform.stream.StreamSource
+                             (new java.net.URL("file", "", ctx+"foo.xsl").openStream());
+      // Generate the transformer.
+      javax.xml.transform.Transformer transformer = 
+                             tFactory.newTransformer(xslSource);
+      // Perform the transformation, sending the output to the response.
+      transformer.transform(xmlSource, 
+                           new javax.xml.transform.stream.StreamResult(out));
+    }
+    // If an Exception occurs, return the error to the client.
+    catch (Exception e)
+    {
+      out.write(e.getMessage());
+      e.printStackTrace(out);    
+    }
+    // Close the PrintWriter.
+    out.close();
+  }  
+}</pre>
+</blockquote>
+<p>For a working sample, see <a href="samples.html#simplexsltservlet">SimpleXSLTServlet</a>.</p>
+<p>In the preceding example, the URLs for the XML document and XSL stylesheet are hardcoded in the servlet. You can also create a servlet that parses the request URL for input parameters specifying the XML document, XSL stylesheet, and any relevant stylesheet parameters. For samples, see <a href="samples.html#usestylesheetparamservlet">UseStylesheetParamServlet</a> and <a href="samples.html#xsltservletwithparams">XSLTServletWithParams</a>. For a more robust and complex sample that also employs a properties file to determine which stylesheet to use depending on the client browser/device, see <a href="samples.html#applyxslt">ApplyXSLT</a>.</p>
+<a name="extensions">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Creating and using extensions</h3>
+<p>For those cases where you want to be able to call procedural code from within a stylesheet, the Xalan-Java Extensions facility supports the creation of extension elements and extension functions. See <a href="extensions.html">Extensions</a> and <a href="samples.html#extensions">Extensions samples</a>.</p>
+<a name="multithreading">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Multithreading</h3>
+<p>A given Templates object may be used repeatedly and even in multiple threads running concurrently for the transformation of XML input, but you should use the Templates object to instantiate a separate Transformer for each transformation you perform. The Templates object is an immutable runtime representation of the structure and content of a stylesheet (which may include and import multiple stylesheet sources). A Transformer, on the other hand, is a lightweight object that tracks state information during the transformation, and should only be used to perform a single transformation.</p>
+
+<p>If you want to perform multiple transformations (sequentially or concurrently) with the same stylesheet instructions, do the following:</p>
+<ol>
+  <li>Use the TransformerFactory <a href="apidocs/javax/xml/transform/TransformerFactory.html#newTemplates(javax.xml.transform.Source)">newTemplates(Source xslSource)</a> method to create a Templates object.<br />
+<br />
+</li>
+<li>For each transformation, use the Templates object <a href="apidocs/javax/xml/transform/Templates.html#newTransformer()">newTransformer()</a> method to create a Transformer, and use that Transformer's 
+<a href="apidocs/javax/xml/transform/Transformer.html#transform(javax.xml.transform.Source,javax.xml.transform.Result)">transform(Source xmlSource, Result transformResult)</a> method to perform the transformation.</li>
+</ol>
+<p>For an example, see Examples.exampleUseTemplatesObj() in the <a href="samples.html#trax">trax sample</a>.</p>
+<a name="debugging">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Debugger Interface</h3>
+		<p>Xalan-Java contains a debugger interface in the org.apache.xalan.xslt.trace package:</p> 
+		<ul>
+		  <li>
+<a href="apidocs/org/apache/xalan/trace/TraceListener.html">TraceListener</a> is an interface that debuggers 
+		  can implement. Or, like the <a href="commandline.html">command-line utility</a>, you can use the <a href="apidocs/org/apache/xalan/trace/PrintTraceListener.html">PrintTraceListener</a> implementation of that interface.
+      <br />
+<br />
+</li>
+      <li>You can register a TraceListener with the 
+      <a href="apidocs/org/apache/xalan/trace/TraceManager.html">TraceManager</a> associated
+      with the Transformer that will perform a given transformation.<br />
+<br />
+</li>
+		  <li>
+<a href="apidocs/org/apache/xalan/trace/TracerEvent.html">TracerEvent</a> is an event that is 
+		  passed to the TraceListener.trace() function. It is called before a node is 'executed' in the stylesheet.<br />
+<br />
+</li>
+		  <li>
+<a href="apidocs/org/apache/xalan/trace/GenerateEvent.html">GenerateEvent</a> is an event that is 
+		  passed to the TraceListener.generated() function. It is called after an event occurs to create something in the result
+      tree.<br />
+<br />
+</li>
+      <li>
+<a href="apidocs/org/apache/xalan/trace/SelectionEvent.html">SelectionEvent</a> is an event triggered by the
+       selection of a stylesheet node.</li>
+      <li>
+<a href="apidocs/org/apache/xalan/trace/ExtensionEvent.html">ExtensionEvent</a> is an event that is
+       passed to the TraceListener.extension() function.  It is called before an extension call is made.<br />
+<br />
+</li>
+		</ul>
+    <p>The <a href="commandline.html">command-line utility</a> uses the debugger interface when you include one or more of the
+     following switches: <code>-TT</code>, <code>-TG</code>, <code>-TS</code>, <code>-TTC</code>.</p>
+    <p>Example:</p>
+<blockquote class="source">
+<pre>import org.apache.xalan.transformer.TransformerImpl;
+import org.apache.xalan.trace.TraceManager;
+import org.apache.xalan.trace.PrintTraceListener;
+...
+// Set up a PrintTraceListener object to print to a file.
+java.io.FileWriter fw = new java.io.FileWriter("events.log");
+java.io.PrintWriter pw = new java.io.PrintWriter(fw);
+PrintTraceListener ptl = new PrintTraceListener(pw);
+
+// Print information as each node is 'executed' in the stylesheet.
+ptl.m_traceElements = true;
+// Print information after each result-tree generation event.
+ptl.m_traceGeneration = true;
+// Print information after each selection event.
+ptl.m_traceSelection = true;
+// Print information whenever a template is invoked.
+ptl.m_traceTemplates = true;
+// Print information whenever an extension is called.
+ptl.m_traceExtension = true;
+
+// Set up the transformation    
+javax.xml.transform.TransformerFactory tFactory = 
+                     javax.xml.transform.TransformerFactory.newInstance();
+javax.xml.transform.Transformer transformer = 
+  tFactory.newTransformer(new javax.xml.transform.stream.StreamSource
+                                                             ("foo.xsl"));
+
+// Cast the Transformer object to TransformerImpl.
+if (transformer instanceof TransformerImpl) {
+  TransformerImpl transformerImpl = (TransformerImpl)transformer;
+  
+  // Register the TraceListener with the TraceManager associated 
+  // with the TransformerImpl.
+  TraceManager trMgr = transformerImpl.getTraceManager();
+  trMgr.addTraceListener(ptl);
+  
+  // Perform the transformation --printing information to
+  // the events log during the process.
+  transformer.transform
+      ( new javax.xml.transform.stream.StreamSource("foo.xml"), 
+        new javax.xml.transform.stream.StreamResult
+                                    (new java.io.FileWriter("foo.out")) );
+}
+// Close the PrintWriter and FileWriter.
+pw.close();
+fw.close();</pre>
+</blockquote>
+<p>For a sample application that uses this technique, see <a href="samples.html#trace">Trace</a>.</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/whatsnew.html b/xalan-j/whatsnew.html
new file mode 100644
index 0000000..3354e5f
--- /dev/null
+++ b/xalan-j/whatsnew.html
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: What's new in Xalan-Java 2</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">What's new in Xalan-Java 2</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>What's New<br />
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>What's new in Xalan-Java 2</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>What's new in Xalan-Java Version 2.7.2</h3>  
+    <p>
+      Here's what new in Xalan-Java Version 2.7.2.
+    </p>
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Fix for CVE-2014-0107 insufficient secure processing</h4>
+      <p>
+        When using FEATURE_SECURE_PROCESSING ("http://javax.xml.XMLConstants/feature/secure-processing") on a TransformerFactory, the output properties:
+      </p>
+      <ul>
+        <li>{http://xml.apache.org/xalan}content-handler</li>
+        <li>{http://xml.apache.org/xalan}entities</li>
+        <li>{http://xml.apache.org/xslt}content-handler</li>
+        <li>{http://xml.apache.org/xslt}entities</li>
+      </ul>
+      <p>
+        should be ignored (see http://xml.apache.org/xalan-j/usagepatterns.html#outputprops)
+      </p>
+      <p>
+        These properties can be used to load an arbitrary class or access an arbitrary URL/resource so are problematic when secure processing is desired.
+      </p>
+      <p>      
+        <code>  
+          &lt;xsl:output xalan:content-handler="org.example.BadClass" ...
+        </code>   
+      </p>
+      <p>      
+        <code>  
+          &lt;xsl:output xalan:entities="http://example.org/reallyLargeFile.bin" ...
+        </code>   
+      </p>
+      <p>
+        These features could be used to load a class that had undesirable side-effects or to load a large file and exhaust memory, etc. 
+      </p>
+      <p>
+        See <a href="#https://issues.apache.org/jira/browse/XALANJ-2435">XALANJ-2435</a>. 
+      </p>
+    
+    
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Upgrade to Xerces-J 2.11.0 and XML Commons External 1.4.01</h4>
+      The distributions contain upgraded versions of <code>xercesImpl.jar</code>
+      (Xerces-J 2.11.0) and <code>xml-apis.jar</code> (XML Commons External 1.4.01).
+    
+    
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Bug fixes</h4>
+      Xalan-Java Version 2.7.2 contains performance enhancements and other bug fixes since 2.7.1. You can find the list 
+      in <a href="readme.html#notes_latest">the release notes</a>.
+    
+    
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xmlfilters.gif b/xalan-j/xmlfilters.gif
new file mode 100644
index 0000000..2b4d640
--- /dev/null
+++ b/xalan-j/xmlfilters.gif
Binary files differ
diff --git a/xalan-j/xpath_apis.html b/xalan-j/xpath_apis.html
new file mode 100644
index 0000000..0ded892
--- /dev/null
+++ b/xalan-j/xpath_apis.html
@@ -0,0 +1,628 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Using the JAXP XPath APIs</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Using the JAXP XPath APIs</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>XPath API<br />
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Using the JAXP XPath APIs</h2>
+  <ul>
+  <li>
+<a href="#basic">Basic steps</a>
+</li>
+  <li>
+<a href="#plugin">Plugging in the XPathFactory</a>
+</li>
+  <li>
+<a href="#namespacecontext">Using NamespaceContext</a>
+</li>
+  <li>
+<a href="#variableresolver">Using XPathVariableResolver</a>
+</li>
+  <li>
+<a href="#functionresolver">Using XPathFunctionResolver</a>
+</li>
+  <li>
+<a href="#sampleresolver">Using the sample XPathFunctionResolver</a>
+</li>
+  </ul>
+  
+  <a name="basic">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Basic steps</h3>
+    <ol>
+    <li>
+<a href="#xpathfactory">Instantiate an XPathFactory</a>
+</li>
+    <li>
+<a href="#xpath">Create an XPath</a>
+</li>
+    <li>
+<a href="#xpathexpression">(optional) Create an XPathExpression</a>
+</li>
+    <li>
+<a href="#evaluation">Evaluate the XPath expression in a specified context</a>
+</li>
+    </ol>
+  <p>The following example illustrates the basic steps involved in evaluating an XPath expression.</p>
+  <blockquote class="source">
+<pre>// 1. Instantiate an XPathFactory.
+  javax.xml.xpath.XPathFactory factory = 
+                    javax.xml.xpath.XPathFactory.newInstance();
+  
+  // 2. Use the XPathFactory to create a new XPath object
+  javax.xml.xpath.XPath xpath = factory.newXPath();
+  
+  // 3. Compile an XPath string into an XPathExpression
+  javax.xml.xpath.XPathExpression expression = xpath.compile("/doc/name");
+  
+  // 4. Evaluate the XPath expression on an input document
+ String result = expression.evaluate(new org.xml.sax.InputSource("foo.xml"));
+  </pre>
+</blockquote>
+  
+  
+  <a name="xpathfactory">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>1. Instantiate an XPathFactory</h3>  
+  <p>
+<a href="apidocs/javax/xml/xpath/XPathFactory.html">XPathFactory</a> is an abstract class with two static 
+  newInstance() methods (<a href="apidocs/javax/xml/xpath/XPathFactory.html#newInstance()">newInstance()</a> and
+  <a href="apidocs/javax/xml/xpath/XPathFactory.html#newInstance(java.lang.String)">newInstance(String uri)</a>)
+  that instantiate the concrete subclass designated as the javax.xml.xpath.XPathFactory service provider.
+  The optional parameter uri specifies the object model. The implementation in Xalan-Java 2 only supports the
+  W3C DOM object model, identified by the URI <a href="apidocs/javax/xml/xpath/XPathFactory.html#DEFAULT_OBJECT_MODEL_URI">
+  DEFAULT_OBJECT_MODEL_URI</a>.</p>
+
+  <p>The default service provider for the javax.xml.xpath.XPathFactory service is 
+  <a href="apidocs/org/apache/xpath/jaxp/XPathFactoryImpl.html">org.apache.xpath.jaxp.XPathFactoryImpl</a>.
+  </p>
+  
+  
+  <a name="xpath">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>2. Create an XPath</h3>
+  You can use the <a href="apidocs/javax/xml/xpath/XPathFactory.html#newXPath()">XPathFactory.newXPath()</a> 
+  method to create a new <a href="apidocs/javax/xml/xpath/XPath.html">XPath</a>.
+  
+  
+  <a name="xpathexpression">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>3. (optional) Create an XPathExpression</h3>
+  You can use the <a href="apidocs/javax/xml/xpath/XPath.html#compile(java.lang.String)">XPath.compile(String expression)</a>
+  method to compile an XPath string into an <a href="apidocs/javax/xml/xpath/XPathExpression.html">XPathExpression</a> object 
+  for later evaluation. This is an optional step.
+  You can evaluate an XPath expression without compiling it first. 
+  
+
+  <a name="evaluation">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>4. Evaluate an XPath expression</h3>
+  <p>If you compile an XPath String into an <a href="apidocs/javax/xml/xpath/XPathExpression.html">XPathExpression</a> 
+  in step 3, you can use one of the four evaluate() methods in
+  the XPathExpression interface to evaluate the XPath expression. If the evaluation context is a W3C Node in an 
+  existing Document, you can use the <a href="apidocs/javax/xml/xpath/XPathExpression.html#evaluate(java.lang.Object)">
+  evaluate(Object item)</a> or <a href="apidocs/javax/xml/xpath/XPathExpression.html#evaluate(java.lang.Object, javax.xml.namespace.QName)">
+  evaluate(Object item, QName returnType)</a> method by passing the context item as the first parameter.
+  The method with a returnType parameter allows you to specify the return type as one of the following supported 
+  return types:
+  <li>
+<a href="apidocs/javax/xml/xpath/XPathConstants.html#BOOLEAN">XPathConstants.BOOLEAN</a>
+</li>
+  <li>
+<a href="apidocs/javax/xml/xpath/XPathConstants.html#NUMBER">XPathConstants.NUMBER</a>
+</li>
+  <li>
+<a href="apidocs/javax/xml/xpath/XPathConstants.html#STRING">XPathConstants.STRING</a>
+</li>
+  <li>
+<a href="apidocs/javax/xml/xpath/XPathConstants.html#NODESET">XPathConstants.NODESET</a>
+</li>
+  <li>
+<a href="apidocs/javax/xml/xpath/XPathConstants.html#NODE">XPathConstants.NODE</a>
+</li>
+  </p>
+  <p>If the returnType parameter is not specified, the default is XPathConstants.STRING.</p>
+  <p>If the evaluation context is an input document, you can use one of the two evaluate() methods with an 
+  InputSource parameter (<a href="apidocs/javax/xml/xpath/XPathExpression.html#evaluate(org.xml.sax.InputSource)">evaluate(InputSource source)</a> 
+  or <a href="apidocs/javax/xml/xpath/XPathExpression.html#evaluate(org.xml.sax.InputSource, javax.xml.namespace.QName)">
+  evaluate(InputSource source, QName returnType)</a>) to evaluate the XPath expression.</p>
+  <p>The compiling step allows you to reuse an XPath expression for evaluation on multiple contexts. 
+  If an XPath expression is only used once, you can use one of the four evaluate() methods in the 
+  <a href="apidocs/javax/xml/xpath/XPath.html">XPath</a> interface 
+  to evaluate the XPath expression without compiling it first.</p>
+  
+  
+  <a name="plugin">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Plugging in the XPathFactory</h3>
+  <p>The Java API for XML Processing interfaces enable you to plug in your own implementation of XPathFactory.
+  The abstract class XPathFactory has a static newInstance() method that instantiates a concrete Factory 
+  which wraps the underlying implementation. The newInstance() method uses system property settings to determine 
+  which implementation to instantiate.</p>
+  <p>Xalan-Java 2 is distributed with a pre-configured setting for the provider of the XPathFactory service. This setting is in 
+  xalan.jar in META-INF/services/javax.xml.xpath.XPathFactory, with a value of org.apache.xpath.jaxp.XPathFactoryImpl.</p>
+  <p>You can plug in a new XPathFactory as follows (in order of precedence):
+  <ol>
+  <li>Set the system property "javax.xml.xpath.XPathFactory" + ":uri" from the command line when you 
+  launch Java or from within your application, where uri is the URI of the underlying object model. The URI of
+  the default W3C DOM object model is <code>http://java.sun.com/jaxp/xpath/dom</code>.</li>
+  <li>Set the property in jaxp.properties in the JAVA_HOME/lib directory, where JAVA_HOME is the root of 
+  the JDK.</li>
+  <li>Revise the entry in src/META-INF/services/javax.xml.xpath.XPathFactory and rebuild xalan.jar. Each potential service 
+  provider entry in this file is required to implement the method <code>isObjectModelSupported(String objectModel).</code>
+  The first service provider found in class loader order that supports the specified object model will be used.</li>
+  </ol>
+  </p>
+  
+  
+  <a name="namespacecontext">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using NamespaceContext</h3>
+  <p>If namespace prefixes are used in an XPath expression, the XPath processor needs to know what namespace URIs 
+  the prefixes are bound to. Logically a prefix can only be bound to a single Namespace URI in the current scope. However,
+  a Namespace URI can be bound to multiple prefixes in the current scope. The information about namespace 
+  prefix to URI mappings is provided by an object that implements the 
+  <a href="apidocs/javax/xml/namespace/NamespaceContext.html">javax.xml.namespace.NamespaceContext</a> interface.</p>
+  <p>Suppose you want to evaluate the XPath expression <code>"/foo:document/bar:element"</code> on the following xml document:</p>
+  <blockquote class="source">
+<pre>
+  &lt;?xml version='1.0'?&gt;
+  &lt;foo:document xmlns:foo="http://apache.org/foo" xmlns:bar="http://apache.org/bar"&gt;
+    &lt;bar:element&gt;MyBar&lt;/bar:element&gt;
+  &lt;/foo:document&gt;
+  </pre>
+</blockquote>
+  
+  <p>You need to create your own implementation of <a href="apidocs/javax/xml/namespace/NamespaceContext.html">NamespaceContext</a>
+  to inform the XPath processor what namespace URIs
+  the prefixes are bound to. For the example above, you can create a NamespaceContext implementation as follows:</p>
+  <blockquote class="source">
+<pre>
+    public class MyNamespaceContext implements NamespaceContext
+    {
+        public String getNamespaceURI(String prefix)
+        {
+            if (prefix.equals("foo"))
+                return "http://apache.org/foo";
+            else if (prefix.equals("bar"))
+                return "http://apache.org/bar";
+            else
+                return XMLConstants.NULL_NS_URI;
+        }
+        
+        public String getPrefix(String namespace)
+        {
+            if (namespace.equals("http://apache.org/foo"))
+                return "foo";
+            else if (namespace.equals("http://apache.org/bar"))
+                return "bar";
+            else
+                return null;
+        }
+
+        public Iterator getPrefixes(String namespace)
+        {
+            return null;
+        }
+    }  
+  </pre>
+</blockquote>
+  
+  <p>Then you can use the <a href="apidocs/javax/xml/xpath/XPath.html#setNamespaceContext(javax.xml.namespace.NamespaceContext)">
+  XPath.setNamespaceContext(NamespaceContext nsContext)</a>
+  method to set the NamespaceContext on the XPath object you create using the <a href="#basic">basic steps</a>.</p>
+  <p>The XPath processor in Xalan-Java 2 only uses the <a href="apidocs/javax/xml/namespace/NamespaceContext.html#getNamespaceURI(java.lang.String)">
+  getNamespaceURI(String prefix)</a>
+  method on NamespaceContext. The other two methods 
+  <a href="apidocs/javax/xml/namespace/NamespaceContext.html#getPrefix(java.lang.String)">getPrefix(String namespace)</a>
+  and <a href="apidocs/javax/xml/namespace/NamespaceContext.html#getPrefixes(java.lang.String)">getPrefixes(String namespace)</a>
+  are not used. If the NamespaceContext object is only used by the XPath processor, you can let the unused methods 
+  return null for simplicity.</p>
+  
+  
+  
+  <a name="variableresolver">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using XPathVariableResolver</h3>
+  <p>
+<a href="apidocs/javax/xml/xpath/XPathVariableResolver.html">XPathVariableResolver</a> provides access to the set of user 
+  defined XPath variables. If an XPath expression contains
+  a variable reference, we need to set a XPathVariableResolver on the XPath object using the 
+  <a href="apidocs/javax/xml/xpath/XPath.html#setXPathVariableResolver(javax.xml.xpath.XPathVariableResolver)">
+  XPath.setXPathVariableResolver(XPathVariableResolver resolver)</a>
+  method. You can also set the XPathVariableResolver on the XPathFactory, using the 
+  <a href="apidocs/javax/xml/xpath/XPathFactory.html#setXPathVariableResolver(javax.xml.xpath.XPathVariableResolver)">
+  XPathFactory.setXPathVariableResolver(XPathVariableResolver resolver)</a>
+  method. If the XPathVariableResolver is set on the XPathFacory, then all XPath objects constructed from this 
+  XPathFactory will use the specified XPathVariableResolver by default. The XPath processor uses the
+  XPathVariableResolver to retrieve the value of a user defined variable. In the course of evaluating any 
+  single XPath expression, a variable's value must be immutable. </p>
+  <p>Suppose that the XPath expression to be evaluated is <code>"$x + $y"</code>, we need to provide a XPathVariableResolver
+  implementation from which the values of the variable x and y can be retrieved. For this example, the 
+  XPathVariableResolver implementation can be written as follows:</p>
+  <blockquote class="source">
+<pre>
+    public class MyVariableResolver implements XPathVariableResolver
+    {
+        public Object resolveVariable(QName var)
+        {
+            if (var == null)
+                throw new NullPointerException("The variable name cannot be null");
+              
+            if (var.equals(new QName("x")))
+                return new Integer(2);
+            else if (var.equals(new QName("y")))
+                return new Integer(3);
+            else
+                return null;
+        }
+    }
+  </pre>
+</blockquote>  
+  
+  
+  <a name="functionresolver">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using XPathFunctionResolver</h3>
+  <p>
+<a href="apidocs/javax/xml/xpath/XPathFunctionResolver.html">XPathFunctionResolver</a> provides access to the 
+  set of user defined XPathFunctions. If an XPath expression contains
+  an extension function, you can use the 
+  <a href="apidocs/javax/xml/xpath/XPath.html#setXPathFunctionResolver(javax.xml.xpath.XPathFunctionResolver)">
+  XPath.setXPathFunctionResolver(XPathFunctionResolver resolver)</a>
+  method to set a XPathFunctionResolver on the XPath object. You can also use the
+  <a href="apidocs/javax/xml/xpath/XPathFactory.html#setXPathFunctionResolver(javax.xml.xpath.XPathFunctionResolver)">
+  XPathFactory.setXPathFunctionResolver(XPathFunctionResolver resolver)</a>
+  method to set a XPathFunctionResolver on the XPathFactory, in which case all XPath objects constructed from this
+  XPathFactory will use the specified XPathVariableResolver by default.</p>
+  <p>The XPathFunctionResolver interface only has one method:</p>
+  <p>
+<a href="apidocs/javax/xml/xpath/XPathFunctionResolver.html#resolveFunction(javax.xml.namespace.QName, int)">
+  <code>public XPathFunction resolveFunction(QName functionName, int arity)</code>
+</a>
+</p>
+  <p>This method returns a XPathFunction object from the given function name and arity. XPath functions are resolved 
+  by name and arity. The parameter types have no impact here. XPathFunctionResolver is only used for functions with
+  an explicit prefix. It is not needed for XPath built-in functions and it cannot be used to override those functions.</p>
+  <p>The XPathFunction interface has only one method:</p>
+  <p>
+<a href="apidocs/javax/xml/xpath/XPathFunction.html#evaluate(java.util.List)">
+  <code>public java.lang.Object evaluate(java.util.List args) throws XPathFunctionException</code>
+</a>
+</p>
+  <p>The function parameters are passed in using the args parameter as a java.util.List. And the method returns the result 
+  of evaluating the XPath function as an Object.</p>
+  <p>To support the use of extension functions in an XPath expression, a user needs to provide implementations of
+  the XPathFunctionResolver and XPathFunction interfaces. The resolveFunction method of the XPathFunctionResolver
+  implementation should return an object of a class that implements the XPathFunction interface.</p>
+  <p>Suppose we want to evaluate the XPath expression <code>"ext:myAdditionFunction(2, 3)"</code>, and the purpose
+  of the extension function is simply to return the sum of the two parameters. Because an extension function
+  always has an explicit prefix, we also need to implement the NamespaceContext interface to provide a namespace
+  prefix to URI mapping. For this example, we need to implement three interfaces: NamespaceContext, 
+  XPathFunctionResolver and XPathFunction. A sample implementation is as follows:</p>
+  <blockquote class="source">
+<pre>
+      public class MyNamespaceContext implements NamespaceContext
+      {
+          public String getNamespaceURI(String prefix)
+          {
+              if (prefix == null)
+                throw new IllegalArgumentException("The prefix cannot be null.");
+              
+              if (prefix.equals("ext"))
+                  return "http://ext.com";
+              else
+                  return null;
+          }
+          
+          public String getPrefix(String namespace)
+          {
+              if (namespace == null)
+                throw new IllegalArgumentException("The namespace uri cannot be null.");
+              if (namespace.equals("http://ext.com"))
+                return "ext";
+              else
+                return null;
+          }
+  
+          public Iterator getPrefixes(String namespace)
+          {
+              return null;
+          }
+      }
+      
+      /**
+       * The XPathFunctionResolver implementation is used to evaluate
+       * the extension function "ext:myAdditionFunction(2, 3)".
+       */
+      public class MyFunctionResolver implements XPathFunctionResolver
+      {
+      	/**
+      	 * This method returns a customized XPathFunction implementation
+      	 * for the extension function "ext:myAdditionFunction(2, 3)".
+      	 */
+      	public XPathFunction resolveFunction(QName fname, int arity)
+      	{
+      	  if (fname == null)
+      	    throw new NullPointerException("The function name cannot be null.");
+      	  
+      	  // We only recognize one function, i.e. ex:addFunc().
+      	  if (fname.equals(new QName("http://ext.com", "myAdditionFunction", "ext")))
+      	    /** 
+      	     * Return a customized implementation of XPathFunction. We need
+      	     * to implement the evaluate(List) method.
+      	     */
+      	    return new XPathFunction() {
+      	      /**
+      	       * The actual implementation of the extension function.
+      	       * Just cast two arguments to Double and add them together.
+      	       */
+      	      public Object evaluate(java.util.List args) {
+      	        if (args.size() == 2) {
+      	          Double arg1 = (Double)args.get(0);
+      	          Double arg2 = (Double)args.get(1);
+      	          return new Double(arg1.doubleValue() + arg2.doubleValue());
+      	        }
+      	        else
+      	          return null;
+      	      }
+      	    };
+      	  else
+      	    return null;
+      	}
+      }
+  </pre>
+</blockquote>
+  
+  
+  <a name="sampleresolver">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using the sample XPathFunctionResolver</h3>
+  <p>Normally you need to provide your own implementation of XPathFunctionResolver in order to use
+  extension functions in XPath expressions. In Xalan-Java 2, we provide a sample implementation 
+  of XPathFunctionResolver in the class org.apache.xalan.extensions.XPathFunctionResolverImpl, with supports
+  for Java and EXSLT extensions. If you set the XPathFunctionResolver to an object of this class, then
+  you can use Java and EXSLT extension functions in the XPath expression. You also need to use a
+  NamespaceContext along with the sample XPathFunctionResolver. Xalan-Java 2 also includes a sample 
+  implementation of NamespaceContext in org.apache.xalan.extensions.ExtensionNamespaceContext, which 
+  provides the following namespace prefix to URI mappings:</p>
+  
+  <table border="1">
+  <tr>
+    <th class="content" rowspan="1" colspan="1">Prefix</th>
+    <th class="content" rowspan="1" colspan="1">URI</th>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">java</td>
+    <td class="content" rowspan="1" colspan="1">http://xml.apache.org/xalan/java</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">exslt</td>
+    <td class="content" rowspan="1" colspan="1">http://exslt.org/common</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">math</td>
+    <td class="content" rowspan="1" colspan="1">http://exslt.org/math</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">set</td>
+    <td class="content" rowspan="1" colspan="1">http://exslt.org/sets</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">str</td>
+    <td class="content" rowspan="1" colspan="1">http://exslt.org/strings</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">dyn</td>
+    <td class="content" rowspan="1" colspan="1">http://exslt.org/dynamic</td>
+  </tr>
+  <tr>
+    <td class="content" rowspan="1" colspan="1">datetime</td>
+    <td class="content" rowspan="1" colspan="1">http://exslt.org/dates-and-times</td>
+  </tr>
+  </table>
+  
+  <p>Suppose you want to evaluate the XPath expression <code>"math:max(/doc/num)"</code>, which contains
+  an EXSLT extension call. Here the prefix <code>"math"</code> corresponds to the URI <code>"http://exslt.org/math"</code>. 
+  The following code snippet demonstrates how to use the sample XPathFunctionResolver to evaluate the 
+  XPath expression above:</p>
+  <blockquote class="source">
+<pre>
+        XPathFactory factory = XPathFactory.newInstance();
+        XPath xpath = factory.newXPath();
+        
+        // set the NamespaceContext to 
+        // org.apache.xalan.extensions.ExtensionNamespaceContext
+        xpath.setNamespaceContext(new org.apache.xalan.extensions.ExtensionNamespaceContext());
+        
+        // set the XPathFunctionResolver to 
+        // org.apache.xalan.extensions.XPathFunctionResolverImpl
+        xpath.setXPathFunctionResolver(new org.apache.xalan.extensions.XPathFunctionResolverImpl());
+        
+        // Evaluate the XPath expression "math:max(/doc/num)" against 
+        // the input document numlist.xml
+        Object result = xpath.evaluate("math:max(/doc/num)", new InputSource("numlist.xml"), XPathConstants.NUMBER);  
+  </pre>
+</blockquote>
+  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/DOMInterface.gif b/xalan-j/xsltc/DOMInterface.gif
new file mode 100644
index 0000000..8f8919e
--- /dev/null
+++ b/xalan-j/xsltc/DOMInterface.gif
Binary files differ
diff --git a/xalan-j/xsltc/DOMLocking.gif b/xalan-j/xsltc/DOMLocking.gif
new file mode 100644
index 0000000..cae33b4
--- /dev/null
+++ b/xalan-j/xsltc/DOMLocking.gif
Binary files differ
diff --git a/xalan-j/xsltc/all_namespaces.gif b/xalan-j/xsltc/all_namespaces.gif
new file mode 100644
index 0000000..38034b7
--- /dev/null
+++ b/xalan-j/xsltc/all_namespaces.gif
Binary files differ
diff --git a/xalan-j/xsltc/ast_stage1.gif b/xalan-j/xsltc/ast_stage1.gif
new file mode 100644
index 0000000..6e5c425
--- /dev/null
+++ b/xalan-j/xsltc/ast_stage1.gif
Binary files differ
diff --git a/xalan-j/xsltc/ast_stage2.gif b/xalan-j/xsltc/ast_stage2.gif
new file mode 100644
index 0000000..9387a5d
--- /dev/null
+++ b/xalan-j/xsltc/ast_stage2.gif
Binary files differ
diff --git a/xalan-j/xsltc/ast_stage3.gif b/xalan-j/xsltc/ast_stage3.gif
new file mode 100644
index 0000000..2d40d2e
--- /dev/null
+++ b/xalan-j/xsltc/ast_stage3.gif
Binary files differ
diff --git a/xalan-j/xsltc/cast_expression.gif b/xalan-j/xsltc/cast_expression.gif
new file mode 100644
index 0000000..9bb0090
--- /dev/null
+++ b/xalan-j/xsltc/cast_expression.gif
Binary files differ
diff --git a/xalan-j/xsltc/class_loader.gif b/xalan-j/xsltc/class_loader.gif
new file mode 100644
index 0000000..3bc2db9
--- /dev/null
+++ b/xalan-j/xsltc/class_loader.gif
Binary files differ
diff --git a/xalan-j/xsltc/compiler_AST.gif b/xalan-j/xsltc/compiler_AST.gif
new file mode 100644
index 0000000..69871b6
--- /dev/null
+++ b/xalan-j/xsltc/compiler_AST.gif
Binary files differ
diff --git a/xalan-j/xsltc/compiler_DOM.gif b/xalan-j/xsltc/compiler_DOM.gif
new file mode 100644
index 0000000..a056cbb
--- /dev/null
+++ b/xalan-j/xsltc/compiler_DOM.gif
Binary files differ
diff --git a/xalan-j/xsltc/compiler_architecture.gif b/xalan-j/xsltc/compiler_architecture.gif
new file mode 100644
index 0000000..e57d661
--- /dev/null
+++ b/xalan-j/xsltc/compiler_architecture.gif
Binary files differ
diff --git a/xalan-j/xsltc/compiler_design.gif b/xalan-j/xsltc/compiler_design.gif
new file mode 100644
index 0000000..f12ef43
--- /dev/null
+++ b/xalan-j/xsltc/compiler_design.gif
Binary files differ
diff --git a/xalan-j/xsltc/dom_namespace1.gif b/xalan-j/xsltc/dom_namespace1.gif
new file mode 100644
index 0000000..2b9418e
--- /dev/null
+++ b/xalan-j/xsltc/dom_namespace1.gif
Binary files differ
diff --git a/xalan-j/xsltc/dom_namespace2.gif b/xalan-j/xsltc/dom_namespace2.gif
new file mode 100644
index 0000000..7fce24d
--- /dev/null
+++ b/xalan-j/xsltc/dom_namespace2.gif
Binary files differ
diff --git a/xalan-j/xsltc/dom_namespace3.gif b/xalan-j/xsltc/dom_namespace3.gif
new file mode 100644
index 0000000..d62b9b8
--- /dev/null
+++ b/xalan-j/xsltc/dom_namespace3.gif
Binary files differ
diff --git a/xalan-j/xsltc/index.html b/xalan-j/xsltc/index.html
new file mode 100644
index 0000000..1ddcc8e
--- /dev/null
+++ b/xalan-j/xsltc/index.html
@@ -0,0 +1,389 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC Documentation</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC Documentation</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>Overview<br />
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC Documentation</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>User Documentation</h3>
+    <p>The following user documentation is currently available:</p>
+    <ul>
+      <li>Command-line <a href="README.xsltc">compiler</a> and
+      <a href="README.xslt">runtime</a> man pages.</li>
+      <li>
+<a href="xsltc_native_api.html">XSLTC Native API reference</a>
+</li>
+      <li>
+<a href="xsltc_trax_api.html">XSLTC TrAX API reference</a>
+</li>
+      <li>
+<a href="xsltc_performance.html">XSLTC Performance Hints</a>
+</li>
+    </ul>
+  
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Design Documents</h3>
+    <p>The following design documents are currently available:</p>
+    <ul>
+      <li>
+<a href="#overall">XSLTC overall design</a>
+</li>
+      <li>
+<a href="#compiler">XSLTC compiler design</a>
+</li>
+      <li>
+<a href="#runtime">XSLTC runtime library design</a>
+</li>
+      <li>
+<a href="#runtime">XSLTC internal DOM design</a>
+</li>
+      <li>
+<a href="#trax">XSLTC TrAX implementation design</a>
+</li>
+    </ul>
+
+
+    
+    <a name="overall">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>XSLTC overall design</h4>
+
+    <p>The figure below describes the overall design of XSLTC's compiler:</p>
+    <p>
+<img src="overall_design.gif" alt="overall_design.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 1: Architectural overview of XSLTC</i>
+</b>
+</p>
+
+    <p>A client application can use XSLTC either through its
+    <a href="xsltc_native_api.html">native API</a> or through or
+    implementation of the <a href="xsltc_trax_api.html">TrAX API</a>. The
+    <a href="#compiler">compiler</a> generates one or more Java classes
+    (we have chosen to call them 'translets').
+    The <a href="#runtime">runtime library</a> contains classes that
+    can load these translets and use them to transform XML documents to some
+    markup language or plain text. There is also a detailed document describing
+    <a href="xsltc_namespace.html">namespace handling</a> in all parts of
+    XSLTC (compiler, internal DOM, and output handler).</p>
+
+    
+
+    
+    <a name="compiler">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>XSLTC compiler design</h4>
+
+    <p>The figure below describes the overall design of XSLTC's compiler:</p>
+    <p>
+<img src="compiler_design.gif" alt="compiler_design.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 2: Compiler architecture overview</i>
+</b>
+</p>
+
+    <p>There is also a <a href="xsltc_compiler.html">high-level design</a>
+    document for XSLTC's compiler. Apart from that you can also find separate
+    design documents for some XSL elements and XPath expressions, patterns
+    and functions:</p>
+
+    <h5>XSL elements</h5>
+      <ul>
+        <li>
+<a href="xsl_sort_design.html">&lt;xsl:sort&gt;</a>
+</li>
+        <li>
+<a href="xsl_key_design.html">&lt;xsl:key&gt;</a>
+</li>
+        <li>
+<a href="xsl_whitespace_design.html">&lt;xsl:preserve-space&gt;</a>
+</li>
+        <li>
+<a href="xsl_whitespace_design.html">&lt;xsl:strip-space&gt;</a>
+</li>
+        <li>
+<a href="xsl_comment_design.html">&lt;xsl:comment&gt;</a>
+</li>
+        <li>
+<a href="xsl_comment_design.html">&lt;xsl:message&gt;</a>
+</li>
+        <li>
+<a href="xsl_if_design.html">&lt;xsl:if&gt;</a>
+</li>
+        <li>
+<a href="xsl_choose_design.html">&lt;xsl:choose&gt;</a>
+</li>
+        <li>
+<a href="xsl_variable_design.html">&lt;xsl:variable&gt;</a>
+</li>
+        <li>
+<a href="xsl_variable_design.html">&lt;xsl:param&gt;</a>
+</li>
+        <li>
+<a href="xsl_include_design.html">&lt;xsl:include&gt;</a>
+</li>
+        <li>
+<a href="xsl_include_design.html">&lt;xsl:import&gt;</a>
+</li>
+      </ul>
+    
+    <h5>XPath functions</h5>
+      <ul>
+        <li>
+<a href="xsl_key_design.html">key()</a>
+</li>
+        <li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+        <li>
+<a href="xsl_unparsed_design.html">unparsed-entity-uri()</a>
+</li>
+      </ul>
+    
+    <h5>XPath expressons</h5>
+      <ul>
+        <li>
+<a href="xsltc_predicates.html">Predicates</a>
+</li>
+      </ul>
+    
+
+    <h5>XPath patterns</h5>
+      <ul>
+        <li>
+<a href="xsltc_predicates.html#step-pattern">StepPattern</a>
+</li>
+        <li>
+<a href="xsl_key_design.html#patterns">IdPattern</a>
+</li>
+        <li>
+<a href="xsl_key_design.html#patterns">KeyPattern</a>
+</li>
+      </ul>
+    
+    
+
+    
+    <a name="runtime">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>XSLTC runtime library design</h4>
+
+    <p>The runtime portion of XSLTC has four main components; the internal DOM
+    implementation (not W3C), the translet class(es), the runtime
+    library and the output processor:</p>
+
+    <p>
+<img src="runtime_design.gif" alt="runtime_design.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 3: Runtime library architecture overview</i>
+</b>
+</p>
+
+    <p>The <a href="xsltc_runtime.html">runtime library design</a> document
+    describes the structure of the compiled translet as well as the translet
+    runtime library.</p>
+
+    <p>The <a href="xsltc_dom.html">Internal DOM design</a> document
+    describes the components and structure of the internal DOM, support for
+    DOM2 navigation, the DOM adapter, DOM multiplexer, and DOM builder.</p>
+
+    <p>The <a href="xsltc_iterators.html">iterator design</a> document
+    describes the general design of the internal DOM iterators and describes
+    some of the more complicated iterators in detail.</p>
+
+    
+
+    
+    <a name="trax">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>XSLTC TrAX Implementation</h4>
+
+    <p>An implementation of the JAXP/ TrAX interface was added on to XSLTC
+    at a late stage. Special care was taken to preserve the small footprint
+    and high performance of XSLTC. The following design was used to wrap
+    XSLTC behind a lightweight (but complete) TrAX implementation:</p>
+
+    <p>
+<img src="trax_translet_wrapping.gif" alt="trax_translet_wrapping.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 4: XSLTC TrAX interface implementation</i>
+</b>
+</p>
+
+    <p>The <a href="xsltc_trax.html">TrAX design</a> document contains
+    details of XSLTC's TrAX implementation.</p>
+
+    <p>XSLTC also has a 'smart' TrAX <code>TransformerFactory</code> class
+    that will alternate between using XSLTC and Xalan for transformations.
+    This factory class will make its choices based on usage patterns. This will
+    be described in a separate design document.</p>
+
+    
+
+    
+
+  <p>
+<b>
+<i>Design documents by <a href="mailto:morten@xml.apache.org">Morten Jørgensen</a> - updated 13.12.2001</i>
+</b>
+</p>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/iterator_stack.gif b/xalan-j/xsltc/iterator_stack.gif
new file mode 100644
index 0000000..7e683d4
--- /dev/null
+++ b/xalan-j/xsltc/iterator_stack.gif
Binary files differ
diff --git a/xalan-j/xsltc/key_relations.gif b/xalan-j/xsltc/key_relations.gif
new file mode 100644
index 0000000..946d4dc
--- /dev/null
+++ b/xalan-j/xsltc/key_relations.gif
Binary files differ
diff --git a/xalan-j/xsltc/match_namespace1.gif b/xalan-j/xsltc/match_namespace1.gif
new file mode 100644
index 0000000..4d0056d
--- /dev/null
+++ b/xalan-j/xsltc/match_namespace1.gif
Binary files differ
diff --git a/xalan-j/xsltc/match_namespace2.gif b/xalan-j/xsltc/match_namespace2.gif
new file mode 100644
index 0000000..db10277
--- /dev/null
+++ b/xalan-j/xsltc/match_namespace2.gif
Binary files differ
diff --git a/xalan-j/xsltc/namespace_stack.gif b/xalan-j/xsltc/namespace_stack.gif
new file mode 100644
index 0000000..a469d23
--- /dev/null
+++ b/xalan-j/xsltc/namespace_stack.gif
Binary files differ
diff --git a/xalan-j/xsltc/output_namespaces1.gif b/xalan-j/xsltc/output_namespaces1.gif
new file mode 100644
index 0000000..5068fc2
--- /dev/null
+++ b/xalan-j/xsltc/output_namespaces1.gif
Binary files differ
diff --git a/xalan-j/xsltc/output_namespaces2.gif b/xalan-j/xsltc/output_namespaces2.gif
new file mode 100644
index 0000000..aaf7cf7
--- /dev/null
+++ b/xalan-j/xsltc/output_namespaces2.gif
Binary files differ
diff --git a/xalan-j/xsltc/output_settings.gif b/xalan-j/xsltc/output_settings.gif
new file mode 100644
index 0000000..804e087
--- /dev/null
+++ b/xalan-j/xsltc/output_settings.gif
Binary files differ
diff --git a/xalan-j/xsltc/overall_design.gif b/xalan-j/xsltc/overall_design.gif
new file mode 100644
index 0000000..32e9e98
--- /dev/null
+++ b/xalan-j/xsltc/overall_design.gif
Binary files differ
diff --git a/xalan-j/xsltc/pattern_objects.gif b/xalan-j/xsltc/pattern_objects.gif
new file mode 100644
index 0000000..ea07393
--- /dev/null
+++ b/xalan-j/xsltc/pattern_objects.gif
Binary files differ
diff --git a/xalan-j/xsltc/resources/Xalan-Logo-tm.png b/xalan-j/xsltc/resources/Xalan-Logo-tm.png
new file mode 100644
index 0000000..9a08808
--- /dev/null
+++ b/xalan-j/xsltc/resources/Xalan-Logo-tm.png
Binary files differ
diff --git a/xalan-j/xsltc/resources/Xalan-Logo.txt b/xalan-j/xsltc/resources/Xalan-Logo.txt
new file mode 100644
index 0000000..7886950
--- /dev/null
+++ b/xalan-j/xsltc/resources/Xalan-Logo.txt
@@ -0,0 +1,85 @@
+
+The XALAN Logo
+
+Graphic: A stylized version of the African Xalam instrument.
+
+
+
+TEXT FONTS SIZE AND STYLE:
+
+TM (trademark)
+
+	Font: Arial
+	Size: 14pt
+	Style: Bold)
+
+XSLT
+
+	Font: Arial
+	Size: 22pt
+	Style: Bold
+
+Apache Software Foundation
+
+	Font: Arial
+	Size: 18pt
+	Style: Bold
+	Note: 2 space characters between words
+
+Xalan	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-C	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-J	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+
+INSTRUMENT GRAPHIC (vector equations)
+
+	Vertical Width:		0.75 inch (3/4)
+	HorizontalLength:	3.667 inch (3 2/3)
+
+	Oval on the left,
+	neck and butt on the right.
+
+	Oval Width:		0.75 inch (3/4)
+	Oval Length:		1.583 inch (1 7/12)
+
+	Neck Width:		0.167 inch (1/6)
+
+	Butt Width:		0.25 inch (1/4)
+	Butt Length:		0.417 inch (5/12)
+
+
+Description of instrument logo
+
+	Oval: simulation of a gourd sound chamber
+	With orange gradation hues
+
+	Neck: rectangle simulating a round fingerboard
+	With yellow-green gradation hues
+
+	Butt: rounded rectangle simulating end of neck
+	With olive-green hue
+
+	String Anchor:  rounded rectangle on the gourd
+	With olive-green hue
+
+	2 strings: the full length from Anchor to Butt
+
+	2 strings: tied to neck, at 1/2 length from Anchor to Butt
+
+	3 Loose Tie Strings on the Butt, simulating tuning anchors
+
+	
\ No newline at end of file
diff --git a/xalan-j/xsltc/resources/Xalan-Trademark.txt b/xalan-j/xsltc/resources/Xalan-Trademark.txt
new file mode 100644
index 0000000..0bd3704
--- /dev/null
+++ b/xalan-j/xsltc/resources/Xalan-Trademark.txt
@@ -0,0 +1,106 @@
+
+The XALAN Logo - Trademark Description
+--------------------------------------
+
+Prepared By:  
+
+	Steven J. Hathaway
+
+	(shathaway@apache.org)
+
+	September 3, 2011
+
+
+
+Prepared for:
+
+	The Apache Software Foundation
+
+--------------------------------------
+
+Graphic: A stylized version of the African Xalam instrument.
+
+Note: the difference in spelling.
+
+	Xalam is the African Musical Instrument
+	Xalan is the Apache Xalan Software Project
+
+
+TEXT FONTS SIZE AND STYLE:
+
+TM (trademark symbol)
+
+	Font: Arial
+	Size: 14pt
+	Style: Bold)
+
+XSLT
+
+	Font: Arial
+	Size: 22pt
+	Style: Bold
+
+Apache Software Foundation (trademark name)
+
+	Font: Arial
+	Size: 18pt
+	Style: Bold
+	Note: 2 space characters between words
+
+Xalan	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-C	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+Xalan-J	(trademark name)
+
+	Font: Segoe Print
+	Size: 48pt
+	Style: Bold
+
+
+INSTRUMENT GRAPHIC (vector equations)
+
+	Vertical Width:		0.75 inch (3/4)
+	HorizontalLength:	3.667 inch (3 2/3)
+
+	Oval on the left,
+	neck and butt on the right.
+
+	Oval Width:		0.75 inch (3/4)
+	Oval Length:		1.583 inch (1 7/12)
+
+	Neck Width:		0.167 inch (1/6)
+
+	Butt Width:		0.25 inch (1/4)
+	Butt Length:		0.417 inch (5/12)
+
+
+Description of instrument logo
+
+	Oval: simulation of a gourd sound chamber
+	With orange gradation hues
+
+	Neck: rectangle simulating a round fingerboard
+	With yellow-green gradation hues
+
+	Butt: rounded rectangle simulating end of neck
+	With olive-green hue
+
+	String Anchor:  rounded rectangle on the gourd
+	With olive-green hue
+
+	2 strings: the full length from Anchor to Butt
+
+	2 strings: tied to neck, at 1/2 length from Anchor to Butt
+
+	3 Loose Tie Strings on the Butt, simulating tuning anchors
+
+	
\ No newline at end of file
diff --git a/xalan-j/xsltc/resources/XalanJ-Logo-tm.png b/xalan-j/xsltc/resources/XalanJ-Logo-tm.png
new file mode 100644
index 0000000..cab93a7
--- /dev/null
+++ b/xalan-j/xsltc/resources/XalanJ-Logo-tm.png
Binary files differ
diff --git a/xalan-j/xsltc/resources/apache-xalan.css b/xalan-j/xsltc/resources/apache-xalan.css
new file mode 100644
index 0000000..fc2fa1a
--- /dev/null
+++ b/xalan-j/xsltc/resources/apache-xalan.css
@@ -0,0 +1,414 @@
+/* Xalan-C/C++ Project Web Pages (css) Stylesheet */

+

+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements. See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership. The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the  "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+*/

+

+/* This (css) stylesheet renders the xhtml web pages that were generated

+ * from StyleBook XML markup using the "xalan-book.xslt" transformation.

+*/

+

+html > bod  {left:0;}

+body {

+/*  background-color: white; */

+  background-color: #f8f8f0;

+  color: black;

+  padding: 0;

+  margin: 0;

+  font-family: arial, "lucida console", san-serif;

+}

+

+/* Emulate table align=center */

+div.centered, td.centered {

+  text-align: center;

+}

+

+div.centered table {

+  margin: 0 auto;

+  text-align: left;

+}

+

+/*

+ * ID Sections

+ */

+

+#content {

+  width: 80%;

+  float: left;

+  font-size: 12pt;

+  padding-top: 1em;

+  padding-left: 5px;

+  margin-left: 10px;

+  border-left: 1px solid #aaa;

+}

+

+#navLeft {

+  clear: left;

+  width: 15%;

+  float: left;

+  padding: 2px;

+  margin-left: 1%;

+  color: red;

+  position: relative;

+  left: 1px;

+  background-color: #eee;

+}

+

+.navGroup {

+  color: Black;

+  font-size: 14pt;

+}

+

+

+#title {

+  color: black;

+  background-color: #eee;

+  text-align: center;

+  border-bottom: 1px solid #aaa;

+  padding: 0;

+  vertical-align: middle;

+}

+

+table.HdrTitle {

+  font-size: 18pt;

+}

+

+table.HdrButtons {

+  font-size: 8pt;

+  background-color: #ccf;

+  align: "center";

+  border: "1";

+

+}

+

+#footer {

+    clear: both;

+    margin: 0 2em;

+    color: #444;

+    background-color: #ddd;

+    text-align: center;

+    padding: .5em 0;

+    font-size: 75%;

+    border-top: 1px solid #aaa;

+}

+

+/*

+ * Anchors

+ */

+

+a {

+  color: blue;

+  text-decoration: undedrline;

+}

+

+a img {

+  border: 0;

+}

+

+a:hover {

+  text-decoration: none;

+  background-color: #d7c9c9;

+}

+

+/*

+ * Headers

+ */

+

+h1 {}

+

+#title h1 {

+  padding: 1px 0;

+  margin: 0;

+  float: right;

+  width: 60%;

+  font-size: 20pt;

+  text-align: center;

+}

+

+#content h1 { background-color: #8af }

+

+h2 {}

+

+#title h2 {

+  font-size: 14pt;

+  width: 60%;

+  text-alignment: center;

+  padding: 1px 0;

+  margin: 0;

+}

+

+#content h2 { background-color: #9bf }

+

+#content h2.year {

+  background-color: #ddd;

+  text-align: center;

+}

+

+h3 {}

+

+#content h3.monthName {

+  background-color: #333;

+  text-align: center;

+}

+

+#content h3 { background-color: #acf }

+

+h4{}

+

+#content h4.eventTitle {

+  margin-left: 1%;

+  border-bottom: 1px solid blue;

+}

+

+#content h4 { background-color: #cdf }

+

+/*

+ * Tables

+ */

+

+th {}

+

+td {}

+

+th.content {background-color: #4BD }

+td.content {background-color: #AEF }

+

+/*

+ * Lists and navLeft

+ */

+

+ul {}

+

+#navLeft ul {

+  list-style-type: none;

+  margin: 0;

+  padding: 0;

+}

+

+#navLeft ul li {

+  margin: 0;

+}

+

+#navLeft ul li p {

+  margin: 0;

+}

+

+#navLeft ul li ul {

+  list-style-type: none;

+  font-size: 90%;

+  margin: 0 2em;

+}

+

+#navLeft ul li ul li {

+  margin: 0;

+}

+

+/*

+ * Paragraphs

+ */

+

+p {}

+

+#navLeft p {

+  text-align: center;

+  padding: 0 auto;

+  margin: 0;

+}

+

+#footer p {

+  padding: 0;

+}

+

+#content p.topalign {

+  vertical-align: middle;

+  height: 2em;

+  text-align: center;

+  width: 100%;

+  padding: .5em;

+  border: 1px solid #ddd;

+}

+

+#content p.topalign img {

+  vertical-align: middle;

+  text-align: text-middle;

+}

+

+#content p.quote {

+  color:black;

+  font-style: italic;

+  font-size: 110%;

+  margin-left: 10%;

+  margin-right: 10%;

+  padding 1em;

+  border: 1px solid #ddd;

+  text-align: center;

+}

+

+#content p.navbar {

+  font-size: 90%;

+  text-align: center;

+  border-top: 1px solid #ddd;

+  border-bottom: 1px solid #ddd;

+}

+

+blockquote {}

+

+blockquote.note {

+  font-size: 80%;

+  border: 1px solid #ddd;

+  background-color: #eee;

+}

+

+td.noteImg {

+  background-color: white;

+  border: 0;

+}

+

+td.noteTxt {

+  background-color: white;

+  font-size: 120%;

+  border: 2px solid #ddd;

+  background-color: #eee;

+}

+

+/**

+ ** UNSPECIFIED IN APACHE STYLEBOOK DTD

+ ** <caution>..</caution> and <warning>..</warning>

+ **

+ * 

+ * td.cautionImg {

+ *   background-color: white;

+ *   border: 0;

+ * }

+ * 

+ * td.cautionTxt {

+ *   background-color: white;

+ *   font-size: 120%;

+ *   border: 2px solid #ddd;

+ *   background-color: #eee;

+ * }

+ * 

+ * 

+ * td.warningImg {

+ *   background-color: white;

+ *   border: 0;

+ * }

+ * 

+ * td.warningTxt {

+ *   background-color: white;

+ *   font-size: 120%;

+ *   border: 2px solid #ddd;

+ *   background-color: #eee;

+ * }

+ * 

+**/

+

+

+blockquote.source {

+  font-size: 75%;

+}

+

+code {

+  font-size: 75%;

+}

+

+

+/*

+ * Special Table (note)

+ */

+

+#notediv div { background-color: white }

+

+table.note {

+  width: 90%;

+}

+

+td.noteImg {

+  background-color: white;

+  vertical-align: top;

+  border: 0;

+  width: 24;

+}

+

+td.noteTxt {

+  color: black;

+  background-color: #eee;

+  font-size: 90%;

+  border: 2px solid;

+  border-color: #ccc;

+}

+

+

+/*

+ * Images

+ */

+

+img {}

+

+

+#footer img {

+  border: 0;

+}

+

+

+/*

+ * Document Divisions

+ */

+

+div {}

+

+/*

+ * Pre

+ */

+

+pre {}

+

+

+/*

+ * Generic Classes

+ */

+

+.indented {

+  margin-left: 3%;

+}

+

+.topBanner {

+  float: right;

+  margin: 0;

+  border: 0;

+  vertical-align: middle;

+}

+

+.noborder {

+  border: 0;

+  margin: 0;

+}

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

diff --git a/xalan-j/xsltc/resources/asf_logo.png b/xalan-j/xsltc/resources/asf_logo.png
new file mode 100644
index 0000000..66c34f0
--- /dev/null
+++ b/xalan-j/xsltc/resources/asf_logo.png
Binary files differ
diff --git a/xalan-j/xsltc/resources/note.gif b/xalan-j/xsltc/resources/note.gif
new file mode 100644
index 0000000..3394222
--- /dev/null
+++ b/xalan-j/xsltc/resources/note.gif
Binary files differ
diff --git a/xalan-j/xsltc/runtime_architecture.gif b/xalan-j/xsltc/runtime_architecture.gif
new file mode 100644
index 0000000..9c8e2e7
--- /dev/null
+++ b/xalan-j/xsltc/runtime_architecture.gif
Binary files differ
diff --git a/xalan-j/xsltc/runtime_design.gif b/xalan-j/xsltc/runtime_design.gif
new file mode 100644
index 0000000..c5d605a
--- /dev/null
+++ b/xalan-j/xsltc/runtime_design.gif
Binary files differ
diff --git a/xalan-j/xsltc/runtime_type_mapping.gif b/xalan-j/xsltc/runtime_type_mapping.gif
new file mode 100644
index 0000000..769a993
--- /dev/null
+++ b/xalan-j/xsltc/runtime_type_mapping.gif
Binary files differ
diff --git a/xalan-j/xsltc/sort_objects.gif b/xalan-j/xsltc/sort_objects.gif
new file mode 100644
index 0000000..0ec7cbb
--- /dev/null
+++ b/xalan-j/xsltc/sort_objects.gif
Binary files differ
diff --git a/xalan-j/xsltc/translet_wrapping.gif b/xalan-j/xsltc/translet_wrapping.gif
new file mode 100644
index 0000000..c71b914
--- /dev/null
+++ b/xalan-j/xsltc/translet_wrapping.gif
Binary files differ
diff --git a/xalan-j/xsltc/trax_output_settings.gif b/xalan-j/xsltc/trax_output_settings.gif
new file mode 100644
index 0000000..804e087
--- /dev/null
+++ b/xalan-j/xsltc/trax_output_settings.gif
Binary files differ
diff --git a/xalan-j/xsltc/trax_translet_wrapping.gif b/xalan-j/xsltc/trax_translet_wrapping.gif
new file mode 100644
index 0000000..c71b914
--- /dev/null
+++ b/xalan-j/xsltc/trax_translet_wrapping.gif
Binary files differ
diff --git a/xalan-j/xsltc/type_mapping.gif b/xalan-j/xsltc/type_mapping.gif
new file mode 100644
index 0000000..bb3cbb9
--- /dev/null
+++ b/xalan-j/xsltc/type_mapping.gif
Binary files differ
diff --git a/xalan-j/xsltc/type_mappings.gif b/xalan-j/xsltc/type_mappings.gif
new file mode 100644
index 0000000..31f888c
--- /dev/null
+++ b/xalan-j/xsltc/type_mappings.gif
Binary files differ
diff --git a/xalan-j/xsltc/typecast.gif b/xalan-j/xsltc/typecast.gif
new file mode 100644
index 0000000..2a9c168
--- /dev/null
+++ b/xalan-j/xsltc/typecast.gif
Binary files differ
diff --git a/xalan-j/xsltc/uri_resolver.gif b/xalan-j/xsltc/uri_resolver.gif
new file mode 100644
index 0000000..4da7a35
--- /dev/null
+++ b/xalan-j/xsltc/uri_resolver.gif
Binary files differ
diff --git a/xalan-j/xsltc/xsl_choose_design.html b/xalan-j/xsltc/xsl_choose_design.html
new file mode 100644
index 0000000..caf8e87
--- /dev/null
+++ b/xalan-j/xsltc/xsl_choose_design.html
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: &lt;xsl:choose&gt; / &lt;xsl:when&gt; / &lt;xsl:otherwise&gt;</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">&lt;xsl:choose&gt; / &lt;xsl:when&gt; / &lt;xsl:otherwise&gt;</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>Choose|When|Otherwise design<br />
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>&lt;xsl:choose&gt; / &lt;xsl:when&gt; / &lt;xsl:otherwise&gt;</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Contents</h3>
+  <ul>
+    <li>
+<a href="#functionality">Functionality</a>
+</li>
+    <li>
+<a href="#implementation">Implementation</a>
+</li>    
+  </ul>
+  
+
+  <a name="functionality">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Functionality</h3>
+
+  <p>The <code>&lt;xsl:choose&gt;</code> element is used to determine one
+  course of action based on a series of tests. Each test is done inside an
+  <code>&lt;xsl:when&gt;</code> element. If a test succeeds, the body of the
+  <code>&lt;xsl:when&gt;</code> element is executed. If no tests fail then
+  a <code>&lt;xsl:otherwise&gt;</code> element can be used to specify a
+  default action:</p>
+
+  <blockquote class="source">
+<pre>
+    &lt;xsl:choose&gt;
+      &lt;xsl:when test="element-available('some-extension')"&gt;
+          ...
+      &lt;/xsl:when&gt;
+      &lt;xsl:when test="function-availabe('saxon:nodeset')"&gt;
+          ...
+      &lt;/xsl:when&gt;
+      &lt;xsl:otherwise&gt;
+          ...
+      &lt;/xsl:otherwise&gt;
+    &lt;/xsl:choose&gt;</pre>
+</blockquote>
+
+  
+
+  <a name="implementation">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Implementation</h3>
+
+  <p>The <code>Choose</code> class places all <code>When</code> child-nodes
+  in a vector. The <code>Choose</code> class translates the "test"-attribute
+  of all <code>When</code> nodes (in strict order) and chains them together
+  in an if-else style. The expression that holds each test contains a true-
+  and a false-list. These lists are vectors of branch targets that should be
+  used if the test succeeds or fails, respectively. The first test's
+  false-list is pointed to the start of the next test (ie. if the first test
+  fails, then we run the next test). The last test's false-list points directly
+  to the code for the body of the <code>&lt;xsl:otherwise&gt;</code> element.
+  </p>
+
+  <p>Just as with the <code>&lt;xsl:if&gt;</code>-element, special care is
+  taken for the <code>element-available()</code> and
+  <code>function-available()</code> functions. These functions are evaluated at
+  compile-time (this can be done since all parameters for these functions are
+  literals) and the body of a <code>&lt;xsl:when&gt;</code> element is not
+  compiled if we know that it will never be needed at runtime.</p>
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsl_comment_design.html b/xalan-j/xsltc/xsl_comment_design.html
new file mode 100644
index 0000000..ef2a26d
--- /dev/null
+++ b/xalan-j/xsltc/xsl_comment_design.html
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: &lt;xsl:comment&gt; / &lt;xsl:message&gt;</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">&lt;xsl:comment&gt; / &lt;xsl:message&gt;</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>Comment design<br />
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>&lt;xsl:comment&gt; / &lt;xsl:message&gt;</h2>
+
+  <ul>
+  <li>
+<a href="#functionality">Functionality</a>
+</li>
+  <li>
+<a href="#implementation">Implementation</a>
+</li>  
+  </ul>
+<a name="functionality">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Functionality</h3>
+
+  <p>The <code>&lt;xsl:comment&gt;</code> element is used to insert XML comments
+  into the result document. The comment is inserted as follows in the XSL
+  stylesheet:</p>
+
+  <blockquote class="source">
+<pre>    &lt;element&gt;
+      &lt;xsl:comment&gt;This is a comment!&lt;/xsl:comment&gt;
+    &lt;/element&gt;</pre>
+</blockquote>
+
+  <p>and it will be output in the result document as follows:</p>
+
+  <blockquote class="source">
+<pre>    &lt;element&gt;
+      &lt;!-- This is a comment! --&gt;
+    &lt;/element&gt;</pre>
+</blockquote>
+
+  <p>The <code>&lt;xsl:message&gt;</code> element is used to send messages to
+  who/whatever is performing the transformation. The message can be displayed
+  in a terminal, a dialog box, etc. The  <code>&lt;xsl:message&gt;</code> element
+  is used in the same way as the <code>&lt;xsl:comment&gt;</code> element,
+  however the message is <b>not</b> output in the result document.</p>
+
+  <p>The <code>&lt;xsl:message&gt;</code> element has an attribute
+  <code>"terminate"</code> which can be used to terminate the transformation at any
+  given stage. This is useful when using message to give information about
+  illegal values in the input document.</p>
+<a name="implementation">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Implementation</h3>
+
+  <p>The output handler class has a method for outputting comments in the
+  output document and messages to the operator. The code compiled for a
+  comment gathers all text that goes into the comment in a StringValueHandler
+  object, retrieves the full text string from this handler, and then finally
+  sends it to the output handler. Similarly the code compiled for a message
+  will simply send the message to the output handler in use.</p>
+
+  <p>Messages will be output to the terminal (stdout) when a transformation
+  is run in a terminal. The message will be output before the beginning of the
+  output document. Messages will be shown in a dialog box if a transformation
+  is run in an applet.</p>
+
+  <p>
+<code>&lt;xsl:message&gt;</code> elements that use the <code>"terminate"</code>
+  attribute to abort transformations cause an exception to be thrown. A
+  RuntimeException is used for this, and the exception text is:</p>
+  <p>
+<code>Termination forced by an xsl:message instruction</code>
+</p>
+  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsl_if_design.html b/xalan-j/xsltc/xsl_if_design.html
new file mode 100644
index 0000000..9e87e49
--- /dev/null
+++ b/xalan-j/xsltc/xsl_if_design.html
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: &lt;xsl:if&gt;</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">&lt;xsl:if&gt;</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>If design<br />
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>&lt;xsl:if&gt;</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Contents</h3>
+  <ul>
+    <li>
+<a href="#functionality">Functionality</a>
+</li>
+    <li>
+<a href="#implementation">Implementation</a>
+</li>    
+  </ul>
+  
+
+  <a name="functionality">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Functionality</h3>
+
+  <p>This element is cruical to XSL processing, but still very simple both in
+  its use and implementation. The element is used like this:</p>
+<blockquote class="source">
+<pre>
+  &lt;xsl:if test="contains($the-world,'Elvis')"&gt;
+    &lt;xsl:message&gt;Elvis is still alive!&lt;/xsl:message&gt;
+  &lt;/xsl:if&gt;</pre>
+</blockquote>
+
+  <p>The element's contents will only be executed if the test succeeds. There
+  is no <code>&lt;xsl:else&gt;</code> element. One has to use either several
+  <code>&lt;xsl:if&gt;</code>-elements or use a choose-element.</p>
+
+  
+
+  <a name="implementation">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Implementation</h3>
+
+  <p>The basic implementation is very simple:</p>
+  <ul>
+    <li>execute the expression from the 'test'-attribute</li>
+    <li>evaluate the resulting boolean value</li>
+    <li>ignore the element contents if the value is 'false'</li>
+    <li>otherwise execute the element contents</li>
+  </ul>
+
+  <p>There is onle type of function call that makes this a bit more complicated.
+  The <code>function-available()</code> and <code>element-available()</code>
+  function calls can be used to test for extension elements and functions. A
+  very common use for these is to encapsulate all references to extension
+  elements inside an <code>&lt;xsl:if&gt;</code> element and test for the
+  existance of this element before attempting to use it. XSLTC has to support
+  this. Otherwise we may risk either outputting erronuous error or warning
+  messages about acessing non-existing elements, or even worse, compiling in
+  calls to non-existing methods in the translet, causing the JVM's verifier to
+  prevent the translet from being loaded.</p>
+
+  <p>The <code>function-available()</code> and <code>element-available()</code>
+  functions have been updated to perform an evaluation at compile-time, so that
+  the <code>If</code> class can know wether to compile in calls to extensions or
+  not. This is possible because both functions take only literal expressions as
+  parameters. See the <code>getResult()</code> methods of the
+  <code>FunctionAvailableCall</code> and <code>ElementAvailableCall</code>
+  classes for details.</p>
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsl_include_design.html b/xalan-j/xsltc/xsl_include_design.html
new file mode 100644
index 0000000..5617509
--- /dev/null
+++ b/xalan-j/xsltc/xsl_include_design.html
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: &lt;xsl:include&gt; / &lt;xsl:import&gt;</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">&lt;xsl:include&gt; / &lt;xsl:import&gt;</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>Include|Import design<br />
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>&lt;xsl:include&gt; / &lt;xsl:import&gt;</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Contents</h3>
+  <ul>
+    <li>
+<a href="#functionality">Functionality</a>
+</li>
+    <li>
+<a href="#implementation">Implementation</a>
+</li>    
+  </ul>
+  
+
+  <a name="functionality">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Functionality</h3>
+
+    <p>
+<code>&lt;xsl:include&gt;</code> allows you to include one stylesheet
+    into another. The includ<b>ed</b> stylesheet's templates will have the same
+    default priorities and import precedence as the includ<b>ing</b> stylesheet.
+    <code>&lt;xsl:import&gt;</code> offers the same, but the import precedence
+    of elements in an import<b>ed</b> stylesheet is always less than that of
+    the import<b>ing</b> stylesheet.</p>
+   
+  
+
+  <a name="implementation">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Implementation</h3>
+ 
+    <a name="include">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>&lt;xsl:include&gt;</h4>
+
+    <p>This is the simplest case, so we will look at that first. The algorithm
+    for including another stylesheet is roughly:</p>
+
+    <ul>
+      <li>get the including stylesheet from the XSLT parser</li>
+      <li>get the value of the "href" attribute from the
+        <code>&lt;xsl:include&gt;</code> element and check for circular
+        includes/imports</li>
+      <li>check if there is a defined <code>SourceLoader</code> set either
+        through the native or the TrAX API</li>
+      <li>get an <code>InputSource</code> for the document to include, either
+        from the <code>SourceLoader</code> or from the document's URI</li>
+      <li>parse the input document using the compiler's XSLT parser</li>
+      <li>set the import precedence of the included stylesheet to the same as
+        the import precedence of the including stylesheet</li>
+      <li>get the top-level stylesheet from the XSLT parser</li>
+      <li>move all variables, parameters, and top-level elements (include
+        templates) from the included stylesheet to the top-level stylesheet
+        (all elements will keep their import precedence even after being moved
+        to the top-level stylesheet)</li>
+    </ul>
+ 
+        
+
+    <a name="import">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>&lt;xsl:import&gt;</h4>
+
+    <p>This is very similar to <code>&lt;xsl:include&gt;</code>, but import
+    precedence has to be handled differently. Looking at the code you'll find
+    this fragment:</p>
+<blockquote class="source">
+<pre>
+    // Handle precedence for the including stylesheet
+    final int currPrecedence = parser.getCurrentImportPrecedence();
+    final int nextPrecedence = parser.getNextImportPrecedence();
+    _imported.setImportPrecedence(currPrecedence);
+    context.setImportPrecedence(nextPrecedence);</pre>
+</blockquote>
+
+    <p>The important thing here is that the imported stylesheet has import
+    precedence <b>less</b> than the importing stylesheet. So the imported
+    stylesheet gets the current import precedence, while the current stylesheet
+    gets the next available (unused) import precedence. The
+    <code>Stylesheet</code> class has a method
+    <code>setImportPrecedence()</code> that ensures that the import precedence
+    is set not only for the stylesheet itself, but that it is also propagated
+    down to any included/imported stylesheets:</p>
+<blockquote class="source">
+<pre>
+    public void setImportPrecedence(final int precedence) {
+	// Set import precedence for this stylesheet
+	_importPrecedence = precedence;
+
+	// Set import precedence for all included stylesheets
+	final Enumeration elements = elements();
+	while (elements.hasMoreElements()) {
+	    SyntaxTreeNode child = (SyntaxTreeNode)elements.nextElement();
+	    if (child instanceof Include) {
+		Stylesheet included = ((Include)child).getIncludedStylesheet();
+		if (included != null) included.setImportPrecedence(precedence);
+	    }
+	}
+
+	// Set import precedence for the stylesheet that imported this one
+	if (_importedFrom != null) {
+	    if (_importedFrom.getImportPrecedence() &lt; precedence) {
+		final Parser parser = getParser();
+		final int nextPrecedence = parser.getNextImportPrecedence();
+		_importedFrom.setImportPrecedence(nextPrecedence);
+	    }
+	}
+	// Set import precedence for the stylesheet that included this one
+	else if (_includedFrom != null) {
+	    if (_includedFrom.getImportPrecedence() != precedence)
+		_includedFrom.setImportPrecedence(precedence);
+	}
+    }</pre>
+</blockquote>
+
+    <p>This method has been carefully cluttered together, and it works, and it
+    should not be touched.</p>
+
+    
+
+    <a name="apply-imports">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>&lt;xsl:apply-imports&gt;</h4>
+
+    
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsl_key_design.html b/xalan-j/xsltc/xsl_key_design.html
new file mode 100644
index 0000000..6ef9334
--- /dev/null
+++ b/xalan-j/xsltc/xsl_key_design.html
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: &lt;xsl:key&gt; / key() / IdKeyPattern</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">&lt;xsl:key&gt; / key() / IdKeyPattern</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>Keys<br />
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>&lt;xsl:key&gt; / key() / IdKeyPattern</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Contents</h3>
+  <ul>
+    <li>
+<a href="#functionality">Functionality</a>
+</li>
+    <li>
+<a href="#implementation">Implementation</a>
+</li>    
+  </ul>
+  
+
+  <a name="functionality">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Functionality</h3>
+
+  <p>The <code>&lt;xsl:key&gt;</code> element is a top-level element that can be
+  used to define a named index of nodes from the source XML tree(s). The
+  element has three attributes:</p>
+
+  <ul>
+    <li>
+      <code>name</code> - the name of the index
+    </li>
+    <li>
+      <code>match</code> - a pattern that defines the nodeset we want
+      indexed
+    </li>
+    <li>
+      <code>use</code> - an expression that defines the value to be used
+      as the index key value.
+    </li>
+  </ul>
+
+  <p>A named index can be accessed using either the <code>key()</code> function
+  or a KeyPattern. Both these methods address the index using its defined name
+  (the "name" attribute above) and a parameter defining one or more lookup
+  values for the index. The function or pattern returns a node set containing
+  all nodes in the index whose key value match the parameter's value(s):</p>
+
+  <blockquote class="source">
+<pre>
+    &lt;xsl:key name="book-author" match="book" use="author"/&gt;
+        :
+        :
+    &lt;xsl:for-each select="key('book-author', 'Mikhail Bulgakov')"&gt;
+      &lt;xsl:value-of select="author"/&gt;
+      &lt;xsl:text&gt;: &lt;/xsl:text&gt;
+      &lt;xsl:value-of select="author"/&gt;
+      &lt;xsl:text&gt;&amp;#xa;&lt;/xsl:text&gt;
+    &lt;/xsl:for-each&gt;</pre>
+</blockquote>
+
+  <p>The KeyPattern can be used within an index definition to create unions
+  and intersections of node sets:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:key name="cultcies" match="farmer | fisherman" use="name"/&gt;</pre>
+</blockquote>
+
+  <p>This could have been done using regular <code>&lt;xsl:for-each&gt;</code>
+  and <code>&lt;xsl:select&gt;</code> elements. However, if your stylesheet
+  accesses the same selection of nodes over and over again, the transformation
+  will be much more efficient using pre-indexed keys as shown above.</p>
+
+  
+
+  <a name="implementation">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Implementation</h3>
+
+    <a name="indexing">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Indexing</h4>
+
+    <p>The <code>AbstractTranslet</code> class has a global hashtable that holds
+    an index for each named key in the stylesheet (hashing on the "name"
+    attribute of <code>&lt;xsl:key&gt;</code>). <code>AbstractTranslet</code>
+    has a couple of public methods for inserting and retrieving data from this
+    hashtable:</p>
+<blockquote class="source">
+<pre>
+    public void buildKeyIndex(String keyName, int nodeID, String value);
+    public KeyIndex KeyIndex getKeyIndex(String keyName);</pre>
+</blockquote>
+
+    <p>The <code>Key</code> class compiles code that traverses the input DOM and
+    extracts nodes that match some given parameters (the <code>"match"</code>
+    attribute of the <code>&lt;xsl:key&gt;</code> element). A new element is
+    inserted into the named key's index. The nodes' DOM index and the value
+    translated from the <code>"use"</code> attribute of the
+    <code>&lt;xsl:key&gt;</code> element are stored in the new entry in the
+    index.</p>
+
+    <p>Something similar is done for indexing IDs. This index is generated from
+    the <code>ID</code> and <code>IDREF</code> fields in the input document's
+    DTD. This means that the code for generating this index cannot be generated
+    at compile-time, which again means that the code has to be generic enough
+    to handle all DTDs. The class that handles this is the
+    <code>org.apache.xalan.xsltc.dom.DTDMonitor</code> class. This class
+    implements the <code>org.xml.sax.XMLReader</code> and
+    <code>org.xml.sax.DTDHandler</code> interfaces. A client application using
+    the native API must instanciate a <code>DTDMonitor</code> and pass it to the
+    translet code - if, and only if, it wants IDs indexed (one can improve
+    performance by omitting this step). This is descrived in the
+    <a href="xsltc_native_api.html">XSLTC Native API reference</a>. The
+    <code>DTDMonitor</code> class will use the same indexing as the code
+    generated by the <code>Key</code> class. The index for ID's is called
+    "##id". We assume that no stylesheets will contain a key with this name.</p>
+
+    <p>The index itself is implemented in the
+    <code>org.apache.xalan.xsltc.dom.KeyIndex</code> class. The index has an
+    hashtable with all the values from the matching nodes (the part of the node
+    used to generate this value is the one specified in the <code>"use"</code>
+    attribute). For every matching value there is a bit-array (implemented in
+    the <code>org.apache.xalan.xsltc.BitArray</code> class), holding a list of
+    all node indexes for which this value gives a match:</p>
+    <p>
+<img src="key_relations.gif" alt="key_relations.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 1: Indexing tables</i>
+</b>
+</p>
+
+    <p>The <code>KeyIndex</code> class implements the <code>NodeIterator</code>
+    interface, so that it can be returned directly by the implementation of the
+    <code>key()</code> function. This is how the index generated by
+    <code>&lt;xsl:key&gt;</code> and the node-set returned by the
+    <code>key()</code> and KeyPattern are tied together. You can see how this is
+    done in the <code>translate()</code> method of the <code>KeyCall</code>
+    class.</p>
+
+    <p>The <code>key()</code> function can be called in two ways:</p>
+<blockquote class="source">
+<pre>
+    key('key-name','value')
+    key('key-name','node-set')</pre>
+</blockquote>
+
+    <p>The first parameter is always the name of the key. We use this value to
+    lookup our index from the _keyIndexes hashtable in AbstractTranslet:</p>
+    <blockquote class="source">
+<pre>
+    il.append(classGen.aloadThis());
+    _name.translate(classGen, methodGen);
+    il.append(new INVOKEVIRTUAL(getKeyIndex));</pre>
+</blockquote>
+
+    <p>This compiles into a call to
+    <code>AbstractTranslet.getKeyIndex(String name)</code>, and it leaves a
+    <code>KeyIndex</code> object on the stack. What we then need to do it to
+    initialise the <code>KeyIndex</code> to give us nodes with the requested
+    value. This is done by leaving the <code>KeyIndex</code> object on the stack
+    and pushing the <code>"value"</code> parameter to <code>key()</code>, before
+    calling <code>lookup()</code> on the index:</p>
+<blockquote class="source">
+<pre>
+    il.append(DUP);  // duplicate the KeyIndex obejct before return
+    _value.translate(classGen, methodGen);
+    il.append(new INVOKEVIRTUAL(lookup));</pre>
+</blockquote>
+
+    <p>This compiles into a call to <code>KeyIndex.lookup(String value)</code>.
+    This will initialise the <code>KeyIndex</code> object to return nodes that
+    match the given value, so the <code>KeyIndex</code> object can be left on
+    the stack when we return. This because the <code>KeyIndex</code> object
+    implements the <code>NodeIterator</code> interface.</p>
+
+    <p>This matter is a bit more complex when the second parameter of
+    <code>key()</code> is a node-set. In this case we need to traverse the nodes
+    in the set and do a lookup for each node in the set. What I do is this:</p>
+
+    <ul>
+      <li>
+        construct a <code>KeyIndex</code> object that will hold the
+        return node-set
+      </li>
+      <li>
+        find the named <code>KeyIndex</code> object from the hashtable in
+        AbstractTranslet
+      </li>
+      <li>
+        get an iterator for the node-set and do the folowing loop:</li>
+        <ul>
+          <li>get string value for current node</li>
+          <li>do lookup in KeyIndex object for the named index</li>
+          <li>merge the resulting node-set into the return node-set</li>
+        </ul>
+      <li>
+        leave the return node-set on stack when done
+      </li>
+    </ul>
+
+    
+
+    <a name="improvements">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Possible indexing improvements</h4>
+
+    <p>The indexing implementation can be very, very memeory exhaustive as there
+    is one <code>BitArray</code> allocated for each value for every index. This
+    is particulary bad for the index used for IDs ('##id'), where a single value
+    should only map to one, single node. This means that a whole
+    <code>BitArray</code> is used just to contain one node. The
+    <code>KeyIndex</code> class should be updated to hold the first node for a
+    value in an <code>Integer</code> object, and then replace that with a
+    <code>BitArray</code> or a <code>Vector</code> only is a second node is
+    added to the value. Here is an outline for <code>KeyIndex</code>:</p>
+    <blockquote class="source">
+<pre>
+
+    public void add(Object value, int node) {
+        Object container;
+	if ((container = (BitArray)_index.get(value)) == null) {
+            _index.put(value, new Integer(node));
+	}
+	else {
+            // Check if there is _one_ node for this value
+            if (container instanceof Integer) {
+                int first = ((Integer)container
+                _nodes = new BitArray(_arraySize);
+                _nodes.setMask(node &amp; 0xff000000);
+                _nodes.setBit(first &amp; 0x00ffffff);
+                _nodes.setBit(node &amp; 0x00ffffff);
+                _index.put(value, _nodes);
+            }
+            // Otherwise add node to axisting bit array
+            else {
+                _nodex = (BitArray)container;
+                _nodes.setBit(node &amp; 0x00ffffff);
+            }
+        }
+    }</pre>
+</blockquote>
+
+    <p>Other methods inside the <code>KeyIndex</code> should be updated to
+    reflect this.</p>
+
+    
+
+    <a name="patterns">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Id and Key patterns</h4>
+
+    <p>As already mentioned, the challenge with the <code>id()</code> and
+    <code>key()</code> patterns is that they have no specific node type. 
+    Patterns are normally grouped based on their pattern's "kernel" node type.
+    This is done in the <code>org.apache.xalan.xsltc.compiler.Mode</code> class.
+    The <code>Mode</code> class has a method, <code>flatternAlaternative</code>,
+    that does this grouping, and all templates with a common kernel node type
+    will be inserted into a "test sequence". A test sequence is a set templates
+    with the same kernel node type. The <code>TestSeq</code> class generates
+    code that will figure out which pattern, amongst several patterns with the
+    same kernel node type, that matches a certain node. This is used by the
+    <code>Mode</code> class when generating the <code>applyTemplates</code>
+    method in the translet. A test sequence is also generated for all templates
+    whose pattern does not have a kernel node type. This is the case for all
+    Id and KeyPatterns. This test sequence, if necessary, is put before the
+    big <code>switch()</code> in the <code>applyTemplates()</code> mehtod. This
+    test has to be done for every single node that is traversed, causing the
+    transformation to slow down siginificantly. This is why we do <b>not</b>
+    recommend using this type of patterns with XSLTC.</p>
+
+    
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsl_lang_design.html b/xalan-j/xsltc/xsl_lang_design.html
new file mode 100644
index 0000000..cf6b7ce
--- /dev/null
+++ b/xalan-j/xsltc/xsl_lang_design.html
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: lang() function</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">lang() function</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>lang()<br />
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>lang() function</h2>
+
+  <ul>
+    <li>
+<a href="#functionality">Functionality</a>
+</li>
+    <li>
+<a href="#implementation">Implementation</a>
+</li>    
+  </ul>
+  <a name="functionality">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Functionality</h3>
+
+  <p>The <code>xml:lang</code> can be used to determine the language for a node or
+  a node-set. The attribute can be used to store language-specific data in an
+  XML document:</p>
+
+  <blockquote class="source">
+<pre>
+    &lt;phrases&gt;
+      &lt;greeting xml:lang="en"&gt;Hello!&lt;/greeting&gt;
+      &lt;greeting xml:lang="no"&gt;Hei!&lt;/greeting&gt;
+      &lt;greeting xml:lang="fr"&gt;Salut!&lt;/greeting&gt;
+      &lt;greeting xml:lang="es"&gt;Hola!&lt;/greeting&gt;
+      &lt;greeting xml:lang="de"&gt;Sweinhund!&lt;/greeting&gt;
+    &lt;/phrases&gt;
+  </pre>
+</blockquote>
+
+  <p>The XSL stylesheet can use the <code>lang()</code> function to select the
+  element with the desired language:</p>
+
+  <blockquote class="source">
+<pre>
+    &lt;xsl:template match="greeting"&gt;
+      &lt;xsl:if test="lang("de")&gt;
+        &lt;xsl:value-of select="."/&gt;
+        &lt;xsl:text&gt; Grossglucklicher wunche!&lt;/xsl:text&gt;
+      &lt;/xsl:if&gt;
+    &lt;/xsl:template&gt;
+  </pre>
+</blockquote>
+ <a name="implementation">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Implementation</h3>
+
+  <p>The DOM interface has been given a method that returns the language for
+  a given node. The language is returned as a string (on whatever format is
+  used in the XML document - should be iso), and may be null if no language is
+  defined.</p>
+
+  <blockquote class="source">
+<pre>
+    public String DOM.getLanguage(int node);
+  </pre>
+</blockquote>
+
+  <p>The BasisLibrary class has a static method that will compare the language
+  of the context node with some other language and return the result as a
+  boolean.</p>
+
+  <blockquote class="source">
+<pre>
+    public static boolean BasisLibrary.testLanguage(String language, DOM dom, int node);
+  </pre>
+</blockquote>
+
+  <p>The compiled code for the <code>lang()</code> method calls this method in the
+  BasisLibrary and leaves the result on the stack for the calling element.</p>
+  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsl_sort_design.html b/xalan-j/xsltc/xsl_sort_design.html
new file mode 100644
index 0000000..5e5d0c0
--- /dev/null
+++ b/xalan-j/xsltc/xsl_sort_design.html
@@ -0,0 +1,349 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: &lt;xsl:sort&gt;</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">&lt;xsl:sort&gt;</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>xsl:sort<br />
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>&lt;xsl:sort&gt;</h2>
+
+  <ul>
+    <li>
+<a href="#functionality">Functionality</a>
+</li>
+    <li>
+<a href="#sort-class">The Sort class</a>
+</li>
+    <li>
+<a href="#iterator">The SortingIterator class</a>
+</li>
+    <li>
+<a href="#sortrecord">The NodeSortRecord class</a>
+</li>    
+    <li>
+<a href="#recordfactory">The NodeSortRecordFactory class</a>
+</li>
+  </ul>
+  
+  <a name="functionality">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Functionality</h3>
+
+  <p>The <code>&lt;xsl:sort&gt;</code> element is used to define a sort key
+  which specifies the order in which nodes selected by either
+  <code>&lt;xsl:apply-templates&gt;</code> or <code>&lt;xsl:for-each&gt;</code>
+  are processed. The nodes can be sorted either in numerical or alphabetic
+  order, and the alphabetic order may vary depeinding on the language in use.
+  The nodes can be sorted either in ascending or descending order.</p>
+
+  <a name="sort-class">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>The Sort class</h3>
+
+  <p>Static methods of the Sort class is responsible for generating the
+  necessary code for invoking SortingIterators under
+  <code>&lt;xsl:apply-templates&gt;</code> and <code>&lt;xsl:for-each&gt;</code>
+  elements. Both these elements can have several <code>&lt;xsl:sort&gt;</code>
+  child nodes defining primary, secondary, teriary, etc. keys. The code for
+  <code>&lt;xsl:apply-templates&gt;</code> and <code>&lt;xsl:for-each&gt;</code>
+  create  vectors containg a Sort object for each sort key. The object methods
+  of the Sort object encapsulate a container for key-specific data (such as the
+  sort key itself, sort order, sort type, and such) while the static methods
+  take a vector of Sort objects and generate the actual code.</p>
+
+  <p>The <code>translate()</code> method of the Sort object is never called. The
+  vectors containing the Sort objects for a <code>&lt;xsl:apply-templates&gt;</code>
+  or <code>&lt;xsl:for-each&gt;</code> element are instead passed to the static
+  <code>translateSortIterator()</code> method. This method compiles code that
+  instanciates a SortingIterator object that will pass on a node-set in a
+  specific order to the code handling the <code>&lt;xsl:apply-templates&gt;</code>
+  or <code>&lt;xsl:for-each&gt;</code> element.</p>
+
+  <a name="iterator">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>The SortingIterator class</h3>
+
+  <p>The SortingIterator class is responsible for sorting nodes encapsulated in
+  sort obects. These sort objects must be of a class inheriting from
+  NodeSortRecord, a the SortingIterator object needs a factory object providing
+  it with the correct type of objects:</p>
+
+  <p>
+<img src="sort_objects.gif" alt="sort_objects.gif" />
+</p>
+  <p>
+<b>
+<i>Figure 1: SortingIterator</i>
+</b>
+</p>
+
+  <p>The SortingIterator class is fairly dumb and leaves much of the work to the
+  NodeSortRecord class. The iterator gets the NodeSortRecords from the factory
+  object and sorts them using quicksort and calling <code>compareTo()</code> on
+  pairs of NodeSortRecord objects.</p>
+
+  <a name="sortrecord">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>The NodeSortRecord class</h3>
+
+  <p>The static methods in the Sort class generates a class inheriting from
+  NodeSortRecord, with the following overloaded methods:</p>
+
+  <ul>
+    <li>
+<b>Class Constructor</b>
+</li>
+      <ul>
+<li>The class constructor is overloaded to create sort-key global
+      tables, such as an array containing the sort order for all the sort keys
+      and another array containg all the sort types. Different sort order/types
+      can be specified for the different levels of sort keys, but we assume that
+      the same language is used for all levels.</li>
+</ul>
+      
+    <li>
+<code>extractValueFromDOM(int level)</code>
+</li>
+      <ul>
+<li>This method is called by the SortingIterator object to extract the
+      value for a specific sort key for a node. The SortingIterator will only
+      use this method once and will cache the returned value for later use. The
+      method will only be called if absultely necessary.</li>
+</ul>
+
+    <li>
+<code>compareType(int level)</code>
+</li>
+      <ul>
+<li>This method returns the sort type for one sort key level. Returns
+      either <code>COMPARE_STRING</code> or <code>COMPARE_NUMERIC</code>.</li>
+</ul>
+    
+    <li>
+<code>sortOrder(int level)</code>
+</li>
+      <ul>
+<li>This method returns the sort order for one sort key level. Returns
+      either <code>COMPARE_ASCENDING</code> or <code>COMPARE_DESCENDING</code>
+</li>
+</ul>
+    
+    <li>
+<code>getCollator(int level)</code>
+</li>
+      <ul>
+<li>This method returns a Collator object for language-specific
+      string comparisons. The same Collator is used for all levels of the key.
+      </li>
+</ul> 
+  </ul>
+
+  <p>The <code>compareTo()</code> method of the NodeSortRecord base class deserves
+  a bit of attention. It takes its own node (from the this pointer) and another
+  node and compares, if necessary, the values for all sort keys:</p>
+
+  <blockquote class="source">
+<pre>
+    /**
+     * Compare this sort element to another. The first level is checked first,
+     * and we proceed to the next level only if the first level keys are
+     * identical (and so the key values may not even be extracted from the DOM)
+     */
+    public int compareTo(NodeSortRecord other) {
+	int cmp;
+    
+	for (int level=0; level&lt;_levels; level++) {
+	    
+	    // Compare the two nodes either as numeric or text values
+	    if (compareType(level) == COMPARE_NUMERIC) {
+		final Double our = numericValue(level);
+		final Double their = other.numericValue(level);
+		if (our == null) return(-1);
+		if (their == null) return(1);
+		cmp = our.compareTo(their);
+	    }
+	    else {
+		String our = stringValue(level);
+		String their = other.stringValue(level);
+		if (our == null) return(-1);
+		if (their == null) return(1);
+		cmp = getCollator().compare(our,their);
+	    }
+	    
+	    // Return inverse compare value if inverse sort order
+	    if (cmp != 0) {
+		if (sortOrder(level) == COMPARE_DESCENDING)
+		    return(0 - cmp);
+		else
+		    return(cmp);
+	    }
+	    
+	}
+	return(0);
+    }
+  </pre>
+</blockquote>
+
+  <p>The two methods <code>stringValue(int level)</code> and 
+  <code>numericValue(int level)</code> return values for one level of the sort key
+  of a node. These methods cache these values after they are first read so that
+  the <code>DOM.getNodeValue()</code> is only called once. Also, the algorithm
+  used for these two methods assure that <code>DOM.getNodeValue()</code> is only
+  called when needed. The value for a node's secondary sort key is never
+  retrieved if the node can be uniquely identified by its primary key.</p>
+
+  <a name="recordfactory">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>The NodeSortRecordFactory class</h3>
+
+  <p>After the static methods of the Sort class has generated the new class for
+  sort objects it generates code that instanciates a new NodeSortRecordFactory
+  object. This object is passed as a parameter to SortingIterators constructor
+  and is used by the iterator to generate the necessary sort objects.</p>
+
+  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsl_unparsed_design.html b/xalan-j/xsltc/xsl_unparsed_design.html
new file mode 100644
index 0000000..0714a39
--- /dev/null
+++ b/xalan-j/xsltc/xsl_unparsed_design.html
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: unparsed-entity-uri()</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">unparsed-entity-uri()</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>Unparsed entities<br />
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>unparsed-entity-uri()</h2>
+
+  <ul>
+    <li>
+<a href="#functionality">Functionality</a>
+</li>
+    <li>
+<a href="#implementation">Implementation</a>
+</li>
+  </ul>
+  
+  <a name="functionality">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Functionality</h3>
+
+
+  <p>The <code>unparsed-entity-uri()</code> function gives access to declarations
+  of unparsed entities in the DTD of the source document. If the DTD contains
+  the declaration:</p>
+
+  <blockquote class="source">
+<pre>
+    &lt;!ENTITY mom-picture SYSTEM "http://www.home.com/mom.jpg" NDATA JPEG&gt;
+  </pre>
+</blockquote>
+
+  <p>the expression <code>unparsed-entity-uri('mom-picture')</code> returns an
+  URI for the file <code>mom.jpg</code>.</p>
+
+  <a name="implementation">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Implementation</h3>
+
+  <p>Unparsed entities must be gathered from the XML input document at the time
+  when the DOM is built. To achieve this our parser must parse the document DTD
+  (if any) and store all data of type NDATA (not XML data) in a
+  hashtable in the AbstractTranslet object. All the compiled code for this
+  function needs to do is call a method in the translet for retrieving the
+  value for the requested element:</p>
+
+  <blockquote class="source">
+<pre>
+    public String AbstractTranslet.getUnparsedEntity(String entityName);
+  </pre>
+</blockquote>
+
+  <p>The translet will use the supplied <code>entityName</code> to look up the
+  value in the hashtable and then leave the string value on the stack for the
+  element that called <code>lang()</code>.</p>
+  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsl_variable_design.html b/xalan-j/xsltc/xsl_variable_design.html
new file mode 100644
index 0000000..7f9ccb3
--- /dev/null
+++ b/xalan-j/xsltc/xsl_variable_design.html
@@ -0,0 +1,364 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: &lt;xsl:variable&gt; / &lt;xsl:param&gt;</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">&lt;xsl:variable&gt; / &lt;xsl:param&gt;</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>Variable|Param design<br />
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>&lt;xsl:variable&gt; / &lt;xsl:param&gt;</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Contents</h3>
+  <ul>
+    <li>
+<a href="#functionality">Functionality</a>
+</li>
+    <li>
+<a href="#implementation">Implementation</a>
+</li>    
+  </ul>
+  
+
+  <a name="functionality">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Functionality</h3>
+
+  <p>Variables in XSLT are not really variables, as their values cannot be
+  changed. They resemble constants from conventional programming languages. The
+  only way in which a variable can be changed is by declaring it inside a
+  for-each loop, in which case its value will be updated for every iteration.
+  Top-level variables (variables that are direct child nodes of the
+  <code>&lt;xsl:stylesheet&gt;</code> element) can never be changed.</p>
+
+  <blockquote class="source">
+<pre>
+    &lt;xsl:for-each select="/foo/bar"&gt;
+      &lt;xsl:variable name="some-bar" select="."/&gt;
+      &lt;xsl:value-of select="$some-bar"/&gt;
+    &lt;/xsl:for-each&gt;</pre>
+</blockquote>
+
+  <p>Parameters are assigned a value either from the process that invoked
+  the stylesheet (top-level parameter), or from a
+  <code>&lt;xsl:with-param&gt;</code> or from a default value (in which case it
+  behaves as if it was a variable).</p>
+
+  <blockquote class="source">
+<pre>
+    &lt;xsl:template match="/"&gt;
+      &lt;xsl:call-template name="blob"&gt;
+        &lt;xsl:with-param name="par" select="'some-value'"/&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:template&gt;
+
+    &lt;xsl:template name="blob"&gt;
+      &lt;xsl:param name="par" select="'default-value'"/&gt;
+      &lt;xsl:value-of select="$param"/&gt;
+    &lt;/xsl:template&gt;</pre>
+</blockquote>
+
+  
+
+  <a name="implementation">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Implementation</h3>
+
+    <p>Variables and parameters share a common base class
+    <code>VariableBase</code> that contains a lot of common methods. This class
+    handles both global and local variables/parameters.</p>
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Top-level parameters and variables</h4>
+
+    <p>All top-level (ie. global) parameters and variables are stored inside
+    fields in the translet class. Variables are stored as objects or basic
+    data types (such as boolean, char, int, etc.) while parameters have to be
+    "boxed" inside an object. This is because parameters are also stored as
+    objects inside the translet. The <code>addParameter()</code> method of the
+    <code>AbstractTranslet</code> class stores the parameter in a Hashtable
+    (the Hashtable maps the parameter name to the parameter value). The
+    "boxing" of the parameter's value is done by the class that handles the
+    parameters type. This class is a subclass of
+    <code>org.apache.xalan.xsltc.compiler.util.Type</code>.</p>
+
+    <p>Note that all top-level parameters and variables from all imported and
+    included stylesheets will be placed as direct children of the top-level
+    stylesheet in the AST. This done to make global variables truly global and
+    not just global in the stylesheet where it was declared.</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Local parameters and variables</h4>
+
+    <p>Local variables that are accessible from a given syntax tree node will
+    first be put on the JVM's stack and stored in a local variable slot. This
+    makes the variable or parameter accessible from all code within that
+    method. But, in some special cases, the code that is compiled to handle an
+    element/expression within the variable scope is not put inside the same
+    method as the actual variable. This is the case for some predicates.
+    All syntax-tree nodes implement the <code>isClosureBoundary()</code> method
+    to indicate if its child an ancestor nodes will end up in a different method
+    then itself. This method is used by the <code>Variable</code> and
+    <code>Param</code> classes to determine if the variable or parameter will
+    "escape" the variable frame.</p>
+
+    <blockquote class="source">
+<pre>
+    &lt;xsl:for-each select="/foo/bar/baz"&gt;
+        &lt;xsl:variable name="pos" select="3"/&gt;
+        &lt;xsl:apply-templates select="/foo/bar[$pos]"/&gt;
+    &lt;/xsl:for-each&gt;</pre>
+</blockquote>
+
+    <p>The predicate in this stylesheet fragment is compiled into a separate
+    auxiliary class that implements the <code>Filter</code> interface. It will
+    therefore not have access to the variable "pos" in the current stack frame.
+    A common technique for cases like this is to use a <b>"closure"</b>. A
+    closure is a record that contains references to all variables that are in
+    scope for a certain part of the compiled scope. This is done in a very
+    simple manner in XSLTC. All variables or parameters that can "escape" the
+    stack are passed to the translet via its <code>addVariable()</code> method.
+    They can then later be retrieved by the <code>getVariable()</code> method.
+    </p>
+
+    <p>
+<b>Important note 1:</b> A predicate does not always result in a
+    auxiliary class. In some cases we optimize the code by using tailored
+    iterators and goodies like that instead. We may want to update the
+    predicate code to check if an auxiliary class will be generated before
+    returning true or false from the <code>isClosureBoundary()</code>
+    method.</p>
+
+    <p>
+<b>Important note 2:</b> There could be other closure boundaries
+    that we have not yet discovered or considered. This could be, for instance,
+    sort records and other auxiliary classes:</p>
+
+    <blockquote class="source">
+<pre>
+    &lt;xsl:variable name="sort-order" select="'decending'"/&gt;
+    &lt;xsl:for-each select="/foo/bar/baz"&gt;
+        &lt;xsl:sort select="@name" order="$sort-order"/&gt;
+        &lt;xsl:value-of select="."/&gt;
+    &lt;/xsl:for-each&gt;</pre>
+</blockquote>
+
+    <p>I would not be surprised if this fails. A fix could be to implement the
+    <code>isClosureBoundary()</code> in the <code>Sort</code> class and have the
+    method return 'true' in all cases.</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Parameter and variable references</h4>
+
+    <p>A parameter or variable reference does the oposite of a parameter or
+    variable. The value is read from either a global field, a local variable
+    slot or from a call to <code>getVariable()</code> /
+    <code>getParameter()</code>. The chosen method depends is we're dealing with
+    a parameter or a variable, a global or a local, an escaping variable or not.
+    </p>
+
+    <p>The XPath parser identifies all variable references and instanciates
+    either a <code>VariableRef</code> or a <code>ParameterRef</code>. The XPath
+    parser calls the parser's <code>lookupVariable</code> method in an initial
+    attempt to find the variable/parameter instance. If that fails, it goes on
+    to call the symbol table's <code>lookupName()</code> method. If that also
+    fails this means that either:</p>
+
+    <ul>
+      <li>a variable or parameter with the given name does not exist</li>
+      <li>the variable will be declared at a later stage
+      (but within the same scope)</li>
+    </ul>
+
+    <p>The XPath parser creates an instance of the <code>UnresolvedRef</code>
+    class. This class attempts to locate the variable after the whole AST has
+    been built, when the <code>typeCheck()</code> method is called. If this
+    fails an error is reported and the compilation stops. Otherwise the class
+    creates a <code>VariableRef</code> or a <code>ParameterRef</code> instance
+    and lets that handle the reference.</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Forward references</h4>
+
+    <p>XSLTC allows for forward references to global variables and parameters.
+    You can even reference variables in not-yet included/imported stylesheets.
+    In most cases, this is handled by changing the order of top-level elements.
+    (Variables are placed first so that they are handled before any includes
+    or imports).  But when a variable contains references to other variables,
+    then this requires some extra code in the <code>Stylesheet</code> and
+    <code>VariableBase</code> classes. The <code>VariableBase</code> has a
+    method that returns a vector containing all variables that are referenced
+    in the variable definition.</p>
+
+    <blockquote class="source">
+<pre>
+    &lt;xsl:variable name="C" select="$A &lt; $B"/&gt;
+    &lt;xsl:variable name="A" select="1"/&gt;
+    &lt;xsl:variable name="B" select="2"/&gt;</pre>
+</blockquote>
+
+    <p>In this case, the <code>getDependencies()</code> method for variable
+    C will return the variables A and B. The stylesheet has a method called
+    <code>resolveReferences</code> that will order the variables accordingly
+    so that the variable values are computed in the desired order. This method
+    will issue an error message and terminate the compilation if there are
+    circular variable/parameter dependencies.</p>
+
+    
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsl_whitespace_design.html b/xalan-j/xsltc/xsl_whitespace_design.html
new file mode 100644
index 0000000..86316c5
--- /dev/null
+++ b/xalan-j/xsltc/xsl_whitespace_design.html
@@ -0,0 +1,471 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: &lt;xsl:strip/preserve-space&gt;</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">&lt;xsl:strip/preserve-space&gt;</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>Whitespace<br />
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>&lt;xsl:strip/preserve-space&gt;</h2>
+
+  <ul>
+    <li>
+<a href="#functionality">Functionality</a>
+</li>
+    <li>
+<a href="#identify">Identifying strippable whitespace nodes</a>
+</li>
+    <li>
+<a href="#which">Determining which nodes to strip</a>
+</li>
+    <li>
+<a href="#strip">Stripping nodes</a>
+</li>
+    <li>
+<a href="#filter">Filtering whitespace nodes</a>
+</li>
+  </ul>
+  
+  <a name="functionality">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Functionality</h3>
+
+  <p>The <code>&lt;xsl:strip-space&gt;</code> and <code>&lt;xsl:preserve-space&gt;</code>
+  elements are used to control the way whitespace nodes in the source XML
+  document are handled. These elements have no impact on whitespace in the XSLT
+  stylesheet. Both elements can occur only as top-level elements, possible more
+  than once, and the elements are always empty</p>
+ 
+  <p>Both elements take one attribute "elements" which contains a
+  whitespace separated list of named nodes which should be or preserved
+  stripped from the source document. These names can be on one of these three
+  formats (NameTest format):</p>
+
+  <ul>
+    <li>
+      All whitespace nodes:
+      <code>elements="*"</code>
+    </li>
+    <li>
+      All whitespace nodes with a namespace:
+      <code>elements="&lt;namespace&gt;:*"</code>
+    </li>
+    <li>
+      Specific whitespace nodes: <code>elements="&lt;qname&gt;"</code>
+    </li>
+  </ul>
+
+  <a name="identify">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Identifying strippable whitespace nodes</h3>
+
+  <p>The DOM detects all text nodes and assigns them the type <code>TEXT</code>.
+  All text nodes are scanned to detect whitespace-only nodes. A text-node is
+  considered a whitespace node only if it consist entirely of characters from
+  the set { 0x09, 0x0a, 0x0d, 0x20 }. The DOM implementation class has a static
+  method used to detect such nodes:</p>
+
+<blockquote class="source">
+<pre>
+    private static final boolean isWhitespaceChar(char c) {
+        return c == 0x20 || c == 0x0A || c == 0x0D || c == 0x09;
+    }
+</pre>
+</blockquote>
+
+  <p>The characters are checked in probable order.</p>
+
+  <p> The DOM has a bit-array that is used to  tag text-nodes as strippable
+  whitespace nodes:</p>
+
+  <blockquote class="source">
+<pre>private int[] _whitespace;</pre>
+</blockquote>
+
+  <p>There are two methods in the DOM implementation class for accessing this
+  bit-array: <code>markWhitespace(node)</code> and <code>isWhitespace(node)</code>.
+  The array is resized together with all other arrays in the DOM by the
+  <code>DOM.resizeArrays()</code> method. The bits in the array are set in the
+  <code>DOM.maybeCreateTextNode()</code> method. This method must know whether
+  the current node is a located under an element with an
+  <code>xml:space="&lt;value&gt;"</code> attribute in the DOM, in which
+  case it is not a strippable whitespace node.</p>
+
+  <p>An auxillary class, WhitespaceHandler, is used for this purpose. The class
+  works in a way as a stack, where you "push" a new strip/preserve setting
+  together with the node in which this setting was determined. This means that
+  for every time the DOM builder encounters an <code>xml:space</code> attribute
+  it will invoke a method on an instance of the WhitespaceHandler class to
+  signal that a new preserve/strip setting has been encountered. This is done
+  in the <code>makeAttributeNode()</code> method. The whitespace handler stores the
+  new setting and pushes the current element node on its stack. When the
+  DOM builder closes up an element (in <code>endElement()</code>), it invokes
+  another method of the whitespace handler to check if the strip/preserve
+  setting is still valid. If the setting is now invalid (we're closing the
+  element whose node id is on the top of the stack) the handler inverts the
+  setting and pops the element node id off the stack. The previous
+  strip/preserve setting is then valid, and the id of node where this setting
+  was defined is on the top of the stack.</p>
+
+  <a name="which">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Determining which nodes to strip</h3>
+
+  <p>A text node is never stripped unless it contains only whitespace
+  characters (Unicode characters 0x09, 0x0A, 0x0D and 0x20). Stripping a text
+  node means that the node disappears from the DOM; so that it is never
+  included in the output and that it is ignored by all functions such as
+  <code>count()</code>. A text node is preserved if any of the following apply:</p>
+
+  <ul>
+    <li>
+      the element name of the parent of the text node is in the set of
+      elements listed in <code>&lt;xsl:preserve-space&gt;</code>
+    </li>
+    <li>
+      the text node contains at least one non-whitespace character
+    </li>
+    <li>
+      an ancenstor of the whitespace text node has an attribute of
+      <code>xsl:space="preserve"</code>, and no close ancestor has and
+      attribute of <code>xsl:space="default"</code>.
+    </li>
+  </ul>
+
+  <p>Otherwise, the text node is stripped. Initially the set of 
+  whitespace-preserving element names contains all element names, so the
+  default behaviour is to preserve all whitespace text nodes.</p>
+
+  <p>This seems simple enough, but resolving conflicts between matching
+  <code>&lt;xsl:strip-space&gt;</code> and <code>&lt;xsl:preserve-space&gt;</code>
+  elements requires a lot of thought. Our first consideration is import
+  precedence; the match with the highest import precedence is always chosen.
+  Import precedence is determined by the order in which the compared elements
+  are visited. (In this case those elements are the top-level
+  <code>&lt;xsl:strip-space&gt;</code> and <code>&lt;xsl:preserve-space&gt;</code>
+  elements.) This example is taken from the XSLT recommendation:</p>
+
+  <ul>
+    <li>stylesheet A imports stylesheets B and C in that order;</li>
+    <li>stylesheet B imports stylesheet D;</li>
+    <li>stylesheet C imports stylesheet E.</li>
+  </ul>
+
+  <p>Then the order of import precedence (lowest first) is D, B, E, C, A.</p>
+
+  <p>Our next consideration is the priority of NameTests (XPath spec):</p>
+  <ul>
+    <li>
+      <code>elements="&lt;qname&gt;"</code> has priority 0
+    </li>
+    <li>
+      <code>elements="&lt;namespace&gt;:*"</code> has priority -0.25
+    </li>
+    <li>
+      <code>elements="*"</code> has priority -0.5
+    </li>
+  </ul>
+
+  <p>It is considered an error if the desicion is still ambiguous after this,
+  and it is up to the implementors to decide what the apropriate action is.</p>
+
+  <p>With all this complexity, the normal usage for these elements is quite
+  smiple; either preserve all whitespace nodes but one type:</p>
+
+  <blockquote class="source">
+<pre>&lt;xsl:strip-space elements="foo"/&gt;</pre>
+</blockquote>
+
+  <p>or strip all whitespace nodes but one type:</p>
+
+  <blockquote class="source">
+<pre>
+    &lt;xsl:strip-space elements="*"/&gt;
+    &lt;xsl:preserve-space elements="foo"/&gt;</pre>
+</blockquote>
+
+  <a name="strip">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Stripping nodes</h3>
+
+  <p>The ultimate goal of our design would be to totally screen all stripped
+  nodes from the translet; to either physically remove them from the DOM or to
+  make it appear as if they are not there. The first approach will cause
+  problems in cases where multiple translets access the same DOM. In the future
+  we wish to let translets run within servlets / JSPs with a common DOM cache.
+  This DOM cache will keep copies of DOMs in memory to prevent the same XML
+  file from being downloaded and parsed several times. This is a scenarios we
+  might see:</p>
+
+    <p>
+<img src="DOMInterface.gif" alt="DOMInterface.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 1: Multiple translets accessing a common pool of DOMs</i>
+</b>
+</p>
+
+  <p>The three translets running on this host access a common pool of 4 DOMs.
+  The DOMs are accessed through a common DOM interface. Translets accessing
+  a single DOM will have a DOMAdapter and a single DOMImpl object behind this
+  interface, while translets accessing several DOMs will be given a MultiDOM
+  and a set of DOMImpl objects.</p>
+
+  <p>The translet to the left may want to strip some nodes from the shared DOM
+  in the cache, while the other translets may want to preserve all whitespace
+  nodes. Our initial thought then is to keep the DOM as it is and somehow
+  screen the left-hand translet of all the whitespace nodes it does not want to
+  process. There are a few ways in which we can accomplish this:</p>
+
+  <ul>
+    <li>
+      The translet can, prior to starting to traverse the DOM, send a reference
+      to the tables containing information on which nodes we want stripped to
+      the DOM interface. The DOM interface is then responsible for hiding all
+      stripped whitespace nodes from the iterators and the translet. A problem
+      with this approach is that we want to omit the DOM interface layer if
+      the translet is only accessing a single DOM. The DOM interface layer will
+      only be instanciated by the translet if the stylesheet contained a call
+      to the <code>document()</code> function.<br />
+<br />
+    </li>
+    <li>
+      The translet can provide its iterators with information on which nodes it
+      does not want to see. The translet is still shielded from unwanted
+      whitespace nodes, but it has the hassle of passing extra information over
+      to most iterators it ever instanciates. Note that all iterators do not
+      need be aware of whitepspace nodes in this case. If you have a look at
+      the figure again you will see that only the first level iterator (that is
+      the one closest to the DOM or DOM interface) will have to strip off
+      whitespace nodes. But, there may be several iterators that operate
+      directly on the DOM ( invoked by code handling XSL functions such as
+      <code>count()</code>) and every single one of those will need to be told
+      which whitespace nodes the translet does not want to see.<br />
+<br />
+    </li>
+    <li>
+      The third approach will take advantage of the fact that not all
+      translets will want to strip whitespace nodes. The most effective way of
+      removing unwanted whitespace nodes is to do it once and for all, before
+      the actual traversal of the DOM starts. This can be done by making a
+      clone of the DOM with exlusive-access rights for this translet only. We
+      still gain performance from the cache because we do not have to pay the
+      cost of the delay caused by downloading and parsing the XML source file.
+      The cost we have to pay is the time needed for the actual cloning and the
+      extra memory we use.<br />
+<br />
+      Normally one would imagine the translet (or the wrapper class that
+      invokes the translet) calls the DOM cache with just an URL and receives
+      a reference to an instanciated DOM. The cache will either have built
+      this DOM on-demand or just passed back a reference to an existing tree.
+      In this case the DOM would need an extra call that a translet would use
+      to clone a DOM, passing the existing DOM reference to the cache and
+      recieving a new reference to the cloned DOM. The translet can then do
+      whatever it wants with this DOM (the cache need not even keep a reference
+      to this tree).
+    </li>
+  </ul>
+  
+  <p>We are lucky enough to be able to combine the first two approaches. All
+  iterators that directly access the DOM (axis iterators) are instanciated by
+  calls to the DOM interface layer (the DOM class). The actual iterators are
+  created in the DOM implementation layer (the DOMImpl class). So, we can pass
+  references to the preserve/strip whitespace tables to the DOM, and the DOM
+  will make sure that all axis iterators return node sets with respect to these
+  tables.</p>
+  <a name="filter">‌</a> 
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Filtering whitespace nodes</h3>
+
+  <p>For each axis iterator and for <code>DOM.makeStringValue()</code> and
+  <code>DOM.stringValueAux()</code> we must apply a filter for eliminating all
+  unwanted whitespace nodes. To achive this we must build a very efficient
+  predicate for determining if the current node should be stripped or not. This
+  predicate is built by <code>Whitespace.compilePredicate()</code>. This method is
+  static and builds a predicate for a vector of WhitespaceRule objects. (The
+  WhitespaceRule class is defined within the Whitespace class.) Each
+  WhitespaceRule object contains information for a single element listed
+  in an <code>&lt;xsl:strip/preserve-space&gt;</code> element, and is broken down
+  into the following information:</p>
+
+  <ul>
+    <li>the namespace (can be the default namespace)</li>
+    <li>the element name or "<code>*</code>"</li>
+    <li>the type of rule; NS:EL, NS:<code>*</code> or <code>*</code>
+</li>
+    <li>the priority of the rule (based on import precedence and type)</li>
+    <li>the action; either strip or preserver</li>
+  </ul>
+
+  <p>The Vector of WhitespaceRules is arranged in order of priority and
+  redundant rules are removed. A predicate method is then compiled into the
+  translet as:</p>
+
+<blockquote class="source">
+<pre>
+    public boolean stripSpace(int node);
+</pre>
+</blockquote>
+
+  <p>Unfortunately this method cannot be declared static.</p>
+
+  <p>When the Stylesheet objectcompiles the <code>topLevel()</code> method of the
+  translet it checks for the existance of the <code>stripSpace()</code> method. If
+  this method exists the <code>topLevel()</code> will be compiled to pass the
+  translet to the DOM as a StripWhitespaceFilter (the translet implements this
+  interface when the <code>stripSpace()</code> method is compiled).</p>
+
+  <p>All axis iterators and the <code>DOM.makeStringValue()</code> and
+  <code>DOM.stringValueAux()</code> methods check for the existance of this filter
+  (it is kept in a global variable in the DOM implementation class) and takes
+  the appropriate actions. The methods in the DOM for returning axis iterators
+  will place a StrippingIterator on top of the axis iterator if the filter is
+  present, and the two methods just mentioned will return empty strings for
+  whitespace nodes that should be stripped.</p>
+ 
+  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsltc_compiler.html b/xalan-j/xsltc/xsltc_compiler.html
new file mode 100644
index 0000000..e5681f4
--- /dev/null
+++ b/xalan-j/xsltc/xsltc_compiler.html
@@ -0,0 +1,560 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC Compiler Design</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC Compiler Design</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>Compiler design<br />
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC Compiler Design</h2>
+
+  <ul>  
+    <li>
+<a href="#overview">Compiler Overview</a>
+</li>
+    <li>
+<a href="#ast">Building the Abstract Syntax Tree</a>
+</li>
+    <li>
+<a href="#typecheck">Type-check and Cast Expressions</a>
+</li>
+    <li>
+<a href="#compile">JVM byte-code generation</a>
+</li>
+  </ul>
+
+  
+
+  <a name="overview">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Compiler overview</h3>
+
+    <p>The main component of the XSLTC compiler is the class</p>   
+    <ul>
+      <li>
+<code>org.apache.xalan.xsltc.compiler.XSLTC</code>
+</li>
+    </ul>
+
+    <p>This class uses three parsers to consume the input stylesheet(s):</p>
+
+    <ul>
+      <li>
+<code>javax.xml.parsers.SAXParser</code>
+</li>
+    </ul>
+
+    <p>is used to parse the stylesheet document and pass its contents to
+    the compiler as basic SAX2 events.</p>
+
+    <ul>
+      <li>
+<code>com.sun.xslt.compiler.XPathParser</code>
+</li>
+    </ul>
+
+    <p> is a parser used to parse XPath expressions and patterns. This parser
+    is generated using JavaCUP and JavaLEX from Princeton University.</p>
+
+    <ul>
+      <li>
+<code>com.sun.xslt.compiler.Parser</code>
+</li>
+    </ul>
+
+    <p>is a wrapper for the other two parsers. This parser is responsible for
+    using the other two parsers to build the compiler's abstract syntax tree
+    (which is described in more detail in the next section of this document).
+    </p>
+
+  
+
+  
+  <a name="ast">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Building an Abstract Syntax Tree</h3>
+
+    <p>An abstract syntax tree (AST) is a data-structure commonly used by
+    compilers to separate the parse-phase from the later phases of the
+    compilation. The AST has one node for each parsed token from the stylesheet
+    and can easily be parsed at the stages of type-checking and bytecode
+    generation.</p>
+
+    <ul>
+      <li>
+        <a href="#mapping">Mapping stylesheet elements to AST nodes</a>
+      </li>
+      <li>
+        <a href="#domxsl">Building the AST from AST nodes</a>
+      </li>
+      <li>
+        <a href="#mapping">Mapping XPath expressions and patterns to additional AST nodes</a>
+      </li>
+    </ul>
+
+    <p>The SAX parser passes the contents of the stylesheet to XSLTC's main
+    parser. The SAX events represent a decomposition of the XML document that
+    contains the stylesheet. The main parser needs to create one AST node from
+    each node that it receives from the SAX parser. It also needs to use the
+    XPath parser to decompose attributes that contain XPath expressions and
+    patterns. Remember that XSLT is in effect two languages: XML and XPath,
+    and one parser is needed for each of these languages. The SAX parser breaks
+    down the stylesheet document, the XPath parser breaks down XPath expressions
+    and patterns, and the main parser maps the decomposed elements into nodes
+    in the abstract syntax tree.</p>
+
+    <a name="mapping">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Mapping stylesheets elements to AST nodes</h4>
+
+    <p>Every element that is defined in the XSLT 1.0 spec is represented by a
+    a class in the <code>org.apache.xalan.xsltc.compiler</code> package. The
+    main parser class contains a <code>Hashtable</code> that that maps XSL
+    elements into Java classes that make up the nodes in the AST. These Java
+    classes all reside in the <code>org.apache.xalan.xsltc.compiler</code>
+    package and extend either the <code>TopLevelElement</code> or the
+    <code>Instruction</code> classes. (Both these classes extend the
+    <code>SyntaxTreeNode</code> class.)</p>
+
+    <p>The mapping from XSL element names to Java classes/AST nodes is set up
+    in the <code>initClasses()</code> method of the main parser:</p>
+<blockquote class="source">
+<pre>
+    private void initStdClasses() {
+	try {
+	    initStdClass("template",    "Template");
+	    initStdClass("param",       "Param");
+	    initStdClass("with-param",  "WithParam");
+	    initStdClass("variable",    "Variable");
+	    initStdClass("output",      "Output");
+	    :
+	    :
+	    :
+	}
+    }
+
+    private void initClass(String elementName, String className)
+	throws ClassNotFoundException {
+	_classes.put(elementName,
+		     Class.forName(COMPILER_PACKAGE + '.' + className));
+    }</pre>
+</blockquote>
+
+    
+
+    <a name="domxsl">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Building the AST from AST nodes</h4>
+    <p>The parser builds an AST from the various syntax tree nodes. Each node
+    contains a reference to its parent node, a vector containing references
+    to all child nodes and a structure containing all attribute nodes:</p>
+<blockquote class="source">
+<pre>
+    protected SyntaxTreeNode _parent; // Parent node
+    private   Vector _contents;       // Child nodes
+    protected Attributes _attributes; // Attributes of this element</pre>
+</blockquote>
+
+
+    <p>These variables should be accessed using these methods:</p>
+<blockquote class="source">
+<pre>
+    protected final SyntaxTreeNode getParent();
+    protected final Vector getContents();
+    protected String getAttribute(String qname);
+    protected Attributes getAttributes();</pre>
+</blockquote>
+
+    <p>At this time the AST only contains nodes that represent the XSL elements
+    from the stylesheet. A SAX parse is generic and can only handle XML files
+    and will not break up and identify XPath patterns/expressions (these are
+    stored as attributes to the various nodes in the tree). Each XSL instruction
+    gets its own node in the AST, and the XPath patterns/expressions are stored
+    as attributes of these nodes. A stylesheet looking like this:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:stylesheet .......&gt;
+      &lt;xsl:template match="chapter"&gt;
+        &lt;xsl:text&gt;Chapter&lt;/xsl:text&gt;
+        &lt;xsl:value-of select="."&gt;
+      &lt;/xsl:template&gt;
+    &lt;/xsl&gt;stylesheet&gt;</pre>
+</blockquote>
+
+    <p>will be stored in the AST as indicated in the following picture:</p>
+    <p>
+<img src="ast_stage1.gif" alt="ast_stage1.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 1: The AST in its first stage</i>
+</b>
+</p>
+
+    <p>All objects that make up the nodes in the initial AST have a
+    <code>parseContents()</code> method. This method is responsible for:</p>
+
+    <ul>
+      <li>parsing the values of those attributes that contain XPath expressions
+      or patterns, breaking each expression/pattern into AST nodes and inserting
+      them into the tree.</li>
+      <li>reading/checking all other required attributes</li>
+      <li>propagate the <code>parseContents()</code> call down the tree</li>
+    </ul>
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Mapping XPath expressions and patterns to additional AST nodes</h4>
+
+    <p>The nodes that represent the XPath expressions and patterns extend
+    either the <code>Expression</code> or <code>Pattern</code> class
+    respectively. These nodes are not appended to the <code>_contents</code>
+    vectory of each node, but rather stored as individual references in each
+    AST element node. One example is the <code>ForEach</code> class that
+    represents the <code>&lt;xsl:for-each&gt;</code> element. This class has
+    a variable that contains a reference to the AST sub-tree that represents
+    its <code>select</code> attribute:</p>
+<blockquote class="source">
+<pre>
+    private Expression _select;</pre>
+</blockquote>
+   
+    <p>There is no standard way of storing these XPath expressions and each
+    AST node that contains one or more XPath expression/pattern must handle
+    that itself. This handling basically involves passing the attribute's
+    value to the XPath parser and receiving back an AST sub-tree.</p>
+
+    <p>With all XPath expressions/patterns expanded, the AST will look somewhat
+    like this:</p>
+
+    <p>
+<img src="ast_stage2.gif" alt="ast_stage2.gif" />
+</p>
+    <p>
+<b>
+<i>Fiugre 2: The AST in its second stage</i>
+</b>
+</p>
+
+    
+  
+
+  
+
+  <a name="typecheck">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Type-check and Cast Expressions</h3>
+
+    <p>In many cases we will need to typecast the top node in the expression
+    sub-tree to suit the expected result-type of the expression, or to typecast
+    child nodes to suit the allowed types for the various operators in the
+    expression. This is done by calling 'typeCheck()' on the root-node in the
+    XSL tree. Each SyntaxTreeNode node is responsible for inserting type-cast
+    nodes between itself and its child nodes or XPath nodes. These type-cast
+    nodes will convert the output-types of the child/XPath nodes to the expected
+    input-type of the parent node. Let look at our AST again and the node that
+    represents the <code>&lt;xsl:value-of&gt;</code> element. This element
+    expects to receive a string from its <code>select</code> XPath expression,
+    but the <code>Step</code> expression will return either a node-set or a
+    single node. An extra node is inserted into the AST to perform the
+    necessary type conversions:</p>
+
+    <p>
+<img src="ast_stage3.gif" alt="ast_stage3.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 3: XPath expression type cast</i>
+</b>
+</p>
+
+    <p>The <code>typeCheck()</code> method of each SyntaxTreeNode object will
+    call <code>typeCheck()</code> on each of its XPath expressions. This method
+    will return the native type returned by the expression. The AST node will
+    insert an additional type-conversion node if the return-type does not match
+    the expected data-type. Each possible return type is represented by a class
+    in the <code>org.apache.xalan.xsltc.compiler.util</code> package. These
+    classes all contain methods that will generate bytecodes needed to perform
+    the actual type conversions (at runtime). The type-cast nodes in the AST
+    mainly consist of calls to these methods.</p>
+  
+
+  
+
+  <a name="compile">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>JVM byte-code generation</h3>
+
+    <ul>
+      <li>
+<a href="#stylesheet">Compiling the stylesheet</a>
+</li>
+      <li>
+<a href="#toplevel">Compiling top-level elements</a>
+</li>
+      <li>
+<a href="#templates">Compiling template code</a>
+</li>
+      <li>
+<a href="#instructions">Compiling instructions, functions expressions and patterns</a>
+</li>
+    </ul>
+
+    <p>Evey node in the AST extends the <code>SyntaxTreeNode</code> base class
+    and implements the <code>translate()</code> method. This method is
+    responsible for outputting the actual bytecodes that make up the
+    functionality required for each element, function, expression or pattern.
+    </p>
+
+    <a name="stylesheet">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Compiling the stylesheet</h4>
+    <p>Some nodes in the AST require more complex code than others. The best
+    example is the <code>&lt;xsl:stylesheet&gt;</code> element. The code that
+    represents this element has to tie together the code that is generated by
+    all the other elements and generate the actual class definition for the main
+    translet class. The <code>Stylesheet</code> class generates the translet's
+    constructor and methods that handle all top-level elements.</p>
+    
+
+    <a name="toplevel">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Compiling top-level elements</h4>
+    <p>The bytecode that handles top-level elements must be generated before any
+    other code. The '<code>translate()</code>' method in these classes are
+    mainly called from these methods in the Stylesheet class:</p>
+<blockquote class="source">
+<pre>
+    private String compileBuildKeys(ClassGenerator);
+    private String compileTopLevel(ClassGenerator, Enumeration);
+    private void compileConstructor(ClassGenerator, Output);</pre>
+</blockquote>
+
+    <p>These methods handle most top-level elements, such as global variables
+    and parameters, <code>&lt;xsl:output&gt;</code> and
+    <code>&lt;xsl:decimal-format&gt;</code> instructions.</p>
+    
+
+    <a name="templates">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Compiling template code</h4>
+    <p>All XPath patterns in <code>&lt;xsl:apply-template&gt;</code>
+    instructions are converted into numeric values (known as the pattern's
+    kernel 'type'). All templates with identical pattern kernel types are
+    grouped together and inserted into a table known as a test sequence.
+    (The table of test sequences is found in the Mode class in the compiler
+    package. There will be one such table for each mode that is used in the
+    stylesheet). This table is used to build a big <code>switch()</code>
+    statement in the translet's <code>applyTemplates()</code> method. This
+    method is initially called with the root node of the input document.</p>
+
+    <p>The <code>applyTemplates()</code> method determines the node's type and
+    passes this type to the <code>switch()</code> statement to look up the
+    matching template. The test sequence code (the <code>TestSeq</code> class)
+    is responsible for inserting bytecodes to find  one  matching template
+    in cases where more than one template matches the current node type.</p>
+
+    <p>There may be several templates that share the same pattern kernel type.
+    Here are a few examples of templates with patterns that all have the same
+    kernel type:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:template match="A/C"&gt;
+    &lt;xsl:template match="A/B/C"&gt;
+    &lt;xsl:template match="A | C"&gt;</pre>
+</blockquote>
+
+    <p>All these templates will be grouped under the type for
+    <code>&lt;C&gt;</code> and will all get the same kernel type (the type for
+    <code>"C"</code>). The last template will be grouped both under
+    <code>"C"</code> and <code>"A"</code>, since it matches either element.
+    If the type identifier for <code>"C"</code> in this case is 8, all these
+    templates will be put under <code>case 8:</code> in
+    <code>applyTemplates()</code>'s big <code>switch()</code> statement. The
+    <code>TestSeq</code> class will insert some code under the
+    <code>case 8:</code> statement (similar to if's and then's) in order to
+    determine which of the three templates to trigger.</p>
+    
+
+    <a name="instructions">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Compiling instructions, functions, expressions and patterns</h4>
+
+    <p>The template code is generated by calling <code>translate()</code> on
+    each <code>Template</code> object in the abstract syntax tree. This call
+    will be propagated down the abstract syntax tree and every element will
+    output the bytecodes necessary to complete its task.</p>
+
+    <p>The Java Virtual Machine is stack-based, which goes hand-in-hand with
+    the tree structure of a stylesheet and the AST. A node in the AST will
+    call <code>translate()</code> on its child nodes and any XPath nodes before
+    it generates its own bytecodes. In that way the correct sequence of JVM
+    instructions is generated.  Each one of the child nodes is responsible of
+    creating code that leaves the node's output value (if any) on the stack.
+    The typical procedure for the parent node is to create JVM code that
+    consumes these values off the stack and then leave its own output on the
+    stack (for its parent).</p>
+
+    <p>The tree-structure of the stylesheet is in this way closely tied with
+    the stack-based JVM. The design does not offer any obvious way of extending
+    the compiler to output code for other non-stack-based VMs or processors.</p>
+    
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsltc_dom.html b/xalan-j/xsltc/xsltc_dom.html
new file mode 100644
index 0000000..09ae74e
--- /dev/null
+++ b/xalan-j/xsltc/xsltc_dom.html
@@ -0,0 +1,748 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC Internal DOM</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC Internal DOM</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>Internal DOM<br />
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC Internal DOM</h2>
+
+  <ul>
+    <li>
+<a href="#functionality">General functionlaity</a>
+</li>
+    <li>
+<a href="#components">Components of the internal DOM</a>
+</li>
+    <li>
+<a href="#structure">Internal structure</a>
+</li>
+    <li>
+<a href="#navigation">Tree navigation</a>
+</li>
+    <li>
+<a href="#namespaces">Namespaces</a>
+</li>
+    <li>
+<a href="#w3c">W3C DOM2 navigation support</a>
+</li>
+    <li>
+<a href="#adapter">The DOM adapter - DOMAdapter</a>
+</li>
+    <li>
+<a href="#multiplexer">The DOM multiplexer - MultiDOM</a>
+</li>
+    <li>
+<a href="#builder">The DOM builder - DOMImpl$DOMBuilder</a>
+</li>
+  </ul>
+
+  <a name="functionality">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>General functionality</h3>
+  <p>The internal DOM gives the translet access to the XML document(s) it has
+  to transform. The interface to the internal DOM is specified in the DOM.java
+  class. This is the interface that the translet uses to access the DOM. 
+  There is also an interface specified for DOM caches -- DOMCache.java</p>
+
+  <a name="components">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Components of the internal DOM</h3>
+
+  <p>This DOM interface is implemented by three classes:</p>
+  <ul>
+    <li>
+<b>org.apache.xalan.xsltc.dom.DOMImpl</b>
+<br />
+<br />
+      This is the main DOM class. An instance of this class contains the nodes
+      of a <b>single</b> XML document.<br />
+<br />
+    </li>
+    <li>
+<b>org.apache.xalan.xsltc.dom.MultiDOM</b>
+<br />
+<br />
+      This class is best described as a DOM multiplexer. XSLTC was initially
+      designed to operate on a single XML document, and the initial DOM and
+      the DOM interface were designed and implemented without the
+      <code>document()</code> function in mind. This class will allow a translet
+      to access multiple DOMs through the original DOM interface.<br />
+<br />
+    </li>
+    <li>
+<b>org.apache.xalan.xsltc.dom.DOMAdapter</b>
+<br />
+<br />
+      The DOM adapter is a mediator between a DOMImpl or a MultiDOM object and
+      a single translet. A DOMAdapter object contains mappings and reverse
+      mappings between node  types in the DOM(s) and node types in the translet.
+      This mediator is needed to allow several translets access to a single DOM.
+      <br />
+<br />
+    </li>
+    <li>
+<b>org.apache.xalan.xsltc.dom.DocumentCache</b>
+<br />
+<br />
+      A sample DOM cache (implementing DOMCache) that is used with our sample
+      transformation applications.
+    </li>
+  </ul>
+
+  <p>
+<img src="DOMInterface.gif" alt="DOMInterface.gif" />
+</p>
+  <p>
+<b>
+<i>Figure 1: Main components of the internal DOM</i>
+</b>
+</p>
+
+  <p>The figure above shows how several translets can access one or more
+  internal DOM from a shared pool of cached DOMs. A translet can also access a
+  DOM tree outside of a cache. The Stylesheet class that represents the XSL
+  stylesheet to compile contains a flag that indicates if the translet uses the
+  <code>document()</code> function. The code compiled into the translet will act
+  accordingly and instanciate a MultiDOM object if needed (this code is compiled
+   in the compiler's <code>Stylesheet.compileTransform()</code> method).</p>
+
+  <a name="structure">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Internal Structure</h3>
+  <ul>
+    <li>
+<a href="#node-id">Node identification</a>
+</li>
+    <li>
+<a href="#element-nodes">Element nodes</a>
+</li>
+    <li>
+<a href="#attribute-nodes">Attribute nodes</a>
+</li>    
+    <li>
+<a href="#text-nodes">Text nodes</a>
+</li>
+    <li>
+<a href="#comment-nodes">Comment nodes</a>
+</li>    
+    <li>
+<a href="#pi" />Processing instructions</li>
+  </ul>
+  <a name="node-id">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Node identifation</h4>
+
+  <p>Each node in the DOM is represented by an integer. This integer is an
+  index into a series of arrays that describes the node. Most important is
+  the <code>_type[]</code> array, which holds the (DOM internal) node type. There
+  are some general node types that are described in the DOM.java interface:</p>
+
+<blockquote class="source">
+<pre>
+    public final static int ROOT                   = 0;
+    public final static int TEXT                   = 1;
+    public final static int UNUSED                 = 2;
+    public final static int ELEMENT                = 3;
+    public final static int ATTRIBUTE              = 4;
+    public final static int PROCESSING_INSTRUCTION = 5;
+    public final static int COMMENT                = 6;
+    public final static int NTYPES                 = 7;
+</pre>
+</blockquote>
+
+  <p>Element and attribute nodes will be assigned types based on their expanded
+  QNames. The <code>_type[]</code> array is used for this:</p>
+
+<blockquote class="source">
+<pre>
+    int    type      = _type[node];             // get node type
+</pre>
+</blockquote>
+
+  <p>The node type can be used to look up the element/attribute name in the
+  element/attribute name array <code>_namesArray[]</code>:</p>
+
+<blockquote class="source">
+<pre>
+    String name      = _namesArray[type-NTYPES]; // get node element name
+</pre>
+</blockquote>
+
+  <p>The resulting string contains the full, expanded QName of the element or
+  attribute. Retrieving the namespace URI of an element/attribute is done in a
+  very similar fashion:</p>
+
+<blockquote class="source">
+<pre>
+    int    nstype    = _namespace[type-NTYPES]; // get namespace type
+    String namespace = _nsNamesArray[nstype];   // get node namespace name
+</pre>
+</blockquote>
+  <a name="element-nodes">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Element nodes</h4>
+
+  <p>The contents of an element node (child nodes) can be identified using
+  the <code>_offsetOrChild[]</code> and <code>_nextSibling[]</code> arrays. The
+  <code>_offsetOrChild[]</code> array will give you the first child of an element
+  node:</p>
+
+<blockquote class="source">
+<pre>
+    int    child     = _offsetOrChild[node];    // first child
+    child = _nextSibling[child];                // next child
+</pre>
+</blockquote>
+
+  <p>The last child will have a "<code>_nextSibling[]</code>" of 0 (zero).
+  This value is OK since the root node (the 0 node) will not be a child of
+  any element.</p>
+
+  <a name="attribute-nodes">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Attribute nodes</h4>
+
+  <p>The first attribute node of an element is found by a lookup in the
+  <code>_lengthOrAttr[]</code> array using the node index:</p>
+
+<blockquote class="source">
+<pre>
+    int    attribute = _offsetOrChild[node];    // first attribute
+    attribute = _nextSibling[attribute];        // next attribute
+</pre>
+</blockquote>
+
+  <p>The names of attributes are contained in the <code>_namesArray[]</code> just
+  like the names of element nodes. The value of attributes are store the same
+  way as text nodes:</p>
+
+<blockquote class="source">
+<pre>
+    int    offset    = _offsetOrChild[attribute]; // offset into character array
+    int    length    = _lengthOrAttr[attribute];  // length of attribute value
+    String value     = new String(_text, offset, length);
+</pre>
+</blockquote>
+  <a name="text-nodes">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Text nodes</h4>
+
+  <p>Text nodes are stored identically to attribute values. See the previous
+  section on <a href="#attribute-nodes">attribute nodes</a>.</p>
+  <a name="comment-nodes">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Comment nodes</h4>
+
+  <p>The internal DOM does currently <b>not</b> contain comment nodes. Yes, I
+  am quite aware that the DOM has a type assigned to comment nodes, but comments
+  are still not inserted into the DOM.</p>
+  <a name="pi">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Processing instructions</h4>
+
+  <p>Processing instructions are handled as text nodes. These nodes are stored
+  identically to attribute values. See the previous section on
+  <a href="#attribute-nodes">attribute nodes</a>.</p>
+
+  <a name="navigation">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Tree navigation</h3>
+
+  <p>The DOM implementation contains a series of iterator that implement the
+  XPath axis. All these iterators implement the NodeIterator interface and
+  extend the NodeIteratorBase base class. These iterators do the job of
+  navigating the tree using the <code>_offsetOrChild[]</code>, <code>_nextSibling</code>
+  and <code>_parent[]</code> arrays. All iterators that handles XPath axis are
+  implemented as a private inner class of DOMImpl. The translet uses a handful
+  of methods to instanciate these iterators:</p>
+
+<blockquote class="source">
+<pre>
+    public NodeIterator getIterator();
+    public NodeIterator getChildren(final int node);
+    public NodeIterator getTypedChildren(final int type);
+    public NodeIterator getAxisIterator(final int axis);
+    public NodeIterator getTypedAxisIterator(final int axis, final int type);
+    public NodeIterator getNthDescendant(int node, int n);
+    public NodeIterator getNamespaceAxisIterator(final int axis, final int ns);
+    public NodeIterator orderNodes(NodeIterator source, int node);
+</pre>
+</blockquote>
+
+  <p>There are a few iterators in addition to these, such as sorting/ordering
+  iterators and filtering iterators. These iterators are implemented in
+  separate classes and can be instanciated directly by the translet.</p>
+
+  <a name="namespaces">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Namespaces</h3>
+
+  <p>Namespace support was added to the internal DOM at a late stage, and the
+  design and implementation of the DOM bears a few scars because of this. 
+  There is a separate <a href="xsltc_namespace.html">design
+  document</a> that covers namespaces.</p>
+
+  <a name="w3c">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>W3C DOM2 navigation support</h3>
+
+  <p>The DOM has a few methods that give basic W3C-type DOM navigation. These
+  methods are:</p>
+
+<blockquote class="source">
+<pre>
+    public Node makeNode(int index);
+    public Node makeNode(NodeIterator iter);
+    public NodeList makeNodeList(int index);
+    public NodeList makeNodeList(NodeIterator iter);
+</pre>
+</blockquote>
+
+  <p>These methods return instances of inner classes of the DOM that implement
+  the W3C Node and NodeList interfaces.</p>
+
+  <a name="adapter">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>The DOM adapter - DOMAdapter</h3>
+  <ul>
+    <li>
+<a href="#translet-dom">Translet/DOM type mapping</a>
+</li>
+    <li>
+<a href="#whitespace">Whitespace text-node stripping</a>
+</li>
+    <li>
+<a href="#method-mapping">Method mapping</a>
+</li>
+  </ul>
+  <a name="translet-dom">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Translet/DOM type mapping</h4>
+
+  <p>The DOMAdapter class performs the mappings between DOM and translet node
+  types, and vice versa. These mappings are necessary in order for the translet
+  to correctly identify an element/attribute in the DOM and for the DOM to
+  correctly identify the element/attribute type of a typed iterator requested
+  by the translet. Note that the DOMAdapter also maps translet namespace types
+  to DOM namespace types, and vice versa.</p>
+
+  <p>The DOMAdapter class has four global tables that hold the translet/DOM
+  type and namespace-type mappings. If the DOM knows an element as type
+  19, the DOMAdapter will translate this to some other integer using the
+  <code>_mapping[]</code> array:</p>
+
+<blockquote class="source">
+<pre>
+    int domType = _mapping[transletType];
+</pre>
+</blockquote>
+
+  <p>This action will be performed when the DOM asks what type a specific node
+  is. The reverse is done then the translet wants an iterator for a specific
+  node type. The DOMAdapter must translate the translet-type to the type used
+  internally in the DOM by looking up the <code>_reverse[]</code> array:</p>
+
+<blockquote class="source">
+<pre>
+    int transletType = _mapping[domType];
+</pre>
+</blockquote>
+
+  <p>There are two additional mapping tables: <code>_NSmapping[]</code> and
+  <code>_NSreverse[]</code> that do the same for namespace types.</p>
+  <a name="whitespace">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Whitespace text-node stripping</h4>
+
+  <p>The DOMAdapter class has the additional function of stripping whitespace
+  nodes in the DOM. This functionality had to be put in the DOMAdapter, as
+  different translets will have different preferences for node stripping.</p>
+  <a name="method-mapping">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Method mapping</h4>
+
+  <p>The DOMAdapter class implements the same <code>DOM</code> interface as the
+  DOMImpl class. A DOMAdapter object will look like a DOMImpl tree, but the
+  translet can access it directly without being concerned with type mapping
+  and whitespace stripping. The <code>getTypedChildren()</code> demonstrates very
+  well how this is done:</p>
+
+<blockquote class="source">
+<pre>
+    public NodeIterator getTypedChildren(int type) {
+        // Get the DOM type for the requested typed iterator
+        final int domType = _reverse[type];
+        // Now get the typed child iterator from the DOMImpl object
+        NodeIterator iterator = _domImpl.getTypedChildren(domType);
+        // Wrap the iterator in a WS stripping iterator if child-nodes are text nodes
+	if ((domType == DOM.TEXT) &amp;&amp; (_filter != null))
+	    iterator = _domImpl.strippingIterator(iterator,_mapping,_filter);
+	return(iterator);
+    }
+</pre>
+</blockquote>
+
+  <a name="multiplexer">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>The DOM multiplexer - MultiDOM</h3>
+
+  <p>The DOM multiplexer class is only used when the compiled stylesheet uses
+  the <code>document()</code> function. An instance of the MultiDOM class also
+  implements the DOM interface, so that it can be accessed in the same way
+  as a DOMAdapter object.</p>
+
+  <p>A node in the DOM is identified by an integer. The first 8 bits of this
+  integer are used to identify the DOM in which the node belongs, while the
+  lower 24 bits are used to identify the node within the DOM:</p>
+    <table border="1">
+      <tr>
+        <td class="content" rowspan="1" colspan="1">31-24</td>
+        <td class="content" rowspan="1" colspan="1">23-16</td>
+        <td class="content" rowspan="1" colspan="1">16-8</td>
+        <td class="content" rowspan="1" colspan="1">7-0</td>
+      </tr>
+      <tr>
+        <td class="content" rowspan="1" colspan="1">DOM id</td>
+        <td class="content" rowspan="1" colspan="3">node id</td>
+      </tr>
+    </table>
+
+  <p>The DOM multiplexer has an array of DOMAdapter objects. The topmost 8
+  bits of the identifier is used to find the correct DOM from the array. Then
+  the lower 24 bits are used in calls to methods in the DOMAdapter object:</p>
+
+<blockquote class="source">
+<pre>
+    public int getParent(int node) {
+	return _adapters[node&gt;&gt;&gt;24].getParent(node &amp; 0x00ffffff) | node &amp; 0xff000000;
+    }
+</pre>
+</blockquote>
+
+  <p>Note that the node identifier returned by this method has the same upper 8
+  bits as the input node. This is why we <code>OR</code> the result from
+  <code>DOMAdapter.getParent()</code> with the top 8 bits of the input node.</p>
+
+  <a name="builder">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>The DOM builder - DOMImpl$DOMBuilder</h3>
+  <ul>
+    <li>
+<a href="#startelement">startElement()</a>
+</li>
+    <li>
+<a href="#endelement">endElement()</a>
+</li>
+    <li>
+<a href="#startprefixmapping">startPrefixMapping()</a>
+</li>
+    <li>
+<a href="#endprefixmapping">endPrefixMapping()</a>
+</li>
+    <li>
+<a href="#characters">characters()</a>
+</li>
+    <li>
+<a href="#startdocument">startDocument()</a>
+</li>
+    <li>
+<a href="#enddocument">endDocument()</a>
+</li>
+  </ul>
+
+  <p>The DOM builder is an inner class of the DOM implementation. The builder
+  implements the SAX2 <code>ContentHandler</code> interface and populates the DOM
+  by receiving SAX2 events from a SAX2 parser (presently xerces). An instance
+  of the DOM builder class can be retrieved from <code>DOMImpl.getBuilder()</code>
+  method, and this handler can be set as an XMLReader's content handler:</p>
+
+<blockquote class="source">
+<pre>
+    final SAXParserFactory factory = SAXParserFactory.newInstance();
+    final SAXParser parser = factory.newSAXParser();
+    final XMLReader reader = parser.getXMLReader();
+    final DOMImpl dom = new DOMImpl();
+    reader.setContentHandler(dom.getBuilder());
+</pre>
+</blockquote>
+
+  <p>The DOM builder will start to populate the DOM once the XML parser starts
+  generating SAX2 events:</p>
+  <a name="startelement">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>startElement()</h4>
+
+  <p>This method can be called in one of two ways; either with the expanded
+  QName (the element's separate uri and local name are supplied) or as a
+  normal QName (one String on the format prefix:local-name). The DOM stores
+  elements as expanded QNames so it needs to know the element's namespace URI.
+  Since the URI is not supplied with this call, we have to keep track of
+  namespace prefix/uri mappings while we're building the DOM. See 
+  <code>
+<a href="#startprefixmapping">startPrefixMapping()</a>
+</code> below for details on
+  namespace handling.</p>
+
+  <p>The <code>startElement()</code> inserts the element as a child of the current
+  parent element, creates attribute nodes for all attributes in the supplied
+  "<code>Attributes</code>" attribute list (by a series of calls to
+  <code>makeAttributeNode()</code>), and finally creates the actual element node
+  (by calling <code>internElement()</code>, which inserts a new entry in the
+  <code>_type[]</code> array).</p>
+  <a name="endelement">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>endElement()</h4>
+
+  <p>This method does some cleanup after the <code>startElement()</code> method,
+  such as revering <code>xml:space</code> settings and linking the element's
+  child nodes.</p>
+  <a name="startprefixmapping">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>startPrefixMapping()</h4>
+
+  <p>This method is called for each namespace declaration in the source
+  document. The parser should call this method before the prefix is referenced
+  in a QName that is passed to the <code>startElement()</code> call. Namespace
+  prefix/uri mappings are stored in a Hashtable structure. Namespace prefixes
+  are used as the keys in the Hashtable, and each key maps to a Stack that
+  contains the various URIs that the prefix maps to. The URI on top of the
+  stack is the URI that the prefix currently maps to.</p>
+
+  
+    <p>
+<img src="namespace_stack.gif" alt="namespace_stack.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 2: Namespace handling in the DOM builder</i>
+</b>
+</p>
+
+
+  <p>Each call to <code>startPrefixMapping()</code> results in a lookup in the
+  Hashtable (using the prefix), and a <code>push()</code> of the URI onto the
+  Stack that the prefix maps to.</p>
+  <a name="endprefixmapping">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>endPrefixMapping()</h4>
+
+  <p>A namespace prefix/uri mapping is closed by locating the Stack for the
+  prefix, and then <code>pop()</code>'ing the topmost URI off this Stack.</p>
+  <a name="characters">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>characters()</h4>
+
+  <p>Text nodes are stored as simple character sequences in the character array
+  <code>_text[]</code>. The start and lenght of a node's text can be determined by
+  using the node index to look up <code>_offsetOrChild[]</code> and
+  <code>_lengthOrAttribute[]</code>.</p>
+
+  <p>We want to re-use character sequences if two or more text nodes have
+  identical content. This can be achieved by having two different text node
+  indexes map to the same character sequence. The <code>maybeReuseText()</code>
+  method is always called before a new character string is stored in the
+  <code>_text[]</code> array. This method will locate the offset of an existing
+  instance of a character sequence.</p>
+  <a name="startdocument">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>startDocument()</h4>
+
+  <p>This method initialises a bunch of data structures that are used by the
+  builder. It also pushes the default namespace on the namespace stack (so that
+  the "" prefix maps to the <code>null</code> namespace).</p>
+  <a name="enddocument">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>endDocument()</h4>
+
+  <p>This method builds the <code>_namesArray[]</code>, <code>_namespace[]</code>
+  and <code>_nsNamesArray[]</code> structures from temporary datastructures used
+  in the DOM builder.</p>
+
+   
+ 
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsltc_iterators.html b/xalan-j/xsltc/xsltc_iterators.html
new file mode 100644
index 0000000..07a5736
--- /dev/null
+++ b/xalan-j/xsltc/xsltc_iterators.html
@@ -0,0 +1,573 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC node iterators</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC node iterators</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>Xsltc Iterators<br />
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC node iterators</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Contents</h3>
+
+  <p>This document describes the function of XSLTC's node iterators. It also
+  describes the <code>NodeIterator</code> interface and some implementations of
+  this interface are described in detail:</p>
+
+  <ul>
+    <li>
+<a href="#purpose">Node iterator function</a>
+</li>
+    <li>
+<a href="#interface">NodeIterator interface</a>
+</li>
+    <li>
+<a href="#baseclass">Node iterator base class</a>
+</li>    
+    <li>
+<a href="#details">Implementation details</a>
+</li>    
+  </ul>
+
+  
+
+   
+
+  <a name="purpose">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Node Iterator Function</h3>
+
+    <p>Node iterators have several functions in XSLTC. The most obvious is
+    acting as a placeholder for node-sets. Node iterators also act as a link
+    between the translet and the DOM(s), they can act as filters (implementing
+    predicates), they contain the functionality necessary to cover all XPath
+    axes and they even serve as a front-end to XSLTC's node-indexing mechanism
+    (for the <code>id()</code> and <code>key()</code> functions).</p>
+  
+
+   
+
+  <a name="interface">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Node Iterator Interface</h3>
+
+    <p>The node iterator interface is defined in
+    <code>org.apache.xalan.xsltc.NodeIterator</code>.</p>
+
+    <p>The most basic operations in the <code>NodeIterator</code> interface are
+    for setting the iterators start-node. The "start-node" is
+    an index into the DOM. This index, and the axis of the iterator, determine
+    the node-set that the iterator contains. The axis is programmed into the
+    various node iterator implementations, while the start-node can be set by
+    calling:</p>
+<blockquote class="source">
+<pre>
+    public NodeIterator setStartNode(int node);</pre>
+</blockquote>
+
+    <p>Once the start node is set the node-set can be traversed by a sequence of
+    calls to:</p>
+<blockquote class="source">
+<pre>
+    public int next();</pre>
+</blockquote>
+
+    <p>This method will return the constant <code>NodeIterator.END</code> when
+    the whole node-set has been returned. The iterator can be reset to the start
+    of the node-set by calling:</p>
+<blockquote class="source">
+<pre>
+    public NodeIterator reset();</pre>
+</blockquote>
+
+    <p>Two additional methods are provided to set the position within the
+    node-set. The first method below will  mark  the current node in the
+    node-set, while the second will (at any point) set the iterators position
+    back to that node.</p>
+<blockquote class="source">
+<pre>
+    public void setMark();
+    public void gotoMark();</pre>
+</blockquote>
+
+    <p>Every node iterator implements two functions that make up the
+    functionality behind XPath's <code>getPosition()</code> and
+    <code>getLast()</code> functions.</p>
+<blockquote class="source">
+<pre>
+    public int getPosition();
+    public int getLast();</pre>
+</blockquote>
+
+    <p>The <code>getLast()</code> function returns the number of nodes in the
+    set, while the <code>getPosition()</code> returns the current position
+    within the node-set. The value returned by <code>getPosition()</code> for
+    the first node in the set is always 1 (one), and the value returned for the
+    last node in the set is always the same value as is returned by
+    <code>getLast()</code>.</p>
+
+    <p>All node iterators that implement an XPath axis will return the node-set
+    in the natural order of the axis. For example, the iterator implementing the
+     ancestor  axis will return nodes in reverse document order (bottom to
+    top), while the iterator implementing the  descendant  will return
+    nodes in document order. The node iterator interface has a method that can
+    be used to determine if an iterator returns nodes in reverse document order:
+    </p>
+<blockquote class="source">
+<pre>
+    public boolean isReverse();</pre>
+</blockquote>
+
+    <p>Two methods are provided for when node iterators are encapsulated inside
+    a variable or parameter. To understand the purpose behind these two methods
+    we should have a look at a sample XML document and stylesheet first:</p>
+    <blockquote class="source">
+<pre>
+    &lt;?xml version="1.0"?&gt;
+    &lt;foo&gt;
+        &lt;bar&gt;
+            &lt;baz&gt;A&lt;/baz&gt;
+            &lt;baz&gt;B&lt;/baz&gt;
+        &lt;/bar&gt;
+        &lt;bar&gt;
+            &lt;baz&gt;C&lt;/baz&gt;
+            &lt;baz&gt;D&lt;/baz&gt;
+        &lt;/bar&gt;
+    &lt;/foo&gt;
+
+    &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
+
+        &lt;xsl:template match="foo"&gt;
+            &lt;xsl:variable name="my-nodes" select="//foo/bar/baz"/&gt;
+            &lt;xsl:for-each select="bar"&gt;
+                &lt;xsl:for-each select="baz"&gt;
+                    &lt;xsl:value-of select="."/&gt;
+                &lt;/xsl:for-each&gt;
+                &lt;xsl:for-each select="$my-nodes"&gt;
+                    &lt;xsl:value-of select="."/&gt;
+                &lt;/xsl:for-each&gt;
+            &lt;/xsl:for-each&gt;
+        &lt;/xsl:template&gt;
+
+    &lt;/xsl:stylesheet&gt;</pre>
+</blockquote>
+
+    <p>Now, there are three iterators at work here. The first iterator is the
+    one that is wrapped inside the variable <code>my-nodes</code> - this
+    iterator contains  all  <code>&lt;baz/&gt;</code> elements in the
+    document. The second iterator contains all <code>&lt;bar&gt;</code>
+    elements under the current element (this is the iterator used by the
+    outer <code>for-each</code> loop). The third and last iterator is the one
+    used by the first of the inner <code>for-each</code> loops. When the outer
+    loop is run the first time, this third iterator will be initialized to
+    contain the first two <code>&lt;baz&gt;</code> elements under the context
+    node (the first <code>&lt;bar&gt;</code> element). Iterators are by default
+    restarted from the current node when used inside a <code>for-each</code>
+    loop like this. But what about the iterator inside the variable
+    <code>my-nodes</code>? The variable should keep its assigned value, no
+    matter what the context node is. In able to prevent the iterator from being
+    reset, we must use a mechanism to block calls to the
+    <code>setStartNode()</code> method. This is done in three steps:</p>
+
+    <ul>
+      <li>The iterator is created and initialized when the variable gets
+      assigned its value (node-set).</li>
+      <li>When the variable is read, the iterator is copied (cloned). The
+      original iterator inside the variable is never used directly. This is
+      to make sure that the iterator inside the variable is always in its
+      original state when read.</li>
+      <li>The iterator clone is marked as not restartable to prevent it from
+      being restarted when used to iterate the <code>&lt;xsl:for-each&gt;</code>
+      element loop.</li>
+    </ul>
+
+    <p>These are the two methods used for the three steps above:</p>
+<blockquote class="source">
+<pre>
+    public NodeIterator cloneIterator();
+    public void setRestartable(boolean isRestartable);</pre>
+</blockquote>
+
+    <p>Special care must be taken when implementing these methods in some
+    iterators. The <code>StepIterator</code> class is the best example of this.
+    This iterator wraps two other iterators; one of which is used to generate
+    start-nodes for the other - so one of the encapsulated node iterators must
+    always remain restartable - even when used inside variables. The
+    <code>StepIterator</code> class is described in detail later in this
+    document.</p>
+
+  
+
+
+   
+
+  <a name="baseclass">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Node Iterator Base Class</h3>
+
+    <p>A node iterator base class is provided to contain some common
+    functionality. The base class implements the node iterator interface, and
+    has a few additional methods:</p>
+<blockquote class="source">
+<pre>
+    public NodeIterator includeSelf();
+    protected final int returnNode(final int node);
+    protected final NodeIterator resetPosition();</pre>
+</blockquote>
+
+    <p>The <code>includeSelf()</code> is used with certain axis iterators that
+    implement both the <code>ancestor</code> and <code>ancestor-or-self</code>
+    axis and similar. One common implementation is used for these axes and
+    this method is used to signal that the  "self"  node should
+    also be included in the node-set.</p>
+
+    <p>The <code>returnNode()</code> method is called by the implementation of
+    the <code>next()</code> method. <code>returnNode()</code> increments an
+    internal node counter/cursor that keeps track of the current position within
+    the node set. This counter/cursor is then used by the 
+    <code>getPosition()</code> implementation to return the current position.
+    The node cursor can be reset by calling <code>resetPosition()</code>. This
+    method is normally called by an iterator's <code>reset()</code> method.</p>
+
+  
+
+   
+
+  <a name="details">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Node Iterator Implementation Details</h3>
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Axis iterators</h4>
+
+    <p>All axis iterators are implemented as inner classes of the internal
+    DOM implementation <code>org.apache.xalan.xsltc.dom.DOMImpl</code>. In this
+    way all axis iterator classes have direct access to the internal node
+    type- and navigation arrays of the DOM:</p>
+<blockquote class="source">
+<pre>
+    private short[]   _type;          // Node types
+    private short[]   _namespace;     // Namespace URI types
+    private short[]   _prefix;        // Namespace prefix types
+
+    private int[]     _parent;        // Index of a node's parent
+    private int[]     _nextSibling;   // Index of a node's next sibling node
+    private int[]     _offsetOrChild; // Index of an elements first child node
+    private int[]     _lengthOrAttr;  // Index of an elements first attribute node</pre>
+</blockquote>
+
+    <p>The axis iterators can be instanciated by calling either of these two
+    methods of the DOM:</p>
+<blockquote class="source">
+<pre>
+    public NodeIterator getAxisIterator(final int axis);
+    public NodeIterator getTypedAxisIterator(final int axis, final int type);</pre>
+</blockquote>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>StepIterator</h4>
+    
+    <p>The <code>StepIterator</code> is used to  chain  other iterators. A
+    very basic example is this XPath expression:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:for-each select="foo/bar"&gt;</pre>
+</blockquote>
+
+    <p>To generate the appropriate node-set for this loop we need three
+    iterators. The compiler will generate code that first creates a typed axis
+    iterator; the axis will be  child  and the type will be that assigned
+    to <code>&lt;foo&gt;</code> elements. Then a second typed axis iterator will
+    be created; this also a  child -iterator, but this one with the type
+    assigned to <code>&lt;bar&gt;</code> elements. The third iterator is a
+    step iterator that encapsulates the two axis iterators. The step iterator is
+    the initialized with the context node.</p>
+
+    <p>The step iterator will use the first axis iterator to generate
+    start-nodes for the second axis iterator. In plain english this means that
+    the step iterator will scan all <code>foo</code> elements for any
+    <code>bar</code> child elements. When a <code>StepIterator</code> is
+    initialized with a start-node it passes the start node to the
+    <code>setStartNode()</code> method of its  source -iterator (left).
+    It then calls <code>next()</code> on that iterator to get the start-node
+    for the  iterator  iterator (right):</p>
+<blockquote class="source">
+<pre>
+    // Set start node for left-hand iterator...
+    _source.setStartNode(_startNode);
+    // ... and get start node for right-hand iterator from left-hand,
+    _iterator.setStartNode(_source.next());</pre>
+</blockquote>
+
+    <p>The step iterator will keep returning nodes from its right iterator until
+    it runs out of nodes. Then a new start-node is retrieved by again calling
+    <code>next()</code> on the  source -iterator. This is why the
+    right-hand iterator always has to be restartable - even if the step iterator
+    is placed inside a variable or parameter. This becomes even more complicated
+    for step iterators that encapsulate other step iterators. We'll make our
+    previous example a bit more interesting:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:for-each select="foo/bar[@name='cat and cage']/baz"&gt;</pre>
+</blockquote>
+
+    <p>This will result in an iterator-tree similar to this:</p>
+
+    <p>
+<img src="iterator_stack.gif" alt="iterator_stack.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 1: Stacked step iterators</i>
+</b>
+</p>
+
+    <p>The  "foo"  iterator is used to supply the second step
+    iterator with start nodes. The second step iterator will pass these start
+    nodes to the  "bar"  iterator, which will be used to get the
+    start nodes for the third step iterator, and so on....</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Iterators for Filtering/Predicates</h4>
+
+    <p>The <code>org.apache.xalan.xsltc.dom</code> package contains a few
+    iterators that are used to implement predicates and filters. Such iterators
+    are normally placed on top of another iterator, and return only those nodes
+    that match a specific node value, position, etc.
+    These iterators include:</p>
+
+    <ul>
+      <li>NthIterator</li>
+      <li>NodeValueIterator</li>
+      <li>FilteredStepIterator</li>
+      <li>CurrentNodeListIterator</li>
+    </ul>
+
+    <p>The last one is the most interesting. This iterator is used to implement
+    chained predicates, such as:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:value-of select="foo[@blob='boo'][2]"&gt;</pre>
+</blockquote>
+
+    <p>The first predicate reduces the node set from containing all
+    <code>&lt;foo&gt;</code> elements, to containing only those elements that
+    have a  "blob"  attribute with the value 'boo'. The
+    <code>CurrentNodeListIterator</code> is used to contain this reduced
+    node-set. The iterator is constructed by passing it a source iterator (in
+    this case an iterator that contains all <code>&lt;foo&gt;</code> elements)
+    and a filter that implements the predicate (<code>@blob = 'boo'</code>).</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>SortingIterator</h4>
+
+    <p>The sorting iterator is one of the main functional components behind the
+    implementation of the <code>&lt;xsl:sort&gt;</code> element. This element,
+    including the sorting iterator, is described in detail in the
+    <code>&lt;xsl:sort&gt;</code>
+    <a href="xsl_sort_design.html">design document</a>.</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>SingletonIterator</h4>
+
+    <p>The singleton iterator is a wrapper for a single node. The node passed
+    in to the <code>setStartNode()</code> method is the only node that will be
+    returned by the <code>next()</code> method. The singleton iterator is used
+    mainly for node to node-set type conversions.</p>
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>UnionIterator</h4>
+
+    <p>The union iterator is used to contain unions of node-sets contained in
+    other iterators. Some of the methods in this iterator are unnecessary
+    comlicated. The <code>next()</code> method contains an algorithm for
+    ensuring that the union node-set is returned in document order. We might be
+    better off by simply wrapping the union iterator inside a duplicate filter
+    iterator, but there could be some performance implications. Worth checking.
+    </p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>KeyIndex</h4>
+
+    <p>This is not just an node iterator. An index used for keys and ids will
+    return a set of nodes that are contained within the named index and that
+    share a certain property. The <code>KeyIndex</code> implements the node
+    iterator interface, so that these nodes can be returned and handled just
+    like any other node set. See the
+    <a href="xsl_key_design.html">design document</a> for 
+    <code>&lt;xsl:key&gt;</code>, <code>key()</code> and <code>id()</code>
+    for further details.</p>
+
+    
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsltc_namespace.html b/xalan-j/xsltc/xsltc_namespace.html
new file mode 100644
index 0000000..5245767
--- /dev/null
+++ b/xalan-j/xsltc/xsltc_namespace.html
@@ -0,0 +1,832 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC and Namespaces</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC and Namespaces</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>Namespaces<br />
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC and Namespaces</h2>
+
+  <ul>
+    <li>
+<a href="#functionality">Functionality</a>
+</li>
+    <li>
+<a href="#overview">Namespace overview</a>
+</li>
+    <li>
+<a href="#NSA">The DOM &amp; namespaces</a>
+</li>    
+    <li>
+<a href="#NSB">Namespaces in the XSL stylesheet</a>
+</li>
+    <li>
+<a href="#NSC">Namespaces in the output document</a>
+</li>
+  </ul>
+  <a name="functionality">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Functionality</h3>
+
+    <p>Namespaces are used when an XML documents has elements have the same
+    name, but are from different contexts, and thus have different meanings
+    and interpretations. For instance, a <code>&lt;TITLE&gt;</code> element can
+    be a HTML title element in one part of the XML document, while it in other
+    parts of the document the <code>&lt;TITLE&gt;</code> element is used for
+    encapsulating the title of a play or a book. This sort of confusion is
+    very common when reading XML source from multiple documents, but can also
+    occur within a single document.</p>
+
+    <p>Namespaces have three very important properties: a name, a prefix (an
+    alias for its name) and a scope. Namespaces are declared as attributes of
+    almost any node in an XML document. The declaration looks like this:</p>
+
+<blockquote class="source">
+<pre>
+    &lt;element xmlns:prefix="http://some.site/spec"&gt;....&lt;/element&gt;
+</pre>
+</blockquote>
+
+    <p>The <code>"xmlns"</code> tells that this is a namespace declaration. The
+    scope of the namespace declaration is the element in which it is defined
+    and all the children of that element.The prefix is the local alias we use
+    for referencing the namespace, and the URL (it can be anything, really) is
+    the name/definition of the namespace. Note that even though the namespace
+    definition is normally an URL, it does not have to point to anything. It
+    is recommended that it points to a page that describes the elements in the
+    namespace, but it does not have to. The prefix can be just about anything
+    - or nothing (in which case it is the default namespace). Any prefix,
+    including the empty prefix for the default namespace, can be redefined to
+    refer to a different namespace at any time in an XML document. This is
+    more likely to happen to the default namespace than any other prefix. Here
+    is an example of this:</p>
+
+    <a name="xml_sample_1">‌</a>
+<blockquote class="source">
+<pre>
+    &lt;?xml version="1.0"?&gt;
+    
+    &lt;employees xmlns:postal="http://postal.ie/spec-1.0"
+               xmlns:email="http://www.w3c.org/some-spec-3.2"&gt;
+        &lt;employee&gt;
+            &lt;name&gt;Bob Worker&lt;/name&gt;
+            &lt;postal:address&gt;
+                &lt;postal:street&gt;Nassau Street&lt;/postal:street&gt;
+                &lt;postal:city&gt;Dublin 3&lt;/postal:city&gt;
+                &lt;postal:country&gt;Ireland&lt;/postal:country&gt;
+            &lt;/postal:address&gt;
+            &lt;email:address&gt;bob.worker@hisjob.ie&lt;/email:address&gt;
+        &lt;/employee&gt;
+    &lt;/employees&gt;
+</pre>
+</blockquote>
+
+    <p>This short document has two namespace declarations, one with the prefix
+    <code>"postal"</code> and another with the prefix <code>"email"</code>. The
+    prefixes are used to distinguish between elements for e-mail addresses and
+    regular postal addresses. In addition to these two namespaces there is also
+    an initial (unnamed) default namespace being used for the
+    <code>&lt;name&gt;</code> and <code>&lt;employee&gt;</code> tags. The scope of the
+    default namespace is in this case the whole document, while the scope of
+    the other two declared namespaces is the <code>&lt;employees&gt;</code>
+    element and its children.</p>
+
+    <p>By changing the default namespace we could have made the document a
+    little bit simpler and more readable:</p>
+
+    <a name="xml_sample_2">‌</a>
+<blockquote class="source">
+<pre>
+    &lt;?xml version="1.0"?&gt;
+    
+    &lt;employees xmlns:email="http://www.w3c.org/some-spec-3.2"&gt;
+        &lt;employee&gt;
+            &lt;name&gt;Bob Worker&lt;/name&gt;
+            &lt;address xmlns="http://postal.ie/spec-1.0"&gt;
+                &lt;street&gt;Nassau Street&lt;/street&gt;
+                &lt;city&gt;Dublin 3&lt;/city&gt;
+                &lt;country&gt;Ireland&lt;/country&gt;
+            &lt;/address&gt;
+            &lt;email:address&gt;bob.worker@hisjob.ie&lt;/email:address&gt;
+        &lt;/employee&gt;
+    &lt;/employees&gt;
+</pre>
+</blockquote>
+
+    <p>The default namespace is redefined for the <code>&lt;address&gt;</code> node
+    and its children, so there is no need to specify the street as
+    <code>&lt;postal:street&gt;</code> - just plain <code>&lt;street&gt;</code> is
+    sufficient. Note that this also applies to the <code>&lt;address&gt;</code>
+    where the namespace is first defined. This is in effect a redefinition of
+    the default namespace.</p>
+  <a name="overview">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Namespace overview</h3>
+
+    <p>Namespaces will have to be handled in three separate parts of the XSLT
+    compiler:</p>
+
+    <a name="all_namespaces">‌</a>
+      <p>
+<img src="all_namespaces.gif" alt="all_namespaces.gif" />
+</p>
+      <p>
+<b>
+<i>Figure 1: Namespace handlers in the XSLTC</i>
+</b>
+</p>
+
+    <p>The most obvious is the namespaces in the source XML document
+    (marked <a href="#NSA">"NS A"</a> in figure 1). These namespaces will be
+    handled by our DOM implementation class. The source XSL stylesheet also
+    has its own set of namespaces (<a href="NSB.html">"NS B"</a>) - one of which
+    is the XSL namespace. These namespaces will be handled at run-time and
+    whatever information that is needed to process there should be compiled
+    into the translet. There is also a set of namespaces that will be used in
+    the resulting document (<a href="NSC.html">"NS C"</a>). This is an
+    intersection of the first two. The output document should not contain any
+    more namespace declarations than necessary.</p>
+
+    <a name="NSA">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>The DOM &amp; namespaces</h3>
+    <ul>
+      <li>
+<a href="#dom-namespace">DOM node types and namespace types</a>
+</li>
+      <li>
+<a href="#assign">Assigning namespace types to DOM nodes</a>
+</li>                
+    </ul>
+    <a name="dom-namespace">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>DOM node types and namespace types</h4>
+
+    <p>Refer to the XSLTC <a href="xsltc_runtime.html">runtime
+    environment design</a> document for a description of node types before
+    proceeding. In short, each node in the our DOM implementation is
+    represented by a simple integer. By using this integer as an index into an
+    array called <code>_type[]</code> we can find the type of the node.</p>
+
+    <p>The type of the node is an integer representing the type of element the
+    node is. All elements <code>&lt;bob&gt;</code> will be given the same type,
+    all text nodes will be given the same type, and so on. By using the node
+    type as an index an array called <code>_namesArray[]</code> we can find the
+    name of the element type - in this case "bob". This code fragment shows
+    how you can, with our current implementation, find the name of a node:</p>
+
+<blockquote class="source">
+<pre>
+    int    node = iterator.getNext();  // get next node
+    int    type = _type[node];         // get node type
+    String name = _namesArray[type];   // get node name
+</pre>
+</blockquote>
+
+    <p>We want to keep the one-type-per-node arrangement, since that lets us
+    produce fairly efficient code. One type in the DOM maps to one type in
+    the compiled translet. What we could do to represent the namespace for
+    each node in the DOM is to add a <code>_namespaceType[]</code> array that holds
+    namespace types. Each node type maps to a namespace type, and each
+    namespace type maps to a namespace name (and a prefix with a limited
+    scope):</p>
+
+    <a name="type_mappings">‌</a>
+    <p>
+<img src="type_mappings.gif" alt="type_mappings.gif" />
+</p>
+      <p>
+<b>
+<i>Figure 2: Mapping between node types/names, namespace types/names</i>
+</b>
+</p>
+
+    <p>This code fragment shows how we could get the namespace name for a node:</p>
+
+<blockquote class="source">
+<pre>
+    int    node      = iterator.getNext();    // get next node
+    int    type      = _type[node];           // get node type
+    int    nstype    = _namespace[type];      // get namespace type
+    String name      = _namesArray[type];     // get node element name
+    String namespace = _nsNamesArray[nstype]; // get node namespace name
+</pre>
+</blockquote>
+
+    <p>Note that namespace prefixes are not included here. Namespace prefixes
+    are local to the XML document and will be expanded to the full namespace
+    names when the nodes are put into the DOM. This, however, is not a trivial
+    matter.</p>
+    <a name="assign">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Assigning namespace types to DOM nodes</h4>
+
+    <p>We cannot simply have a single namespace prefix array similar to the
+    <code>_namespaceArray[]</code> array for mapping a namespace type to a single
+    prefix. This because prefixes can refer to different namespaces depending
+    on where in the document the prefixes are being used. In our last example's
+    <a href="xml_sample_2.html">XML fragment</a> the empty prefix <code>""</code>
+    initially referred to the default namespace (the one with no name - just
+    like a Clint Eastwood character). Later on in the document the empty
+    prefix is changed to refer to a namespace called 
+    <code>"http://postal.ie/spec-1.0"</code>.</p>
+
+    <p>Namespace prefixes are only relevant at the time when the XML document
+    is parsed and the DOM is built. Once we have the DOM completed we only need
+    a table that maps each node type to a namespace type, and another array of
+    all the names of the different namespaces. So what we want to end up with
+    is something like this:</p>
+
+     <p>
+<img src="dom_namespace1.gif" alt="dom_namespace1.gif" />
+</p>
+     <p>
+<b>
+<i>Figure 3: Each namespace references in the DOM gets one entry</i>
+</b>
+</p>
+
+    <p>The namespace table has one entry for each namespace, nomatter how many
+    prefixes were used ro reference this namespace in the DOM. To build this
+    array we need a temporary data structure used by the DOM builder. This
+    structure is a hashtable - where the various prefixes are used for the
+    hash values. The contents of each entry in the table will be a small stack
+    where previous meanings of each prefix will be stored:</p>
+
+     <p>
+<img src="dom_namespace2.gif" alt="dom_namespace2.gif" />
+</p>
+     <p>
+<b>
+<i>Figure 4: Temporary data structure used by the DOM builder</i>
+</b>
+</p>
+
+    <p>When the first node is encountered we define a new namespace
+    <code>"foo"</code> and assign this namespace type/index 1 (the default 
+    namespace <code>""</code> has index 0). At the same time we use the prefix
+    <code>"A"</code> for a lookup in the hashtable. This gives us
+    an integer stack used for the prefix <code>"A"</code>. We push the namespace
+    type 1 on this stack. From now on, until <code>"A"</code> is pop'ed off this
+    stack, the prefix <code>"A"</code> will map to namespace type 1, which
+    represents the namespace URI <code>"foo"</code>.</p>
+
+    <p>We then encounter the next node with a new namespace definition with
+    the same namespace prefix, we create a new namespace <code>"bar"</code> and
+    we put that in the namespace table under type 2. Again we use the prefix
+    <code>"A"</code> as an entry into the namespace prefix table and we get the
+    same integer stack. We now push namespace type 2 on the stack, so that
+    namespace prefix <code>"A"</code> maps to namespace URI <code>"bar"</code>. When
+    we have traversed this node's children we need to pop the integer off the
+    stack, so when we're back at the first node the prefix <code>"A"</code> again
+    will point to namespace type 0, which maps to <code>"foo"</code>. To keep
+    track of what nodes had what namespace declarations, we use a namespace
+    declaration stack:</p>
+
+    <p>
+<img src="dom_namespace3.gif" alt="dom_namespace3.gif" />
+</p>
+     <p>
+<b>
+<i>Figure 5: Namespace declaration stack</i>
+</b>
+</p>
+     
+    <p>Every namespace declaration is pushed on the namespace declaration
+    stack. This stack holds the node index for where the namespace was
+    declared, and a reference to the prefix stack for this declaration.
+    The <code>endElement()</code> method of the DOMBuilder class will need to
+    remove namespace declaration for the node that is closed. This is done
+    by first checking the namespace declaration stack for any namespaces
+    declared by this node. If any declarations are found these are un-declared
+    by poping the namespace prefixes off the respective prefix stack(s), and
+    then poping the entry/entries for this node off the namespace declaration
+    stack.</p>
+
+    <p>The <code>endDocument()</code> method will build an array that contains
+    all namespaces used in the source XML document - <code>_nsNamesArray[]</code>
+    - which holds the URIs of all refered namespaces. This method also builds
+    an array that maps all DOM node types to namespace types. This two arrays
+    are accessed through two new methods in the DOM interface:</p>
+
+<blockquote class="source">
+<pre>
+    public String getNamespaceName(int node);
+    public int    getNamespaceType(int node);
+</pre>
+</blockquote>
+
+  <a name="NSB">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Namespaces in the XSL stylesheet</h3>
+  <ul>
+    <li>
+<a href="#store-access">Storing and accessing namespace information</a>
+</li>
+    <li>
+<a href="#mapdom-stylesheet">Mapping DOM namespaces to stylesheet namespaces</a>
+</li>
+    <li>
+<a href="#wildcards">Wildcards and namespaces</a>
+</li>
+  </ul>
+    <a name="store-access">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Storing and accessing namespace information</h4>
+    <p>The SymbolTable class has three datastructures that are used to hold
+    namespace information:</p>
+
+    <ul>
+      <li>
+        First there is the <code>_namespaces[]</code> Hashtable that maps the names
+        of in-scope namespace to their respective prefixes. Each key in the
+        Hashtable object has a stack. A new prefix is pushed on the stack for
+        each new declaration of a namespace.
+      </li>
+      <li>
+        Then there is the <code>_prefixes[]</code> Hashtable. This has the reverse
+        function of the <code>_namespaces[]</code> Hashtable - it maps from
+        prefixes to namespaces.
+      </li>
+      <li>
+        There is also a hashtable that is used for implementing the
+        <code>&lt;xsl:namespace-alias&gt;</code> element. The keys in this
+        hashtable is taken from the <code>stylesheet-prefix</code> attribute of
+        this element, and the resulting prefix (from the <code>result-prefix</code>
+        attribute) is used as the value for each key.
+      </li>
+    </ul>
+
+    <p>The SymbolTable class offers 4 methods for accessing these data
+    structures:</p>
+
+<blockquote class="source">
+<pre>
+    public void   pushNamespace(String prefix, String uri);
+    public void   popNamespace(String prefix);
+    public String lookupPrefix(String uri);
+    public String lookupNamespace(String prefix);
+</pre>
+</blockquote>
+
+    <p>These methods are wrapped by two methods in the Parser class (a Parser
+    object alwas has a SymbolTable object):</p>
+<blockquote class="source">
+<pre>
+    // This method pushes all namespaces declared within a single element
+    public void pushNamespaces(ElementEx element);
+    // This method pops all namespaces declared within a single element
+    public void popNamespaces(ElementEx element);
+</pre>
+</blockquote>
+
+    <p>The translet class has, just like the DOM, a <code>namesArray[]</code>
+    structure for holding the expanded QNames of all accessed elements. The
+    compiled translet fills this array in its constructor. When the translet
+    has built the DOM (a DOMImpl object), it passes the DOM to the a DOM
+    adapter (a DOMAdapter object) together with the names array. The DOM
+    adapter then maps the translet's types to the DOM's types.</p>
+   <a name="mapdom-stylesheet">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Mapping DOM namespaces and stylesheet namespaces</h4>
+
+    <p>Each entry in the DOM's <code>_namesArray[]</code> is expanded to contain
+    the full QName, so that instead of containing <code>prefix:localname</code> it
+    will now contain <code>namespace-uri:localname</code>. In this way the expanded
+    QName in the translet will match the exanded QName in the DOM. This assures
+    matches on full QNames, but does not do much for <code>match="A:*"</code> type
+    XPath patterns. This is where our main challenge lies.</p>
+    <a name="wildcards">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Wildcards and namespaces</h4>
+
+    <p>The original implementation of the XSLTC runtime environment would
+    only allow matches on "<code>*</code>" and "<code>@*</code>" patterns. This was
+    achieved by mapping all elements that could not be mapped to a translet
+    type to 3 (DOM.ELEMENT type), and similarly all unknown attributes to
+    type 4 (DOM.ATTRIBUTE type). The main <code>switch()</code> statement in
+    <code>applyTemplates()</code> would then have a separate "<code>case()</code>"
+    for each of these. (Under each <code>case()</code> you might have to check
+    for the node's parents in case you were matching on "<code>path/*</code>"-type
+    patterns.) This figure shows how that was done:</p>
+
+    <a name="match_namespace1">‌</a>
+    <p>
+<img src="match_namespace1.gif" alt="match_namespace1.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 6: Previous pattern matching</i>
+</b>
+</p>
+
+    <p>The "Node test" box here represents the "<code>switch()</code>" statement.
+    The "Node parent test" box represent each "<code>case:</code>" for that 
+    <code>switch()</code> statement. There is one <code>case:</code> for each know
+    translet node type. For each node type we have to check for any parent
+    patterns - for instance, for the pattern "<code>/foo/bar/baz</code>", we will
+    get a match with <code>case "baz"</code>, and we have to check that the parent
+    node is "<code>bar</code>" and that the grandparent is "<code>foo</code>" before
+    we can say that we have a hit. The "Element parent test" is the test that
+    is done all DOM nodes that do not directly match any translet types. This
+    is the test for "<code>*</code>" or "<code>foo/*</code>". Similarly we have a
+    "<code>case:</code>" for match on attributes ("<code>@*</code>").</p>
+
+    <p>What we now want to achieve is to insert a check for patterns on the
+    format "<code>ns:*</code>", "<code>foo/ns:*</code>" or "<code>ns:@*</code>", which
+    this figure illustrates:</p>
+
+    <a name="match_namespace2">‌</a>
+      <p>
+<img src="match_namespace2.gif" alt="match_namespace2.gif" />
+</p>
+      <p>
+<b>
+<i>Figure 7: Pattern matching with namespace tests</i>
+</b>
+</p>
+
+
+    <p>Each node in the DOM needs a namespace type as well as the QName type.
+    With this type we can match wildcard rules to any specific namespace.
+    So after any checks have been done on the whole QName of a node (the type),
+    we can match on the namespace type of the node. The main dispatch
+    <code>switch()</code> in <code>applyTemplates()</code> must be changed from this:</p>
+
+    <blockquote class="source">
+<pre>
+        public void applyTemplates(DOM dom, NodeIterator iterator,
+                                   TransletOutputHandler handler) {
+
+            // Get next node from iterator
+            while ((node = iterator.next()) != END) {
+                // Get internal node type
+                final int type = DOM.getType(node);
+                switch(type) {
+                case DOM.ROOT:      // Match on "/" pattern
+                    handleRootNode();       
+                    break;
+                case DOM.TEXT:      // Handle text nodes
+                    handleText();
+                    break;
+                case DOM.ELEMENT:   // Match on "*" pattern
+                    handleWildcardElement();
+                    break;
+                case DOM.ATTRIBUTE: // Handle on "@*" pattern
+                    handleWildcardElement();
+                    break;
+                case nodeType1:     // Handle 1st known element type
+                    compiledCodeForType1();
+                    break;
+                    :
+                    :
+                    :
+                case nodeTypeN:   // Handle nth known element type
+                    compiledCodeForTypeN();
+                    break;
+                default:
+                   NodeIterator newIterator = DOM.getChildren(node);
+                   applyTemplates(DOM, newIterator, handler);
+                   break;
+                }
+            }
+            return;
+        }
+</pre>
+</blockquote>
+
+    <p>To something like this:</p>
+
+    <blockquote class="source">
+<pre>
+        public void applyTemplates(DOM dom, NodeIterator iterator,
+                                   TransletOutputHandler handler) {
+
+            // Get next node from iterator
+            while ((node = iterator.next()) != END) {
+
+                // First run check on node type
+                final int type = DOM.getType(node);
+                switch(type) {
+                case DOM.ROOT:      // Match on "/" pattern
+                    handleRootNode();
+                    continue;
+                case DOM.TEXT:      // Handle text nodes
+                    handleText();
+                    continue;
+                case DOM.ELEMENT:   // Not handled here!!!
+                    break;
+                case DOM.ATTRIBUTE: // Not handled here!!!
+                    break;
+                case nodeType1:     // Handle 1st known element type
+                    if (compiledCodeForType1() == match) continue;
+                    break;
+                    :
+                    :
+                    :
+                case nodeTypeN:     // Handle nth known element type
+                    if (compiledCodeForTypeN() == match) continue;
+                    break;
+                default:
+                    break;
+                }
+
+                // Then run check on namespace type
+                final int namespace = DOM.getNamespace(type);
+                switch(namespace) {
+                case 0: // Handle nodes matching 1st known namespace
+                    if (handleThisNamespace() == match) continue;
+                    break;
+                case 1: // Handle nodes matching 2nd known namespace
+                    if (handleOtherNamespace() == match) continue;
+                    break;
+                }
+
+                // Finally check on element/attribute wildcard
+                if (type == DOM.ELEMENT) {
+                    if (handleWildcardElement() == match)
+                        continue;
+                    else {
+                       // The default action for elements
+                       NodeIterator newIterator = DOM.getChildren(node);
+                       applyTemplates(DOM, newIterator, handler);
+                    }
+                }
+                else if (type == DOM.ATTRIBUTE) {
+                    handleWildcardAttribute();
+                    continue; 
+                }
+            }
+        }
+</pre>
+</blockquote>
+
+    <p>First note that the default action (iterate on children) does not hold for
+    attributes, since attribute nodes do not have children. Then note that the way
+    the three levels of tests are ordered is consistent with the way patterns
+    should be prioritised:</p>
+
+    <ul>
+
+      <li>
+<b>Match on element/attribute types:</b>
+</li>
+        <ul>
+          <li>
+<code>match="/"</code> - match on the root node</li>
+          <li>
+<code>match="B"</code> - match on any B element</li>
+          <li>
+<code>match="A/B"</code> - match on B elements with A parent</li>
+          <li>
+<code>match="A | B"</code> - match on B or A element</li>
+          <li>
+<code>match="foo:B"</code> - match on B element within "foo" namespace</li>
+        </ul>
+        <li>
+<b>Match on namespace:</b>
+</li>
+        <ul>
+          <li>
+<code>match="foo:*"</code> - match on any element within "foo" namespace</li>
+          <li>
+<code>match="foo:@*"</code> - match on any attribute within "foo" namespace</li>
+          <li>
+<code>match="A/foo:*"</code> - match on any element within "foo" namespace with A parent</li>
+          <li>
+<code>match="A/foo:@*"</code> - match on any attribute within "foo" namespace with A parent</li>
+        </ul>      
+
+      <li>
+<b>Match on wildcard:</b> </li>
+        <ul>
+          <li>
+<code>match="*"</code> - match on any element</li>
+          <li>
+<code>match="@*"</code> - match on any attribute</li>
+          <li>
+<code>match="A/*"</code> - match on any element with A parent</li>
+          <li>
+<code>match="A/@*"</code> - match on any attribute with A parent</li>
+        </ul>
+     
+    </ul>
+
+     <a name="NSC">‌</a>
+     <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Namespaces in the output document</h3>
+
+    <p>These are the categories of namespaces that end up in the output
+    document:</p>
+
+    <ul>
+      <li>
+        Namespaces used in literal elements/attributes in the stylesheet. These
+        namespaces should be declared <b>once</b> before use in the output
+        document. These elements are copied to the output document independent
+        of namespaces in the input XML document. However, the namespaces can
+        be declared using the same prefix, such that a namespace used by a
+        literal result element can overshadow a namespace from the DOM.
+      </li>
+      <li>
+        Namespaces from elements in the stylesheet that match elements in the
+        DOM. No namespaces from the DOM should be copied to the output document
+        unless they are actually referenced in the stylesheet. No namespaces
+        from the stylesheet should be copied to the output document unless the
+        elements in which they are references match elements in the DOM.
+      </li>
+    </ul>
+
+      <a name="output_namespaces1">‌</a>
+      <p>
+<img src="output_namespaces1.gif" alt="output_namespaces1.gif" />
+</p>
+      <p>
+<b>
+<i>Figure 8: Namespace declaration in the output document</i>
+</b>
+</p>    
+
+    <p>Any literal element that ends up in the output document must declare all
+    namespaces that were declared in the <code>&lt;xsl:stylesheet&lt;</code>
+    element. Exceptions are namespaces that are listed in this element's
+    <code>exclude-result-prefixes</code> or <code>extension-element-prefixes</code>
+    attributes. These namespaces should only be declared if they are referenced
+    in the output.</p>
+
+    <p>Literal elements should only declare namespaces when necessary. A
+    literal element should only declare a namespace in the case where it
+    references a namespace using prefix that is not in scope for this
+    namespace. The output handler will take care of this problem. All namespace
+    declarations are put in the output document using the output handler's
+    <code>declarenamespace()</code> method. This method will monitor all namespace
+    declarations and make sure that no unnecessary declarations are output.
+    The datastructures used for this are similar to those used to track
+    namespaces in the XSL stylesheet:</p>
+
+    <a name="output_namespaces2">‌</a>
+    <p>
+<img src="output_namespaces2.gif" alt="output_namespaces2.gif" />
+</p>
+      <p>
+<b>
+<i>Figure 9: Handling Namespace declarations in the output document</i>
+</b>
+</p>
+
+ 
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsltc_native_api.html b/xalan-j/xsltc/xsltc_native_api.html
new file mode 100644
index 0000000..8a2ba83
--- /dev/null
+++ b/xalan-j/xsltc/xsltc_native_api.html
@@ -0,0 +1,555 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC Native API Documentation</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC Native API Documentation</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>Xsltc Native API<br />
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC Native API Documentation</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XSLTC Compiler API</h3>
+
+    <p>XSLTC's native API is represented by the
+    <code>org.apache.xalan.xsltc.compiler.XSLTC</code> class. Any application
+    using XSLTC's native API should only have to access methods in this class
+    in order to compile a stylesheet (or a set or stylesheets) into one or
+    more Java classes. The <code>XSLTC</code> has an empty constructor. The
+    class needs to be initialized before each compilation by a call to:</p>
+<blockquote class="source">
+<pre>
+    public void init();
+</pre>
+</blockquote>
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Compile methods</h4>
+    <p>There is a set of methods for compiling one or more stylesheets into a
+    set of Java classes. The stylesheet can be specified either as a
+    <code>URL</code>, <code>InputStream</code>, <code>InputSource</code> or
+    a <code>Vector</code> containing a set of <code>URL</code>s pointing to
+    stylesheets:</p>
+<blockquote class="source">
+<pre>
+    public boolean compile(URL url);
+    public boolean compile(URL url, String transletName);
+    public boolean compile(InputStream stream, String transletName);
+    public boolean compile(InputSource input, String transletName);
+    public boolean compile(Vector stylesheets);</pre>
+</blockquote>
+
+    <p>The default behaviour is to output the compiled Java class(es) to one or
+    more Java classes in the current working directory. The name of the main
+    translet class will be obtained from (in order of priority):</p>
+
+    <ul>
+      <li>that specified in the <code>compile()</code> method</li>
+      <li>if none is specified (if the parameter is 'null') the name will be
+      generated from the filename specified by the input URL/file/stream</li>
+      <li>the default translet name (set by <code>setClassName()</code>)</li>
+      <li>the built-in default class name <code>"GregorSamsa"</code>
+</li>
+    </ul>
+
+    <p>Additional Java classes will be generated for complex stylesheets. These
+    classes represent elements such as predicates, sort-records, etc. in the
+    stylesheet. Additional classes share the same root name as the main translet
+    class, with a suffix containing a '$'-sign and a sequence number. The result
+    of a single compilation of a complex stylesheet could be:</p>
+<blockquote class="source">
+<pre>
+    GregorSamsa.java
+    GregorSamsa$0.java
+    GregorSamsa$1.java
+    GregorSamsa$2.java
+    GregorSamsa$3.java</pre>
+</blockquote>
+
+    <p>It is not always desireable having these classes dumped to files in the
+    current working directory. There is one <code>compile()</code> method that
+    will return the Java class definitions as bytecodes. The bytecodes are
+    returned in a two-dimmensional <code>byte</code> array. Each byte-array
+    contains the bytecodes for one Java class:</p>
+<blockquote class="source">
+<pre>
+    public byte[][] compile(String name, InputSource input);</pre>
+</blockquote>
+
+    <p>Alternatively, one can first compile the stylesheet into one or more
+    Java class files, and then also retrieve the bytecodes from the compiler:</p>
+<blockquote class="source">
+<pre>
+    public byte[][] getBytecodes();</pre>
+</blockquote>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Output settings</h4>
+
+    <p>The default (root) name for the generated Java classes can be set and
+    retrieved by calls to these methods:</p>
+<blockquote class="source">
+<pre>
+    public void setClassName(String className);
+    public String getClassName();</pre>
+</blockquote>
+
+    <p>One can also specify a package to place the classes in:</p>
+<blockquote class="source">
+<pre>
+    public void setPackageName(String package);</pre>
+</blockquote>
+
+    <p>The generated classes can also be wrapped inside a single Java archive
+    (JAR-file):</p>
+<blockquote class="source">
+<pre>
+    public void setJarFileName(String jarFileName);
+    public String getJarFileName();</pre>
+</blockquote>
+
+    <p>The result file(s) need not be output in the current working directory.
+    Specify the directory to output to by calling:</p>
+<blockquote class="source">
+<pre>
+    public boolean setDestDirectory(String directory);</pre>
+</blockquote>
+
+    
+
+    <a name="document-locator">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Input document locator interface</h4>
+
+    <p>XSLTC's compiler has an interface that a client application can implement
+    to provide XSL input from alternative sources. Implementing and using this
+    interface is necessary when the top-level stylesheet contains one or more
+    <code>&lt;xsl:include&gt;</code> and <code>&lt;xsl:import&gt;</code>
+    elements that reference stylesheets that cannot be read using standard
+    <code>File</code> or <code>URL</code> classes. The interface that a client
+    must implement is <code>org.apache.xalan.xsltc.compiler.SourceLoader</code>,
+    and its only method is:</p>
+<blockquote class="source">
+<pre>
+    public InputSource loadSource(String href, String context, XSLTC xsltc);</pre>
+</blockquote>
+
+    <p>The compiler class, <code>XSLTC</code>, has a method for specifying the
+    implementation of this interface:</p>
+<blockquote class="source">
+<pre>
+    public void setSourceLoader(SourceLoader loader);</pre>
+</blockquote>
+
+    <p>This interface shares the same purpose as the <code>URIResolver</code>
+    interface in the JAXP/TrAX API.</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Debug settings</h4>
+
+    <p>XSLTC can be forced to output debug messages and stack dumps:</p>
+<blockquote class="source">
+<pre>
+    public void setDebug(boolean debug);
+    public boolean debug();</pre>
+</blockquote>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Error handling</h4>
+
+    <p>All <code>compile()</code> methods return 'true' if the compilation
+    succeeded. The compiler could in such case still generate warning messages.
+    These message could be retrieved a <code>Vector</code> of strings or
+    output directlry to stderr:</p>
+<blockquote class="source">
+<pre>
+    public Vector getWarnings();
+    public void printWarnings();</pre>
+</blockquote>
+
+    <p>All <code>compile()</code> methods will return 'false' if any serious
+    errors prevented the compiler from generating any Java classes. Error
+    messages are handled similar to warning messages:</p>
+<blockquote class="source">
+<pre>
+    public Vector getErrors();
+    public void printErrors();</pre>
+</blockquote>
+
+    <p>Note that warning messages are not returned/output by these two methods.
+    A client application should pass both warning  and error messages
+    to its user.</p>
+
+    
+
+  
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XSLTC Transform API</h3>
+
+    <p>The steps described in this chapter are covered in these sample
+    source code files:</p>
+
+    <ul>
+      <li>
+<code>org.apache.xalan.xsltc.cmdline.Transform</code>
+</li>
+      <li>
+<code>xml-xalan/java/samples/CompiledApplet/TransformApplet.java</code>
+</li>
+      <li>
+<code>xml-xalan/java/samples/CompiledBrazil/TransformHandler.java</code>
+</li>
+      <li>
+<code>xml-xalan/java/samples/CompiledEJB/TransformBean.java</code>
+</li>
+      <li>
+<code>xml-xalan/java/samples/CompiledEJB/TransformHome.java</code>
+</li>
+      <li>
+<code>xml-xalan/java/samples/CompiledEJB/TransformRemote.java</code>
+</li>
+      <li>
+<code>xml-xalan/java/samples/CompiledEJB/TransformServlet.java</code>
+</li>
+      <li>
+<code>xml-xalan/java/samples/CompiledServlet/CompileServlet.java</code>
+</li>
+      <li>
+<code>xml-xalan/java/samples/CompiledServlet/TransformServlet.java</code>
+</li>
+    </ul>
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Transformation input handling</h4>
+
+    <p>The main input document must be parsed using a SAX handler. The main SAX
+    events (<code>ContentHandler</code>) and lexical declarations
+    (<code>LexicalHandler</code>) are handled by the internal DOM builder.
+    The classes that make up the internal DOM are:</p>
+<blockquote class="source">
+<pre>
+    org.apache.xalan.xsltc.DOM;             - DOM interface
+    org.apache.xalan.xsltc.dom.DOMImpl;     - DOM implementation
+    org.apache.xalan.xsltc.dom.DOMAdapter;  - DOM-to-translet mapper
+    org.apache.xalan.xsltc.dom.MultiDOM;    - DOM multiplexer
+    org.apache.xalan.xsltc.dom.DOMBuilder;  - DOM builder interface</pre>
+</blockquote>
+
+    <p>The <code>DOMBuilder</code> interface is a wrapper for the standard SAX
+    <code>ContentHandler</code> and <code>LexicalHandler</code> interfaces.
+    The <code>DOMBuilder</code> contains both these interfaces, and it is
+    implemented by an inner class of the <code>DOMImpl</code> class. To build
+    the internal DOM, one has to go through these steps:</p>
+<blockquote class="source">
+<pre>
+    // Create a SAX parser and get the XMLReader object it uses
+    final SAXParserFactory factory = SAXParserFactory.newInstance();
+    try {
+	factory.setFeature(Constants.NAMESPACE_FEATURE,true);
+    }
+    catch (Exception e) {
+	factory.setNamespaceAware(true);
+    }
+    final SAXParser parser = factory.newSAXParser();
+    final XMLReader reader = parser.getXMLReader();
+
+     // Set the DOM's DOM builder as the XMLReader's SAX2 ContentHandler
+    final DOMImpl dom = new DOMImpl();
+    DOMBuilder builder = dom.getBuilder();
+    reader.setContentHandler(builder);
+
+     // Set the DOM's DOM builder as the XMLReader's SAX2 LexicalHandler
+    try {
+	String prop = "http://xml.org/sax/properties/lexical-handler";
+	reader.setProperty(prop, builder);
+    }
+    catch (SAXException e) {
+	 // Can be quitely ignored...
+    }
+
+     // Pass the document URI or file-name to the DOM
+    dom.setDocumentURI(uri);
+     // Parse the input document to populate the DOM
+    reader.parse(uri);</pre>
+</blockquote>
+
+    <p>The input XML document may contain of reference a DTD. A DTD must be
+    processed by XSLTC in order to support the <code>id()</code> and
+    <code>unparsed-entity-uri()</code> functions.
+    The <code>org.apache.xalan.xsltc.dom.DTDMonitor</code> class can handle
+    DTD declarations and aggregate them for use by a translet. Create your
+    <code>DTDMonitor</code> instance by passing it a reference to your SAX
+    parser:</p>
+<blockquote class="source">
+<pre>
+     // Create a DTD monitor and pass it to the XMLReader object
+    final DTDMonitor dtd = new DTDMonitor(reader);</pre>
+</blockquote>
+
+    <p>This call ensures that an index is built for all <code>ID</code>
+    attributes described in the DTD:</p>
+<blockquote class="source">
+<pre>
+     // If there are any elements with ID attributes, build an index
+    dtd.buildIdIndex(dom, 0, _translet);</pre>
+</blockquote>
+
+    <p>And this call ensures that the translet is passed all unparsed entities
+    described in the DTD:</p>
+<blockquote class="source">
+<pre>
+    translet.setDTDMonitor(dtd);</pre>
+</blockquote>
+
+    <p>We'll tell you how to create the translet instance in the next section.</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>The translet instance</h4>
+
+    <p>All compiled translets inherit from the <code>AbstractTranslet</code>
+    class, so it is safe to cast your tranlet instance to that class:</p>
+<blockquote class="source">
+<pre>
+    Class transletClass = Class.forName(transletName);
+    AbstractTranslet translet = (AbstractTranslet)transletClass.newInstance();</pre>
+</blockquote>
+
+    <p>Note that the translet  instance  is not reusable, so you would
+    benefit from keeping the reference to the translet class.</p>
+
+    <p>Once you have your translet instance you can start playing around with
+    it. First you want to pass parameters to it:</p>
+<blockquote class="source">
+<pre>
+    // Pass global parameters
+    translet.addParameter("my-param", "my-value");</pre>
+</blockquote>
+
+    <p>You also want to remember to pass your DTD handler to the translet.
+    (See previous section.)</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Preparing the output handler</h4>
+
+    <p>The compiled translet does not contain all the functionality needed to
+    format the output document. This is handled by our output post-processor
+    <code>org.apache.xalan.xsltc.runtime.TextOutput</code>. This class needs
+    to be instanciated with three parameters; a SAX <code>ContentHandler</code>,
+    a <code>LexicalHandler</code> and a string containing the desired output
+    encoding. The user should normally provide the two handlers, and the
+    output encoding can be obtained from a field in the translet:</p>
+<blockquote class="source">
+<pre>
+    // Get the output encoding (from any &lt;xsl:output&gt; element
+    String encoding = translet._encoding;
+
+    // Create a translet output handler and plug in the SAX handlers
+    TextOutput textOutput = new TextOutput(myContentHandler, myLexicalHandlere, encoding);</pre>
+</blockquote>
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Transformation</h4>
+
+    <p>With the internal DOM built, the DTD monitor in place, and the output
+    handler set up, we're ready to run the actual transformation:</p>
+<blockquote class="source">
+<pre>
+    // Transform and pass output to the translet output handler
+    translet.transform(dom, textOutput);</pre>
+</blockquote>
+ 
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>The DOM cache interface</h4>
+
+    <p>Parsing the input document and building the internal DOM is a fairly
+    expensive operation, and it is often desireable to build a cache holding
+    frequently accessed internal DOMs. An application using XSLTC's native
+    API can accomplish this by implementing the
+    <code>org.apache.xalan.xsltc.DOMCache</code> interface. The application will
+    still have to call the translet's <code>transform()</code> method with a
+    DOM from the cache. But, the translet may have to load additional documents
+    if the original stylesheet contained calls to the <code>document()</code>
+    function. The translet can be instructed to read DOMs from a cache by
+    calling this method:</p>
+<blockquote class="source">
+<pre>
+    public void setDOMCache(DOMCache cache);
+    public DOMCache getDOMCache();</pre>
+</blockquote>
+
+    
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsltc_overview.html b/xalan-j/xsltc/xsltc_overview.html
new file mode 100644
index 0000000..3ad0f94
--- /dev/null
+++ b/xalan-j/xsltc/xsltc_overview.html
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC stylesheet compiler overview</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC stylesheet compiler overview</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC stylesheet compiler overview</h2>
+   
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Using the Command-Line Utility</h3>
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsltc_performance.html b/xalan-j/xsltc/xsltc_performance.html
new file mode 100644
index 0000000..84c1f1e
--- /dev/null
+++ b/xalan-j/xsltc/xsltc_performance.html
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC Performance</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC Performance</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>Performance Hints<br />
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC Performance</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3>
+
+    <p>
+<b>XSLT is not a programming language!</b> Just so you remember.
+    XSLT is a declarative language and can be used by you to describe
+    <b>what</b> you want put in your output document and
+    <b>what</b> you want this output to look like. It does not describe
+    <b>how</b> these tasks should be carried. That is the job of the XSLT
+    processor. This document is <b>not</b> a "<b>
+<i>programmer's guide to XSLT</i>
+</b>"
+    and should not be considered as such. All XSLT processors have their
+    properties and ways of handling XSL elements and XPath properties. This
+    document will give you some insight into the XSLTC internals, so that you
+    can channel your stylesheets through XSLTC's shortest and most efficient
+    code paths.</p>
+
+    <p>XSLTC's performance has always been one of its key selling points.
+    (I should probably find a better term here, since we're giving XSLTC away
+    for free.) But, there are some specific patterns and expressions that are
+    not handled much better than with other interpretive XSLT processors, and
+    this document is an attempt to pinpoint these and to outline alternatives.
+    </p>
+
+  
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Contents</h3>
+    <ul>
+      <li>
+<a href="#pred">Avoid using predicates in '*' patterns</a>
+</li>
+      <li>
+<a href="#idkey">Avoid using id/key-patterns</a>
+</li>
+      <li>
+<a href="#union">Avoid union expressions where possible</a>
+</li>
+      <li>
+<a href="#sort">Sort stored node-sets once</a>
+</li>
+      <li>
+<a href="#cache">Cache input documents</a>
+</li>
+      <li>
+<a href="#trax">TrAX vs. native API</a>
+</li>
+    </ul>
+  
+
+  <a name="pred">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Avoid using predicates in wildcard patterns</h3>
+
+    <p>XSLTC gains its speed from the simple dispatch loop in the translet's
+    <code>applyTemplates()</code> method. This method uses a simple
+    <code>switch()</code> statement to choose the desired template based on
+    the current node's node type (an integer). By adding a pattern with a
+    wildcard (no type) and a predicate, XSLTC is forced to evaluate the
+    predicate for every single node.</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:template match="*[2]"&gt;</pre>
+</blockquote>
+
+    <p>The above pattern should be avoided by selecting the desired node when
+    using <code>&lt;xsl:apply-templates&gt;</code>. Use named templates or
+    modes to make sure you trigger the correct template:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:template match="/"&gt;
+      &lt;xsl:apply-templates select="bar"/&gt;
+    &lt;/xsl:template&gt;
+
+    &lt;xsl:template match="*[2]"/&gt;
+
+    &lt;xsl:template match="*"/&gt;</pre>
+</blockquote>
+
+    <p>can be replaced by:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:template match="/"&gt;
+      &lt;xsl:apply-templates select="bar"/&gt;
+      &lt;xsl:apply-templates select="bar[2]" mode="second"/&gt;
+    &lt;/xsl:template&gt;
+
+    &lt;xsl:template match="*" mode="second"/&gt;
+
+    &lt;xsl:template match="*"/&gt;</pre>
+</blockquote>
+
+    <p>This change will only improve performance if the stylesheet is fairly
+    large and has a good few templates (10 or more). Also note that the order
+    of the output is changed by this approach, so if the order is significant
+    you'll have to stick to the original stylesheet.</p>
+
+    <p>
+<b>Important note:</b> The type of pattern referred to as a
+    type-less pattern, as it does not match any specific node type. Such
+    patterns do in general degrade the performance of XSLTC. Type-less patterns
+    must be evaluated for every single node in the input document - causing a
+    general performance degradation.</p>
+
+  
+
+  <a name="idkey">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Avoid using id/key-patterns</h3>
+
+    <p>Id and key patterns can be used to trigger a template if the current
+    node has a specific id or has a specific value in a key's index:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:template match="id('some-value')"/&gt;
+
+    &lt;xsl:template match="key('key-name', 'some-value')"/&gt;</pre>
+</blockquote>
+
+    <p>Looking up a value/node-pair in an index does not require much processing
+    time at all. But, this is also a type-less pattern and can match any type
+    of node. This degrades XSLTC's performance, just like wildcard patterns
+    with predicates (see above paragraph).</p>
+
+  
+
+  <a name="union">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Avoid union expressions where possible</h3>
+
+    <p>Union expressions provide an all-in-one-go easy way of applying templates
+    to sets of nodes:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:apply-templates select="foo|bar|baz"/&gt;</pre>
+</blockquote>
+
+    <p>The union iterator that is used to implement union expressions is 
+    unfortunately not very efficient. If node order is not of importance, then
+    one can benefit from breaking the union up in several elements:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:apply-templates select="foo"/&gt;
+    &lt;xsl:apply-templates select="bar"/&gt;
+    &lt;xsl:apply-templates select="baz"/&gt;</pre>
+</blockquote>
+
+    <p>But, remeber that this will give you all <code>&lt;foo&gt;</code>
+    elements first, then all <code>&lt;bar&gt;</code> elements, and so on.
+    This is not always desirable. You may want to handle these elements in
+    the order in which they appear in the input document.</p>
+
+    <p>
+<b>Important note:</b> This does <b>not</b> apply to union patterns.
+    Using unions in patterns actually makes smaller and more efficient code,
+    as only one copy of the templete body has to be compiled. Use:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:template match="foo|bar|baz"/&gt;</pre>
+</blockquote>
+
+    <p>instead of:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:template match="foo"/&gt;
+    &lt;xsl:template match="bar"/&gt;
+    &lt;xsl:template match="baz"/&gt;</pre>
+</blockquote>
+ 
+  
+
+  <a name="sort">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Sort stored node-sets once</h3>
+
+    <p>This item is very obvious, but nevertheless easy to forget in some
+    complicated cases. If you put a result-tree fragment inside a variable, and
+    you want the nodes in a specific, sorted order, then sort the nodes as you
+    create the variable and not when you use it. Instead of:</p>
+<blockquote class="source">
+<pre>
+
+    &lt;xsl:variable name="bars"&gt;
+      &lt;xsl:copy-of select="//foo/bar"/&gt;
+    &lt;/xsl:variable&gt;
+
+    &lt;xsl:template match="/"&gt;
+      &lt;xsl:text&gt;List of bar's in sorted order:&amp;#xa;&lt;/xsl:text&gt;
+      &lt;xsl:for-each select="$bars-sorted"&gt;
+        &lt;xsl:value-of select="@name"/&gt;
+        &lt;xsl:text&gt;&amp;#xa;&lt;/xsl:text&gt;
+      &lt;/xsl:for-each&gt;
+    &lt;/xsl:template&gt;</pre>
+</blockquote>
+
+    <p>A better way, and with most XSLT processors the only legal way, is to
+    sort the result tree when creating it:</p>
+<blockquote class="source">
+<pre>
+
+    &lt;xsl:variable name="bars"&gt;
+      &lt;xsl:for-each select="//foo/bar"&gt;
+        &lt;xsl:sort select="@name"/&gt;
+        &lt;xsl:copy-of select="."/&gt;
+      &lt;/xsl:for-each&gt;
+    &lt;/xsl:variable&gt;
+
+    &lt;xsl:template match="/"&gt;
+      &lt;xsl:text&gt;List of bar's in sorted order:&amp;#xa;&lt;/xsl:text&gt;
+      &lt;xsl:for-each select="$bars"&gt;
+        &lt;xsl:value-of select="@name"/&gt;
+        &lt;xsl:text&gt;&amp;#xa;&lt;/xsl:text&gt;
+      &lt;/xsl:for-each&gt;
+    &lt;/xsl:template&gt;</pre>
+</blockquote>
+
+    <p>It is very common to sort node-sets returned by the id() and key()
+    functions. Instead of doing this sorting over and over again, one should
+    use a variable and store the node set in the desired sort order, and read
+    the node set from the variable whenever used.</p>
+
+  
+
+  <a name="cache">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Cache the input document</h3>
+
+    <p>All XSLT processors use an internal DOM-like structure, and XSLTC is no
+    exception. The internal DOM is tailored for the XSLTC design and can be
+    navigated efficiently by the translet. Building the internal DOM is a
+    rather slow process, and does very many cases take more time than the
+    actual transformation. This is a general rule, and does not only apply to
+    XSLTC. It is advisable, and common in most large-scale XSLT-based
+    applications, to create a cache for the input documents. Not only does this
+    prevent CPU- and memory-intensive DOM creation, but it also prevents several
+    translets from having their own private copies of common input documents.
+    Both XSLTC's  internal API and TrAX implementation provide ways of
+    implementing a decent input document cache:</p>
+
+    <ul>
+      <li>See <a href="#trax-cache">below</a> for a description of how
+      to do this using the TrAX interface.</li>
+
+      <li>The <a href="xsltc_native_api.html#document-locator">native API
+      documentation</a> contains a section on using the internal
+      <code>org.apache.xalan.xsltc.compiler.SourceLoader</code> interface.</li>
+    </ul>
+  
+
+  <a name="trax">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>TrAX vs. native API</h3>
+
+    <h5>TrAX performance benefits</h5>
+
+    <p>If XSLTC's two-step approach to XSLT processing suits your application
+    then there is no reason why you should not use the TrAX API. The API fits
+    very nicely in with XSLTC internals and processing model. In fact, you may
+    even benefit from using TrAX in cases where your stylesheet is compiled
+    into a large ammount of auxiliary classes. The most obvious benefit is that
+    the translet class and auxiliary classes are all bundled inside the
+    <code>Templates</code> object. Performance can also be improved due to the
+    fact that XSLTC chaches all auxiliary classes inside <code>Templates</code>
+    code, preventing the class loader from being invoked more than necessary.
+    This is just theory and no tests have been done, but you should see a
+    performance improvement when using XSLTC and TrAX in such cases.</p>
+
+    
+
+    <h5>Treat Templates objects as compiled translets</h5>
+
+    <p>When using TrAX, the <code>Templates</code> object should be considered
+    the result of a compilation. With XSLTC this is the actual case - the
+    <code>Templates</code> object contains the translet Java class(es). With
+    other XSLT processors the <code>Templates</code> directly or indirectly
+    contains data-structures represent all or parts of the input stylesheet.
+    The bottom line is: Create your <code>Templates</code> object once, cache
+    and re-use it as often as possible.</p>
+
+    
+
+    <a name="trax-cache">‌</a>
+    <h5>Input document caching</h5>
+
+    <p>An extension to the TrAX API allows input documents to be cached. The
+    extensions is a sub-class to the TrAX <code>Source</code> class, which can
+    be used to wrap XSLTC's internal DOM structures. This is described in
+    detail in the <a href="xsltc_trax_api.html">XSLTC TrAX API reference</a>.
+    </p>
+
+    <p>If you do chose to implement a DOM cache, you should have your cache
+    implement the <code>javax.xml.transform.URIResolver</code> interface so
+    that documents loaded by the <code>document()</code> function are also read
+    from your cache.</p>
+
+    
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsltc_predicates.html b/xalan-j/xsltc/xsltc_predicates.html
new file mode 100644
index 0000000..0adc2de
--- /dev/null
+++ b/xalan-j/xsltc/xsltc_predicates.html
@@ -0,0 +1,562 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC Predicate Handling</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC Predicate Handling</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>XPath Predicates<br />
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC Predicate Handling</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Definition</h3>
+
+  <p>According to Michael Kay's "XSLT Programmer's Reference" page
+  736, a predicate is "An expression used to filter which nodes are
+  selected by a particular step in a path expression, or to select a subset of
+  the nodes in a node-set. A Boolean expression selects the nodes for which the
+  predicate is true; a numeric expression selects the node at the position
+  given by the value of the expression, for example '[1]' selects the first
+  node.". Note that a predicate containing a boolean expression can
+  return zero, one or more nodes, while a predicate containing a numeric
+  expression can return only zero or one node.</p>
+
+  
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Examples</h3>
+
+  <p>I'll list a few examples that I can refer back to later on in this
+  document. All examples will use this XML document:</p>
+<blockquote class="source">
+<pre>
+    &lt;?xml version="1.0"?&gt;
+    &lt;doc&gt;
+      &lt;foo location="Drumcondra"&gt;
+        &lt;bar name="Cat and Cage"/&gt;
+        &lt;bar name="Fagan's"/&gt;
+        &lt;bar name="Gravedigger's"/&gt;
+        &lt;bar name="Ivy House"/&gt;
+      &lt;foo&gt;
+      &lt;foo location="Town"&gt;
+        &lt;bar name="Peter's Pub"/&gt;
+        &lt;bar name="Grogan's"/&gt;
+        &lt;bar name="Hogans's"/&gt;
+        &lt;bar name="Brogan's"/&gt;
+      &lt;/foo&gt;
+    &lt;/doc&gt;</pre>
+</blockquote>
+
+  <p>Here are some examples of a predicate with boolean expressions:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:for-each select="//bar[contains(@name,'ogan')]"&gt;
+    &lt;xsl:for-each select="//bar[parent::*/@location = 'Drumcondra']"&gt;
+    &lt;xsl:for-each select="//bar[@name = 'Cat and Cage']"&gt;</pre>
+</blockquote>
+
+  <p>The first two select more than one node, while the last selects only one.
+  The last expression could select more nodes if the input document was
+  different. Now, here are a few examples of predicates with numeric
+  expressions:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:value-of select="//bar[1]"&gt;
+    &lt;xsl:value-of select="/doc/foo[2]/bar[1]"&gt;
+    &lt;xsl:value-of select="/doc/foo[2]/bar"&gt;</pre>
+</blockquote>
+  <p>The last expression will return more than one node, but the step that
+  contains the predicate returns only one (the second <code>&lt;foo&gt;</code>
+  element).</p>
+
+  <p>The above are the basic types of predicates. These can be grouped to create
+  a predicate pipeline, where the first predicate reduces the node-set that the
+  second predicate filters, and so on. Here are some examples:</p>
+<blockquote class="source">
+<pre>
+    A: &lt;for-each select="//bar[contains(@name,'ogan')][2]"&gt;
+    C: &lt;for-each select="//bar[2][contains(@name,'ogan')]"&gt;
+    B: &lt;for-each select="//bar[position() &gt; 3][2]"&gt;</pre>
+</blockquote>
+
+  <p>It is easier to figure out which nodes these expressions should return if
+  one goes through the steps and predicates one by one. In expression
+  <code>A:</code> we first get all <code>&lt;bar&gt;</code> elements from the
+  whole document. Then the first predicate selects from that node-set only
+  those elements that have a <code>@name</code> attribute that contains
+  "ogan", and we're left with these elements:</p>
+<blockquote class="source">
+<pre>
+        &lt;bar name="Grogan's"&gt;
+        &lt;bar name="Hogans's"&gt;
+        &lt;bar name="Brogan's"&gt;</pre>
+</blockquote>
+  <p>And finally, the last predicate then selects the second of those
+  elements:</p>
+<blockquote class="source">
+<pre>
+        &lt;bar name="Hogans's"&gt;</pre>
+</blockquote>
+
+  <p>Expression <code>B:</code> contains the same predicates as <code>A:</code>,
+  but the resulting node set if completely different. We start off with the same
+  set of <code>&lt;bar&gt;</code> elements, but we apply the
+  <code>"[2]"</code> predicate first, and end up with this
+  element:</p>
+<blockquote class="source">
+<pre>
+        &lt;bar name="Fagan's"&gt;</pre>
+</blockquote>
+
+  <p>Fagan's is the bar where the Irish Taoiseach (prime minister) drinks his
+  pints, but its name does not contain the string "<code>ogan</code>",
+  so the resulting node-set is empty.</p>
+
+  <p>The third expressions also starts off with all <code>&lt;bar&gt;</code>
+  elements, applies the predicate "<code>[position() &gt; 3]</code>",
+  and reduces the node set to these:</p>
+<blockquote class="source">
+<pre>
+        &lt;bar name="Ivy House"&gt;
+        &lt;bar name="Peter's Pub"&gt;
+        &lt;bar name="Grogan's"&gt;
+        &lt;bar name="Hogans's"&gt;
+        &lt;bar name="Brogan's"&gt;</pre>
+</blockquote>
+  <p>The last predicate "<code>[2]</code>" is applied to this node-set
+  and set is further reduced to:</p>
+<blockquote class="source">
+<pre>
+        &lt;bar name="Peter's Pub"&gt;</pre>
+</blockquote>
+
+  
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Categories</h3>
+
+  <p>From the examples in the last chapter we can try to categorize predicate
+  chains/pipelines to simplify our implementation. We can speed up processing
+  significantly if we can avoid using a data-structure (iterator) to represent
+  the intermediate step between predicates. The goal of setting up these
+  categories is to pinpoint those cases where an intermediate iterator has
+  to be used and when it can be avoided.</p>
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Single predicate expressions</h4>
+
+    <p>Expressions containing just a single predicate have no intermediate step
+    and there is no need for any extra iterator. The expression inside the
+    predicate can be applied directly to the original iterator. We call this
+    category <b>SIMPLE_CONTEXT</b>.</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Expressions containing only non-position predicates</h4>
+    
+    <p>Predicate-order is significant when the predicate-chain contains one or
+    more predicate with an expression similar to
+    "<code>position() &gt; 3</code>" or "<code>2</code>". This
+    is because the <code>position()</code> and <code>last()</code> explicitly
+    refer to the intermediate step between applying each predicate. The
+    expression:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:for-each select="//bar[contains(@name,'ogan')][parent::*/@location = 'Town']"&gt;</pre>
+</blockquote>
+    <p>has two predicates that can be applied in any order and still produce the
+    desired node-set. Such predicates can be merged to:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:for-each select="//bar[contains(@name,'ogan') &amp; (parent::*/@location = 'Town')]"&gt;</pre>
+</blockquote>
+    <p>We call this category NO_CONTEXT.</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Expressions containing position predicates</h4>
+
+    <p>A predicate-chain, whose predicates' expressions contain any use of the
+    <code>position()</code> or <code>last()</code> functions require some way
+    of representing the intermediate step in an iterator. The first predicate
+    is applied to the original node-set, and the resulting node-set must then
+    be stored in some other iterator, from which the second predicate can get
+    the current position from the iterator's <code>getPosition()</code> and
+    <code>getLast()</code> methods. We call this category
+    GENERAL_CONTEXT</p>
+
+    
+
+    <a name="exception">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Expressions containing one position predicate</h4>
+
+    <p>There is one expection from the GENERAL_CONTEXT category. If the
+    predicate-chain contains only one position-predicate, and that predicate is
+    the very first one, then that predicate can call the iterator that contains
+    the first node-set directly. Just look:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:for-each select="//bar[2][parent::*/@location = 'Drumcondra']"&gt;</pre>
+</blockquote>
+    <p>The <code>[2]</code> predicate can be applied to the original iterator
+    for the <code>//bar</code> step. And so can the
+    <code>[parent::*/@location = 'Drumcondra']</code> predicate as well. This
+    is only the case when the position predicate is first in the predicate
+    chain. These types of predicate chains belong in the
+     NO_CONTEXT  category.</p>
+
+    
+
+  
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Design details</h3>
+
+    <p>Predicates are handled quite differently in step expressions and step
+    patterns. Step expressions are not implemented with the various contexts in
+    mind and use a specialised iterator to wrap the code for each predicate.
+    Step patterns are more complicated and CPU (or should I say JVM?)
+    exhaustive. Step patterns containing predicates are analysed to determine
+    context type and compiled accordingly.</p>
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Predicates and Step expressions</h4>
+
+    <p>The basic behaviour for a predicate is to compile a <b>filter</b>. This
+    filter is an auxiliary class that implements the
+    <code>org.apache.xalan.xsltc.dom.CurrentNodeListFilter</code> interface. The
+    <code>Step</code> or <code>StepPattern</code> that uses the predicate will
+    create a <code>org.apache.xalan.xsltc.dom.CurrentNodeListFilter</code>. This
+    iterator contains the nodes that pass through the predicate. The compiled
+    filter is used by the iterator to determine which nodes that should be
+    included. The <code>org.apache.xalan.xsltc.dom.CurrentNodeListFilter</code>
+    interface contains only a single method:</p>
+<blockquote class="source">
+<pre>
+    public interface CurrentNodeListFilter {
+    public abstract boolean test(int node, int position, int last, int current,
+                                 AbstractTranslet translet, NodeIterator iter);
+    }</pre>
+</blockquote>
+
+    <p>The code that is compiled into the <code>test()</code> method is the
+    code for the predicate's expression. The <code>Predicate</code> class
+    compiles the filter class and a <code>test()</code> method skeleton, while
+    some sub-class of the <code>Expression</code> class compiles the actual
+    code that goes into this method.</p>
+
+    <p>The iterator is initialised with a filter that implements this interface:
+    </p>
+<blockquote class="source">
+<pre>
+    public CurrentNodeListIterator(NodeIterator source, 
+				   CurrentNodeListFilter filter,
+				   int currentNode,
+				   AbstractTranslet translet) {
+	this(source, !source.isReverse(), filter, currentNode, translet);
+    }</pre>
+</blockquote>
+
+    <p>The iterator will use its source iterator to provide it with the initial
+    node-set. Each node that is returned from this set is passed through the
+    filter before returned by the <code>next()</code> method. Note that the
+    source iterator can also be a current node-list iterator (if two or more
+    predicates are chained together).</p>
+
+    
+
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Optimisations in Step expressions</h4>
+
+    <h5>Node-value iterators</h5>
+
+    <p>Some simple predicates that test for node values are handled by the
+    <code>NodeValueIterator</code> class at runtime. These are:</p>
+<blockquote class="source">
+<pre>
+    A: foo[@attr = &lt;value&gt;]
+    B: foo[bar = &lt;value&gt;]
+    C: foo/bar[. = &lt;value&gt;]</pre>
+</blockquote>
+
+    <p>The first case is handled by creating an iterator that represents
+    <code>foo/@attr</code>, then passing this iterator and a test-value to
+    a <code>NodeValueIterator</code>. The <b>&lt;value&gt;</b> is an
+    expression that is compiled and passed to the iterator as a string. It
+    does <b>not</b> have to be a literal string as the string value is
+    found at runtime. The last two cases are similarly handled by creating an
+    iterator for <code>foo/bar</code> and passing that and the test-value to
+    a <code>NodeValueIterator</code>.</p>
+
+    
+
+    <h5>Nth descendant iterators</h5>
+
+    <p>The <code>Step</code> class is also optimised for position-predicates
+    that are applied to descendant iterators:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:for-each select="//bar[3]"&gt;</pre>
+</blockquote>
+
+    <p>Such step/predicate combinations are handled by the internal DOM's
+    inner class <code>NthDescendantIterator</code>.</p>
+
+    
+
+    <h5>Nth position iterators</h5>
+
+    <p>Similarly, the <code>Step</code> class is optimised for
+    position-predicates that are applied to basic steps:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:for-each select="bar[3]"&gt;</pre>
+</blockquote>
+
+    <p>Such step/predicate combinations are handled by the internal DOM's
+    inner class <code>NthPositionIterator</code>.</p>
+
+    
+
+    <h5>Node test</h5>
+
+    <p>The predicate class contains a method that tells you if it is a boolean
+    test:</p>
+<blockquote class="source">
+<pre>
+    public boolean isBooleanTest();</pre>
+</blockquote>
+
+    <p>This can be, but it currently is not, used by the <code>Step</code> class
+    to compile in optimised code. Some work to be done here!</p>
+
+    
+
+    
+
+    <a name="step-patterns">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Predicates and StepPatterns</h4>
+
+    <p>Using predicates in patterns is slow on any XSLT processor, and XSLTC
+    is no exception. This is why the predicate context is carefully analysed
+    by the <code>StepPattern</code> class, so that the compiled code is
+    specialised to handle the specific predicate(s) in use. First we should
+    consider the basic step pattern.</p>
+
+    <h5>Basic pattern handling</h5>
+
+    <p>All patterns are grouped (by the <code>Mode</code> class) according to
+    their <b>
+<i>kernel</i>
+</b>-node type. The kernel node-type is node-type of the
+    <b>last</b> step in a pattern:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:template match="foo/bar/baz"&gt;  ...  &lt;xsl:template&gt;</pre>
+</blockquote>
+
+    <p>In this case the type for elements <code>&lt;baz&gt;</code> is the
+    kernel type. This step is <b>not</b> compiled as a step pattern. The node
+    type is passed to the <code>Mode</code> class and is used to place the
+    remainder of the pattern code inside the big <code>switch()</code> statement
+    in the translet's <code>applyTemplates()</code> method. The whole pattern
+    is then <b>reduced</b> to:</p>
+<blockquote class="source">
+<pre>
+    match="foo/bar"</pre>
+</blockquote>
+
+    <p>The <code>StepPattern</code> representing the <code>&lt;bar&gt;</code>
+    element test is compiled under the appropriate <code>case:</code> section
+    of the <code>switch()</code> statement. The code compiled for the step
+    pattern is basically just a call to the DOM's <code>getType()</code>
+    method and a test for the desired node type. There are two special cases
+    for:</p>
+<blockquote class="source">
+<pre>
+    &lt;xsl:template match="foo/*/baz"&gt;  ...  &lt;xsl:template&gt;
+    &lt;xsl:template match="foo/*@[2]"&gt;  ...  &lt;xsl:template&gt;</pre>
+</blockquote>
+
+    <p>In the first case we call <code>isElement()</code> and in the second case
+    we call <code>isAttribute()</code>, instead of <code>getType()</code>.</p>
+
+    
+
+    <h5>Patterns with predicates</h5>
+
+    <p>The <code>typeCheck()</code> method of the <code>StepPattern</code>
+    invokes a method that analyses the predicates of the step pattern and
+    determines their context. (Note that this method needs to be updated to
+    handle the exception to the GENERAL_CONTEXT metioned in the section
+    <a href="#exception">Expressions containing one position predicate</a> earlier in this document.) The <code>translate()</code> method of the
+    <code>StepPattern</code> class contains a <code>switch()</code> statement
+    that calls methods that are tailored for compiling code for the various
+    predicate contexts.</p>
+
+    
+
+    
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsltc_runtime.html b/xalan-j/xsltc/xsltc_runtime.html
new file mode 100644
index 0000000..7f27f9f
--- /dev/null
+++ b/xalan-j/xsltc/xsltc_runtime.html
@@ -0,0 +1,677 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC runtime environment</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC runtime environment</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>Runtime<br />
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC runtime environment</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Contents</h3>
+
+  <p>This document describes the design and overall architecture of XSLTC's
+  runtime environment. This does not include the internal DOM and the DOM
+  iterators, which are all covered in separate documents.</p>
+
+  <ul>
+    <li>
+<a href="#overview">Runtime overview</a>
+</li>
+    <li>
+<a href="#translet">The compiled translet</a>
+</li>
+    <li>
+<a href="#types">External/internal type mapping</a>
+</li>    
+    <li>
+<a href="#mainloop">Main program loop</a>
+</li>
+    <li>
+<a href="#library">Runtime library</a>
+</li>
+    <li>
+<a href="#output">Output handling</a>
+</li>
+  </ul>
+
+  
+
+   
+
+  <a name="overview">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Runtime overview</h3>
+
+    <p>This figure shows the main components of XSLTC's runtime environment:</p>
+ 
+    <p>
+<img src="runtime_design.gif" alt="runtime_design.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 1: Runtime environment overview</i>
+</b>
+</p>
+
+    <p>The various steps these components have to go through to transform a
+    document are:</p>
+
+    <ul>
+      <li>instanciate a parser and hand it the input document</li>
+      <li>build an internal DOM from the parser's SAX events</li>
+      <li>instanciate the translet object</li>
+      <li>pass control to the translet object</li>
+      <li>receive output events from the translet</li>
+      <li>format the output document</li>
+    </ul>
+
+    <p>This process can be initiated either through XSLTC's native API or
+    through the implementation of the JAXP/TrAX API.</p>
+
+    <a name="translet">‌</a>
+    <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>The compiled translet</h3>
+
+    <p>A translet is always a subclass of <code>AbstractTranslet</code>. As well
+    as having access to the public/protected methods in this class, the
+    translet is compiled with these methods:</p>
+<blockquote class="source">
+<pre>
+    public void transform(DOM, NodeIterator, TransletOutputHandler);</pre>
+</blockquote>
+
+    <p>This method is passed a <code>DOMImpl</code> object. Depending on whether
+    the stylesheet had any calls to the <code>document()</code> function this
+    method will either generate a <code>DOMAdapter</code> object (when only one
+    XML document is used as input) or a <code>MultiDOM</code> object (when there
+    are more than one XML input documents). This DOM object is passed on to
+    the <code>topLevel()</code> method.</p>
+
+    <p>When the <code>topLevel()</code> method returns, we initiate the output
+    document by calling <code>startDocument()</code> on the supplied output
+    handler object. We then call <code>applyTemplates()</code> to get the actual
+    output contents, before we close the output document by calling
+    <code>endDocument()</code> on the output handler.</p>
+<blockquote class="source">
+<pre>
+    public void topLevel(DOM, NodeIterator, TransletOutputHandler);</pre>
+</blockquote>
+
+    <p>This method handles all of these top-level elements:</p>
+    <ul>
+      <li>
+<code>&lt;xsl:output&gt;</code>
+</li>
+      <li>
+<code>&lt;xsl:decimal-format&gt;</code>
+</li>
+      <li>
+<code>&lt;xsl:key&gt;</code>
+</li>
+      <li>
+<code>&lt;xsl:param&gt;</code> (for global parameters)</li>
+      <li>
+<code>&lt;xsl:variable&gt;</code> (for global variables)</li>
+    </ul>
+<blockquote class="source">
+<pre>
+    public void applyTemplates(DOM, NodeIterator, TransletOutputHandler);</pre>
+</blockquote>
+
+    <p>This is the method that produces the actual output. Its central element
+    is a big <code>switch()</code> statement that is used to trigger the code
+    that represent the available templates for the various node in the input
+    document. See the chapter on the
+    <a href="#mainloop">main program loop</a> for details on this method.
+    </p>
+<blockquote class="source">
+<pre>
+    public void &lt;init&gt;();</pre>
+</blockquote>
+
+    <a name="namesarray">‌</a>
+    <p>The translet's constructor initializes a table of all the elements we
+    want to search for in the XML input document. This table is called the
+    <code>namesArray</code>, and maps each element name to an unique integer
+    value, know as the elements "translet-type".
+    The DOMAdapter, which acts as a mediator between the DOM and the translet,
+    will map these element identifier to the element identifiers used internally
+    in the DOM. See the section on <a href="#types">extern/internal type
+    mapping</a> and the internal DOM design document for details on this.</p>
+
+    <p>The constructor also initializes any <code>DecimalFormatSymbol</code>
+    objects that are used to format numbers before passing them to the
+    output post-processor. The output processor uses thes symbols to format
+    decimal numbers in the output.</p>
+<blockquote class="source">
+<pre>
+    public boolean stripSpace(int nodeType);</pre>
+</blockquote>
+
+    <p>This method is only present if any <code>&lt;xsl:strip-space&gt;</code>
+    or <code>&lt;xsl:preserve-space&gt;</code> elements are present in the
+    stylesheet. If that is the case, the translet implements the
+    <code>StripWhitespaceFilter</code> interface by containing this method.</p>
+
+  
+
+   
+
+  <a name="types">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>External/internal type mapping</h3>
+
+    <p>This is the very core of XSL transformations:
+    <b>Read carefully!!!</b>
+</p>
+
+    <a name="external-types">‌</a>
+    <p>Every node in the input XML document(s) is assigned a type by the DOM
+    builder class. This type is a unique integer value which represents the
+    element, so that for instance all <code>&lt;bob&gt;</code> elements in the
+    input document will be given type <code>7</code> and can be referred to by
+    that integer. These types can be used for lookups in the
+    <a href="#namesarray">namesArray</a> table to get the actual
+    element name (in this case "bob"). The type identifiers used in the DOM are
+    referred to as <b>external types</b> or <b>DOM types</b>, as they are
+    types known only outside of the translet.</p>
+
+    <a name="internal-types">‌</a>
+    <p>Similarly the translet assignes types to all element and attribute names
+    that are referenced in the stylesheet. This type assignment is done at
+    compile-time, while the DOM builder assigns the external types at runtime.
+    The element type identifiers used by the translet are referred to as
+    <b>internal types</b> or <b>translet types</b>.</p>
+
+    <p>It is not very probable that there will be a one-to-one mapping between
+    internal and external types. There will most often be elements in the DOM
+    (ie. the input document) that are not mentioned in the stylesheet, and
+    there could be elements in the stylesheet that do not match any elements
+    in the DOM. Here is an example:</p>
+
+<blockquote class="source">
+<pre>
+      &lt;?xml version="1.0"?&gt;
+      &lt;xsl:stylesheet version="1.0" xmlns:xsl="blahblahblah"&gt;
+
+      &lt;xsl:template match="/"&gt;
+        &lt;xsl:for-each select="//B"&gt;
+          &lt;xsl:apply-templates select="." /&gt;
+        &lt;/xsl:for-each&gt;
+        &lt;xsl:for-each select="C"&gt;
+          &lt;xsl:apply-templates select="." /&gt;
+        &lt;/xsl:for-each&gt;
+        &lt;xsl:for-each select="A/B"&gt;
+          &lt;xsl:apply-templates select="." /&gt;
+        &lt;/xsl:for-each&gt;
+      &lt;/xsl:template&gt;
+
+    &lt;/xsl:stylesheet&gt;
+</pre>
+</blockquote>
+
+    <p>In this stylesheet we are looking for elements <code>&lt;B&gt;</code>,
+    <code>&lt;C&gt;</code> and <code>&lt;A&gt;</code>. For this example we can
+    assume that these element types will be assigned the values 0, 1 and 2.
+    Now, lets say we are transforming this XML document:</p>
+
+<blockquote class="source">
+<pre>
+      &lt;?xml version="1.0"?&gt;
+
+      &lt;A&gt;
+        The crocodile cried:
+        &lt;F&gt;foo&lt;/F&gt;
+        &lt;B&gt;bar&lt;/B&gt;
+        &lt;B&gt;baz&lt;/B&gt;
+      &lt;/A&gt;
+</pre>
+</blockquote>
+
+    <p>This XML document has the elements <code>&lt;A&gt;</code>,
+    <code>&lt;B&gt;</code> and <code>&lt;F&gt;</code>, which we assume are
+    assigned the types 7, 8 and 9 respectively  (the numbers below that are
+    assigned for specific element types, such as the root node, text nodes,etc).
+    This causes a mismatch between the type used for <code>&lt;B&gt;</code> in
+    the translet and the type used for <code>&lt;B&gt;</code> in the DOM. The
+    DOMAdapter class (which mediates between the DOM and the translet) has been
+    given two tables for convertint between the two types; <code>mapping</code>
+    for mapping from internal to external types, and <code>reverseMapping</code>
+    for the other way around.</p>
+
+    <p>The translet contains a <code>String[]</code> array called
+    <code>namesArray</code>. This array contains all the element and attribute
+    names that were referenced in the stylesheet. In our example, this array
+    would contain these string (in this specific order): "B", 
+    "C" and "A". This array is passed as one of the
+    parameters to the DOM adapter constructor (the other parameter is the DOM
+    itself). The DOM adapter passes this table on to the DOM. The DOM generates
+    a hashtable that maps its known element names to the types the translet
+    knows. The DOM does this by going through the <code>namesArray</code> from
+    the translet sequentially, looks up each name in the hashtable, and is then
+    able to map the internal type to an external type. The result is then passed
+    back to the DOM adapter.</p>
+
+    <p>External types that are not interesting for the translet (such as the
+    type for <code>&lt;F&gt;</code> elements in the example above) are mapped
+    to a generic <code>"ELEMENT"</code> type (integer value 3), and are more or
+    less ignored by the translet. Uninterresting attributes are similarly
+    mapped to internal type <code>"ATTRIBUTE"</code> (integer value 4).</p>
+
+    <p>It is important that we separate the DOM from the translet. In several
+    cases we want the DOM as a structure completely independent from the
+    translet - even though the DOM is a structure internal to XSLTC. One such
+    case is when transformations are offered by a servlet as a web service.
+    Any DOM that is built should potentially be stored in a cache and made
+    available for simultaneous access by several translet/servlet couples.</p>
+
+    <p>
+<img src="runtime_type_mapping.gif" alt="runtime_type_mapping.gif" />
+</p>
+    <p>
+<b>
+<i>Figure 2: Two translets accessing a single dom using different type mappings</i>
+</b>
+</p>
+
+  
+
+   
+
+  <a name="mainloop">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Main program loop</h3>
+
+    <p>The main body of the translet is the <code>applyTemplates()</code>
+    method. This method goes through these steps:</p>
+
+    <ul>
+      <li>
+        Get the next node from the node iterator
+      </li>
+      <li>
+        Get the internal type of this node. The DOMAdapter object holds the
+        internal/external type mapping table, and it will supply the translet
+        with the internal type of the current node.
+      </li>
+      <li>
+        Execute a switch statement on the internal node type. There will be
+        one "case" label for each recognised node type - this includes the
+        first 7 internal node types.
+      </li>
+    </ul>
+
+    <p>The root node will have internal type 0 and will cause any initial
+    literal elements to be output. Text nodes will have internal node type 1
+    and will simply be dumped to the output handler. Unrecognized elements
+    will have internal node type 3 and will be given the default treatment
+    (a new iterator is created for the node's children, and this iterator
+    is passed with a recursive call to <code>applyTemplates()</code>).
+    Unrecognised attribute nodes (type 4) will be handled like text nodes.
+    This makes up the default (built in) templates of any stylesheet. Then,
+    we add one <code>"case"</code>for each node type that is matched by any
+    pattern in the stylesheet. The <code>switch()</code> statement in
+    <code>applyTemplates</code> will thereby look something like this:</p>
+
+<blockquote class="source">
+<pre>
+        public void applyTemplates(DOM dom, NodeIterator,
+                                   TransletOutputHandler handler) {
+
+            // get nodes from iterator
+            while ((node = iterator.next()) != END) {
+                // get internal node type
+                switch(DOM.getType(node)) {
+
+                case 0: // root
+                    outputPreable(handler);
+                    break;
+                case 1: // text
+                    DOM.characters(node,handler);
+                    break;
+                case 3: // unrecognised element
+                    NodeIterator newIterator = DOM.getChildren(node);
+                    applyTemplates(DOM,newIterator,handler);
+                    break;
+                case 4: // unrecognised attribute
+                    DOM.characters(node,handler);
+                    break;
+                case 7: // elements of type &lt;B&gt;
+                    someCompiledCode();
+                    break;
+                case 8: // elements of type &lt;C&gt;
+                    otherCompiledCode();
+                    break;
+                default:
+                    break;
+                }
+            }
+        }
+</pre>
+</blockquote>
+
+    <p>Each recognised element will have its own piece of compiled code.</p>
+
+    <p>Note that each "case" will not lead directly to a single template.
+    There may be several templates that match node type 7
+    (say <code>&lt;B&gt;</code>). In the sample stylesheet in the previous
+    chapter we have to templates that would match a node <code>&lt;B&gt;</code>.
+    We have one <code>match="//B"</code> (match just any <code>&lt;B&gt;</code>
+    element) and one <code>match="A/B"</code> (match a <code>&lt;B&gt;</code>
+    element that is a child of a <code>&lt;A&gt;</code> element). In this case
+    we would have to compile code that first gets the type of the current node's
+    parent, and then compared this type with the type for
+    <code>&lt;A&gt;</code>. If there was no match we will have executed the
+    first <code>&lt;xsl:for-each&gt;</code> element, but if there was a match
+    we will have executed the last one. Consequentally, the compiler will
+    generate the following code (well, it will look like this anyway):</p>
+
+<blockquote class="source">
+<pre>
+        switch(DOM.getType(node)) {
+          :
+          :
+        case 7: // elements of type &lt;B&gt;
+            int parent = DOM.getParent(node);
+            if (DOM.getType(parent) == 9) // type 9 = elements &lt;A&gt;
+                someCompiledCode();
+            else
+                evenOtherCompiledCode();
+            break;
+          :
+          :
+        }
+</pre>
+</blockquote>
+
+    <p>We could do the same for namespaces, that is, assign a numeric value
+    to every namespace that is references in the stylesheet, and use an
+    <code>"if"</code> statement for each namespace that needs to be checked for
+    each type. Lets say we had a stylesheet like this:</p>
+
+<blockquote class="source">
+<pre>
+      &lt;?xml version="1.0"?&gt;
+      &lt;xsl:stylesheet version="1.0" xmlns:xsl="blahblahblah"&gt;
+
+      &lt;xsl:template match="/"
+          xmlns:foo="http://foo.com/spec"
+          xmlns:bar="http://bar.net/ref"&gt;
+        &lt;xsl:for-each select="foo:A"&gt;
+          &lt;xsl:apply-templates select="." /&gt;
+        &lt;/xsl:for-each&gt;
+        &lt;xsl:for-each select="bar:A"&gt;
+          &lt;xsl:apply-templates select="." /&gt;
+        &lt;/xsl:for-each&gt;
+      &lt;/xsl:template&gt;
+
+    &lt;/xsl:stylesheet&gt;
+</pre>
+</blockquote>
+
+    <p>And a stylesheet like this:</p>
+
+<blockquote class="source">
+<pre>
+      &lt;?xml version="1.0"?&gt;
+
+      &lt;DOC xmlns:foo="http://foo.com/spec"
+           xmlns:bar="http://bar.net/ref"&gt;
+        &lt;foo:A&gt;In foo namespace&lt;/foo:A&gt;
+        &lt;bar:A&gt;In bar namespace&lt;/bar:A&gt;
+      &lt;/DOC&gt;
+</pre>
+</blockquote>
+
+    <p>We could still keep the same type for all <code>&lt;A&gt;</code> elements
+    regardless of what namespace they are in, and use the same <code>"if"</code>
+    structure within the <code>switch()</code> statement above. The other option
+    is to assign different types to <code>&lt;foo:A&gt;</code> and
+    <code>&lt;bar:A&gt;</code> elements. The latter is the option we chose, and
+    it is described in detail in the namespace design document.</p>
+
+  
+
+   
+
+  <a name="library">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Runtime library</h3>
+
+    <p>The runtime library offers basic functionality to the translet at
+    runtime. It is analoguous to UNIX's <code>libc</code>. The whole runtime
+    library is contained in a single class file:</p>
+
+<blockquote class="source">
+<pre>
+    org.apache.xalan.xsltc.runtime.BasisLibrary
+</pre>
+</blockquote>
+
+    <p>This class contains a large set of static methods that are invoked by
+    the translet. These methods are largely independent from eachother, and
+    they implement the following:</p>
+
+    <ul>
+      <li>simple XPath functions that do not require a lot of code
+      compiled into the translet class</li>
+      <li>functions for formatting decimal numbers to strings</li>
+      <li>functions for comparing nodes, node-sets and strings - used by
+      equality expressions, predicates and other</li>
+      <li>functions for generating localised error messages</li>
+    </ul>
+
+    <p>The runtime library is a central part of XSLTC. But, as metioned earlier,
+    the functions within the library are rarely related, so there is no real
+    overall design/architecture. The only common attribute of many of the
+    methods in the library is that all static methods that implement an XPath
+    function and with a capital <code>F</code>.</p>
+
+  
+
+   
+
+  <a name="output">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Output handler</h3>
+
+    <p>The translet passes its output to an output post-processor before the
+    final result is handed to the client application over a standard SAX
+    interface. The interface between the translet and the output handler is
+    very similar to a SAX interface, but it has a few non-standard additions.
+    This interface is described in this file:</p>
+
+<blockquote class="source">
+<pre>
+    org.apache.xalan.xsltc.TransletOutputHandler
+</pre>
+</blockquote>
+
+    <p>This interface is implemented by:</p>
+
+<blockquote class="source">
+<pre>
+    org.apache.xalan.xsltc.runtime.TextOutput
+</pre>
+</blockquote>
+
+    <p>This class, despite its name, handles all types of output (XML, HTML and
+    TEXT). Our initial idea was to have a base class implementing the
+    <code>TransletOutputHandler</code> interface, and then have one subclass
+    for each of the output types. This proved very difficult, as the output
+    type is not always known until after the transformation has started and
+    some elements have been output. But, this is an area where a change like
+    that has the potential to increase performance significantly. Output
+    handling has a lot to do with analyzing string contents, and by narrowing
+    down the number of string comparisons and string updates one can acomplish
+    a lot.</p>
+ 
+    <p>The main tasks of the output handler are:</p>
+
+    <ul>
+      <li>determine the output type based on the output generated by the
+      translet (not always necessary)</li>
+      <li>generate SAX events for the client application</li>
+      <li>insert the necessary namespace declarations in the output</li>
+      <li>escape special characters in the output</li>
+      <li>insert &lt;DOCTYPE&gt; and &lt;META&gt; elements in HTML output</li>
+    </ul>
+
+    <p>There is a very clear link between the output handler and the
+    <code>org.apache.xalan.xsltc.compiler.Output</code> class that handles
+    the <code>&lt;xsl:output&gt;</code> element. The <code>Output</code> class
+    stores many output settings and parameters in the translet class file and
+    the translet passes these on to the output handler.</p>
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsltc_trax.html b/xalan-j/xsltc/xsltc_trax.html
new file mode 100644
index 0000000..ec8c895
--- /dev/null
+++ b/xalan-j/xsltc/xsltc_trax.html
@@ -0,0 +1,837 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: The Translet API and TrAX</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">The Translet API and TrAX</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>Translet &amp; TrAX<br />
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>
+<a href="xsltc_trax_api.html">Xsltc TrAX API</a>
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>The Translet API and TrAX</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Contents</h3>
+
+  <p>Note: This document describes the design of XSLTC's TrAX implementation.
+  The XSLTC <a href="xsltc_trax_api.html">TrAX API user documentation</a>
+  is kept in a separate document.</p>
+
+  <p>The structure of this document is, and should be kept, as follows:</p>
+
+  <ul>
+    <li>A brief introduction to TrAX/JAXP</li>
+    <li>Overall design of the XSLTC TrAX implementation</li>
+    <li>Detailed design of various TrAX components</li>
+  </ul>
+
+  <ul>
+    <li>
+<a href="#abstract">Abstract</a>
+</li>
+    <li>
+<a href="#trax">TrAX basics</a>
+</li>
+    <li>
+<a href="#config">TrAX configuration</a>
+</li>
+    <li>
+<a href="#design">XSLTC TrAX architecture</a>
+</li>
+    <li>
+<a href="#detailed_design">XSLTC TrAX detailed design</a>
+</li>
+      <ul>
+        <li>
+<a href="#factory_design">TransformerFactory design</a>
+</li>
+        <li>
+<a href="#templates_design">Templates design</a>
+</li>
+        <li>
+<a href="#transformer_design">Transformer design</a>
+</li>
+        <li>
+<a href="#config_design">TrAX configuration design</a>
+</li>
+      </ul>
+  </ul>
+  
+
+  
+
+  <a name="abstract">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Abstract</h3>
+
+  <p>JAXP is the Java extension API for XML parsing. TrAX is an API for XML
+  transformations and is included in the later versions of JAXP. JAXP includes
+  two packages, one for XML parsing and one for XML transformations (TrAX):</p>
+<blockquote class="source">
+<pre>
+    javax.xml.parsers
+    javax.xml.transform</pre>
+</blockquote>
+
+  <p>XSLTC is an XSLT processing engine and fulfills the role as an XML
+  transformation engine behind the TrAX portion of the JAXP API. XSLTC is a
+  provider for the TrAX API and a client of the JAXP parser API.</p>
+
+  <p>This document describes the design used for integrating XSLTC translets
+  with the JAXP TrAX API. The heart of the design is a wrapper class around the
+  XSLTC compiler that extends the JAXP <code>SAXTransformerFactory</code>
+  interface. This factory delivers translet class definitions (Java bytecodes)
+  wrapped inside TrAX <code>Templates</code> objects. These
+  <code>Templates</code> objects can be used to instanciate 
+  <code>Transformer</code> objects that transform XML documents into markup or
+  plain text. Alternatively a <code>Transformer</code> object can be created
+  directly by the <code>TransformerFactory</code>, but this approach is not
+  recommended with XSLTC. The reason for this will be explained later in this
+  document.</p>
+
+  
+
+  
+
+  <a name="trax">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>TrAX basics</h3>
+
+  <p>The Java API for XML Processing (JAXP) includes an XSLT framework based
+  on the Transformation API for XML (TrAX). A JAXP transformation application
+  can use the TrAX framework in two ways. The simplest way is:</p>
+
+  <ul>
+    <li>create an instance of the TransformerFactory class</li>
+    <li>from the factory instance and a given XSLT stylesheet, create a new
+    Transformer object</li>
+    <li>call the Transformer object's transform() method, specifying the XML
+    input and a Result object.</li>
+  </ul>
+<blockquote class="source">
+<pre>
+    import javax.xml.transform.*;
+
+        public class Compile {
+
+            public void run(Source xsl) {
+                ....
+                TransformerFactory factory = TransformerFactory.newInstance();
+                Transformer transformer = factory.newTransformer(xsl);
+                ....
+            }
+        }</pre>
+</blockquote>
+
+  <p>This suits most conventional XSLT processors that transform XML documents
+  in one go. XSLTC needs one extra step to compile the XSL stylesheet into a
+  Java class (a "translet"). Fortunately TrAX has another approach
+  that suits XSLTC two-step transformation model:</p>
+
+  <ul>
+    <li>create an instance of the TransformerFactory class</li>
+    <li>from the factory instance and a given XSLTC, stylesheet, create a new
+    Templates object (this step will compile the stylesheet and put the
+    bytecodes for translet class(es) into the Templates object)</li>
+    <li>from the Template object create a Transformer object (this will
+    instanciate a new translet object).</li>
+    <li>call the Transformer object's transform() method, specifying the XML
+    input and a Result object.</li>
+  </ul>
+<blockquote class="source">
+<pre>
+    import javax.xml.transform.*;
+
+        public class Compile {
+
+            public void run(Source xsl) {
+                ....
+                TransformerFactory factory = TransformerFactory.newInstance();
+                Templates templates = factory.newTemplates(xsl);
+                Transformer transformer = templates.newTransformer();
+                ....
+            }
+        }</pre>
+</blockquote>
+
+  <p>Note that the first two steps need be performed only once for each
+  stylesheet. Once the stylesheet is compiled into a translet and wrapped in a
+  <code>Templates</code> object, the <code>Templates</code> object can be used
+  over and over again to create Transformer object (instances of the translet).
+  The <code>Templates</code> instances can even be serialized and stored on
+  stable storage (ie. in a memory or disk cache) for later use.</p>
+
+  <p>The code below illustrates a simple JAXP transformation application that
+  creates the <code>Transformer</code> directly. Remember that this is not the
+  ideal approach with XSLTC, as the stylesheet is compiled for each
+  transformation.</p>
+<blockquote class="source">
+<pre>
+    import javax.xml.transform.stream.StreamSource;
+    import javax.xml.transform.stream.StreamResult;
+    import javax.xml.transform.Transformer;
+    import javax.xml.transform.TransformerFactory;
+
+    public class Proto {
+
+        public void run(String xmlfile, String xslfile) {
+            Transformer transformer;
+            TransformerFactory factory = TransformerFactory.newInstance();
+
+        try {
+            StreamSource stylesheet = new StreamSource(xslfile);
+            transformer = factory.newTransformer(stylesheet);
+            transformer.transform(new StreamSource(xmlfile),
+                                  new StreamResult(System.out));
+        }
+        catch (Exception e) {
+            // handle errors...
+        }
+        :
+        :
+    }</pre>
+</blockquote>
+
+  <p>This approach seems simple is probably used in many applications. But, the
+  use of <code>Templates</code> objects is useful when multiple instances of
+  the same <code>Transformer</code> are needed. <code>Transformer</code>
+  objects are not thread safe, and if a server wants to handle several clients
+  requests it would be best off to create one global <code>Templates</code>
+  object, and then from this create a <code>Transformer</code> object for each
+  thread handling the requests. This approach is also by far the best for
+  XSLTC, as the <code>Templates</code> object will hold the class definitions
+  that make up the translet and its auxiliary classes. (Note that the bytecodes
+  and not the actuall class definitions are stored when serializing a
+  <code>Templates</code> object to disk. This is because of class loader
+  security restrictions.) To accomodate this second approach to TrAX
+  transformations, the above class would be modified  as follows:</p>
+<blockquote class="source">
+<pre>
+    try {
+        StreamSource stylesheet = new StreamSource(xslfile);
+        Templates templates = factory.newTemplates(stylesheet);
+        transformer = templates.newTransformer();
+        transformer.transform(new StreamSource(inputFilename),
+                              new StreamResult(System.out));
+    }
+    catch (Exception e) {
+        // handle errors...
+    }</pre>
+</blockquote>
+
+  
+
+  
+
+  <a name="config">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>TrAX configuration</h3>
+
+  <p>JAXP's <code>TransformerFactory</code> is configurable similar to the
+  other Java extensions. The API supports configuring thefactory by:</p>
+
+  <ul>
+    <li>passing vendor-specific attributes from the application, through the
+    TrAX interface, to the underlying XSL processor</li>
+    <li>registering an ErrorListener that will be used to pass error and
+    warning messages from the XSL processor to the application</li>
+    <li>registering an URIResolver that the application can use to load XSL
+    and XML documents on behalf of the XSL processor (the XSL processor will
+    use this to support the xsl:include and xsl:import elements and the
+    document() functions.</li>
+  </ul>
+
+  <p>The JAXP TransformerFactory can be queried at runtime to discover what
+  features it supports. For example, an application might want to know if a
+  particular factory implementation supports the use of SAX events as a source,
+  or whether it can write out transformation results as a DOM. The factory API
+  queries with the getFeature() method. In the above code, we could add the
+  following code before the try-catch block:</p>
+<blockquote class="source">
+<pre>
+    if (!factory.getFeature(StreamSource.FEATURE) || !factory.getFeature(StreamResult.FEATURE)) {
+        System.err.println("Stream Source/Result not supported by TransformerFactory\nExiting....");
+        System.exit(1);
+    }</pre>
+</blockquote>
+
+  <p>Other elements in the TrAX API are configurable. A Transformer object can
+  be passed settings that override the default output settings and the settings
+  defined in the stylesheet for indentation, output document type, etc.</p>
+
+  
+
+  
+
+  <a name="design">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XSLTC TrAX architecture</h3>
+
+  <p>XSLTC's architecture fits nicely in behind the TrAX interface. XSLTC's
+  compiler is put behind the <code>TransformerFactory</code> interface, the
+  translet class definition (either as a set of in-memory
+  <code>Class</code> objects or as a two-dimmensional array of bytecodes on
+  disk) is encapsulated in the <code>Templates</code> implementation and the
+  instanciated translet object is wrapped inside the <code>Transformer</code>
+  implementation. Figure 1 (below) shows this two-layered TrAX architecture:
+  </p>
+  
+  <p>
+<img src="trax_translet_wrapping.gif" alt="TransletWrapping" />
+</p>
+  <p>
+<b>
+<i>Figure 1: Translet class definitions are wrapped inside Templates objects</i>
+</b>
+</p>
+
+  <p>The <code>TransformerFactory</code> implementation also implements the
+  <code>SAXTransformerFactory</code> and <code>ErrorListener</code>
+  interfaces from the TrAX API.</p>
+
+  <p>The TrAX implementation has intentionally been kept completely separate
+  from the XSLTC native code. This prevents users of XSLTC's native API from
+  having to include the TrAX code in an application. All the code that makes
+  up our TrAX implementation resides in this package:</p>
+<blockquote class="source">
+<pre>
+    org.apache.xalan.xsltc.trax</pre>
+</blockquote>
+
+  <p>Message to all XSLTC developers: Keep it this way! Do not mix TrAX
+  and Native code!</p>
+
+  
+
+  
+
+  <a name="detailed_design">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>TrAX implementation details</h3>
+
+  <p>The main components of our TrAX implementation are:</p>
+
+  <ul>
+    <li>
+<a href="#transformer_factory">the TransformerFactory class</a>
+</li>
+    <li>
+<a href="#templates">the Templates class</a>
+</li>
+    <li>
+<a href="#transformer">the Transformer class</a>
+</li>
+    <li>
+<a href="#transformer">output properties handling</a>
+</li>
+  </ul>
+
+  <a name="factory_design">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>TransformerFactory implementation</h4>
+
+  <p>The methods that make up the basic <code>TransformerFactory</code>
+  iterface are: </p>
+<blockquote class="source">
+<pre>
+    public Templates newTemplates(Source source);
+    public Transformer newTransformer();
+    public ErrorListener getErrorListener();
+    public void setErrorListener(ErrorListener listener);
+    public Object getAttribute(String name);
+    public void setAttribute(String name, Object value);
+    public boolean getFeature(String name);
+    public URIResolver getURIResolver();
+    public void setURIResolver(URIResolver resolver);
+    public Source getAssociatedStylesheet(Source src, String media, String title, String charset);</pre>
+</blockquote>
+
+  <p>And for the <code>SAXTransformerFactory</code> interface:</p>
+<blockquote class="source">
+<pre>
+    public TemplatesHandler   newTemplatesHandler();
+    public TransformerHandler newTransformerHandler();
+    public TransformerHandler newTransformerHandler(Source src);
+    public TransformerHandler newTransformerHandler(Templates templates);
+    public XMLFilter newXMLFilter(Source src);
+    public XMLFilter newXMLFilter(Templates templates);</pre>
+</blockquote>
+
+  <p>And for the <code>ErrorListener</code> interface:</p>
+<blockquote class="source">
+<pre>
+    public void error(TransformerException exception);
+    public void fatalError(TransformerException exception);
+    public void warning(TransformerException exception);</pre>
+</blockquote>
+
+  <h5>TransformerFactory basics</h5>
+    <p>The very core of XSLTC TrAX support for XSLTC is the implementation of
+    the basic <code>TransformerFactory</code> interface. This factory class is
+    more or less a wrapper around the the XSLTC compiler and creates
+    <code>Templates</code> objects in which compiled translet classes can
+    reside. These <code>Templates</code> objects can then be used to create
+    <code>Transformer</code> objects. In cases where the
+    <code>Transformer</code>  is created directly by the factory we will use
+    the <code>Templates</code> class internally. In that way the transformation
+    will appear to be done in one step from the users point of view, while we
+    in reality use to steps. As described earler, this is not the best approach
+    when using XSLTC, as it causes the stylesheet to be compiled for each and
+    every transformation.</p>
+  
+
+  <h5>TransformerFactory attribute settings</h5>
+    <p>The <code>getAttribute()</code> and <code>setAttribute()</code> methods
+    only recognise two attributes: <code>translet-name</code> and
+    <code>debug</code>. The latter is obvious - it forces XSLTC to output debug
+    information (dumps the stack in the very unlikely case of a failure). The
+    <code>translet-name</code> attribute can be used to set the default class
+    name for any nameless translet classes that the factory creates. A nameless
+    translet will, for instance, be created when the factory compiles a translet
+    for the identity transformation. There is a default name,
+    <code>GregorSamsa</code>, for nameless translets, so there is no absolute
+    need to set this attribute. (Gregor Samsa is the main character from Kafka's
+    "Metamorphosis" - transformations, metamorphosis - I am sure you
+    see the connection.)</p>
+  
+
+  <h5>TransformerFactory stylesheet handling</h5>
+    <p>The compiler is can be passed a stylesheet through various methods in
+    the <code>TransformerFactory</code> interface. A stylesheet is passed in as
+    a <code>Source</code> object that containin either a DOM, a SAX parser or
+    a stream. The <code>getInputSource()</code> method handles all inputs and
+    converts them, if necessary, to SAX. The TrAX implementation contains an
+    adapter that will generate SAX events from a DOM, and this adapter is used
+    for DOM input. If the <code>Source</code> object contains a SAX parser, this
+    parser is just passed directly to the compiler. A SAX parse is instanciated
+    (using JAXP) if the <code>Source</code> object contains a stream.</p>
+  
+
+  <h5>TransformerFactory URI resolver</h5>
+    <p>A TransformerFactory needs a <code>URIResolver</code> to locate documents
+    that are referenced in <code>&lt;xsl:import&gt;</code> and
+    <code>&lt;xsl:include&gt;</code> elements. XSLTC has an internal interface
+    that shares the same purpose. This internal interface is implemented by the
+    <code>TransformerFactory</code>:</p>
+<blockquote class="source">
+<pre>
+    public InputSource loadSource(String href, String context, XSLTC xsltc);</pre>
+</blockquote>
+    <p>This method will simply use any defined <code>URIResolver</code> and
+    proxy the call on to the URI resolver's <code>resolve()</code> method. This
+    method returns a <code>Source</code> object, which is converted to SAX
+    events and passed back to the compiler.</p>
+  
+
+  
+
+  <a name="template_design">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Templates design</h4>
+
+  <h5>Templates creation</h5>
+    <p>The <code>TransformerFactory</code> implementation invokes the XSLTC
+    compiler to generate the translet class and auxiliary classes. These classes
+    are stored inside our <code>Templates</code> implementation in a manner
+    which allows the <code>Templates</code> object to be serialized. By making
+    it possible to store <code>Templates</code> on stable storage we allow the
+    TrAX user to store/cache translet class(es), thus making room for XSLTC's
+    one-compilation-multiple-transformations approach. This was done by giving
+    the <code>Templates</code> implementation an array of byte-arrays that
+    contain the bytecodes for the translet class and its auxiliary classes. When
+    the user first requests a <code>Transformer</code> instance from the
+    <code>Templates</code> object for the first time we create one or more
+    <code>Class</code> objects from these byte arrays. Note that this is done
+    only once as long as the <code>Template</code> object resides in memory. The
+    <code>Templates</code> object then invokes the JVM's class loader with the
+    class definition(s) to instanciate the translet class(es). The translet
+    objects are then wraped inside a <code>Transformer</code> object, which is
+    returned to the client code:</p>
+<blockquote class="source">
+<pre>
+
+    // Contains the name of the main translet class
+    private String   _transletName = null;
+
+    // Contains the actual class definition for the translet class and
+    // any auxiliary classes (representing node sort records, predicates, etc.)
+    private byte[][] _bytecodes = null;
+    
+    /**
+     * Defines the translet class and auxiliary classes.
+     * Returns a reference to the Class object that defines the main class
+     */
+    private Class defineTransletClasses() {
+	TransletClassLoader loader = getTransletClassLoader();
+
+	try {
+	    Class transletClass = null;
+	    final int classCount = _bytecodes.length;
+	    for (int i = 0; i &lt; classCount; i++) {
+		Class clazz = loader.defineClass(_bytecodes[i]);
+		if (clazz.getName().equals(_transletName))
+		    transletClass = clazz;
+	    }
+	    return transletClass; // Could still be 'null'
+	}
+	catch (ClassFormatError e) {
+	    return null;
+	}
+    }</pre>
+</blockquote>
+  
+
+  <h5>Translet class loader</h5>
+
+    <p>The <code>Templates</code> object will create the actual translet
+    <code>Class</code> object(s) the first time the
+    <code>newTransformer()</code> method is called. (The "first time" means the
+    first time either after the object was instanciated or the first time after
+    it has been read from storage using serialization.) These class(es) cannot
+    be created using the standard class loader since the method:</p>
+<blockquote class="source">
+<pre>
+    Class defineClass(String name, byte[] b, int off, int len);</pre>
+</blockquote>
+
+    <p>of the ClassLoader is protected. XSLTC uses its own class loader that
+    extends the standard class loader:</p>
+<blockquote class="source">
+<pre>
+    // Our own private class loader - builds Class definitions from bytecodes
+    private class TransletClassLoader extends ClassLoader {
+        public Class defineClass(byte[] b) {
+            return super.defineClass(null, b, 0, b.length);
+        }
+    }</pre>
+</blockquote>
+    <p>This class loader is instanciated inside a privileged code section:</p>
+<blockquote class="source">
+<pre>
+    TransletClassLoader loader = 
+        (TransletClassLoader) AccessController.doPrivileged(
+            new PrivilegedAction() {
+                public Object run() {
+                    return new TransletClassLoader();
+                }
+            }
+        );</pre>
+</blockquote>
+
+    <p>Then, when the newTransformer() method returns it passes back and
+    instance of XSLTC's <code>Transformer</code> implementation that contains
+    an instance of the main translet class. (One transformation may need several
+    Java classes - for sort-records, predicates, etc. - but there is always one
+    main translet class.)</p>
+
+  
+
+  <h5>Class loader security issues</h5>
+
+    <p>When XSLTC is placed inside a JAR-file in the
+    <code>$JAVA_HOME/jre/lib/ext</code> it is loaded by the extensions class
+    loader and not the default (bootstrap) class loader. The extensions class
+    loader does not look for class files/definitions in the user's
+    <code>CLASSPATH</code>. This can cause two problems: A) XSLTC does not find
+    classes for external Java functions, and B) XSLTC does not find translet or
+    auxiliary classes when used through the native API.</p>
+
+    <p>Both of these problems are caused by XSLTC internally calling the
+    <code>Class.forName()</code> method. This method will use the current class
+    loader to locate the desired class (be it an external Java class or a
+    translet/aux class). This is prevented by forcing XSLTC to use the bootstrap
+    class loader, as illustrated below:</p>
+
+    <p>
+<img src="class_loader.gif" alt="ClassLoader" />
+</p>
+    <p>
+<b>
+<i>Figure 2: Avoiding the extensions class loader</i>
+</b>
+</p>
+
+    <p>These are the steps that XSLTC will go through to load a class:</p>
+
+    <ol>
+      <li>the application requests an instance of the transformer factory </li>
+      <li>the Java extensions mechanism locates XSLTC as the transformer
+      factory implementation using the extensions class loader</li>
+      <li>the extensions class loader loads XSLTC</li>
+      <li>XSLTC's compiler attempts to get a reference to an external Java
+      class, but the call to Class.forName() fails, as the extensions class
+      loader does not use the user's class path</li>
+      <li>XSLTC attempts to get a reference to the bootstrap class loader, and
+      requests it to load the external class</li>
+      <li>the bootstrap class loader loads the requested class</li>
+    </ol>
+
+    <p>Step 5) is only allowed if XSLTC has special permissions. But, remember
+    that this problem only occurs when XSLTC is put in the
+    <code>$JAVA_HOME/jre/lib/ext</code> directory, where it is given all
+    permissions (by the default security file).</p>
+
+  
+
+  
+
+  <a name="transformer_design">‌</a>
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Transformer detailed design</h4>
+
+    <p>The <code>Transformer</code> class is a simple proxy that passes
+    transformation settings on to its translet instance before it invokes the
+    translet's <code>doTransform()</code> method. The <code>Transformer</code>'s
+    <code>transform()</code> method maps directly to the translet's
+    <code>doTransform()</code> method.</p>
+
+    <h5>Transformer input and output handling</h5>
+      <p>The <code>Transformer</code> handles its input in a manner similar to
+      that of the <code>TransformerFactory</code>. It has two methods for
+      creating standard SAX input and output handlers for its input and output
+      files:</p>
+<blockquote class="source">
+<pre>
+    private DOMImpl getDOM(Source source, int mask);
+    private ContentHandler getOutputHandler(Result result);</pre>
+</blockquote>
+
+      <p>One aspect of the <code>getDOM</code> method is that it handles four
+      various types of <code>Source</code> objects. In addition to the standard
+      DOM, SAX and stream types, it also handles an extended
+      <code>XSLTCSource</code> input type. This input type is a lightweight
+      wrapper from XSLTC's internal DOM-like input tree. This allows the user
+      to create a cache or pool of XSLTC's native input data structures
+      containing the input XML document. The <code>XSLTCSource</code> class
+      is located in:</p>
+<blockquote class="source">
+<pre>
+    org.apache.xalan.xsltc.trax.XSLTCSource</pre>
+</blockquote>
+    
+
+    <h5>Transformer parameter settings</h5>
+      <p>XSLTC's native interface has get/set methods for stylesheet parameters,
+      identical to those of the TrAX API. The parameter handling methods of
+      the <code>Transformer</code> implementation are pure proxies.</p>
+    
+
+    <h5>Transformer output settings</h5>
+      <p>The Transformer interface of TrAX has for methods for retrieving and
+      defining the transformation output document settings:</p>
+<blockquote class="source">
+<pre>
+    public Properties getOutputProperties();
+    public String getOutputProperty(String name);
+    public void setOutputProperties(Properties properties);
+    public void setOutputProperty(String name, String value);</pre>
+</blockquote>
+
+      <p>There are three levels of output settings. First there are the default
+      settings defined in the <a href="#">XSLT 1.0 spec</a>, then there
+      are the settings defined in the attributes of the &lt;xsl:output&gt;
+      element, and finally there are the settings passed in through the TrAX
+      get/setOutputProperty() methods.</p>
+
+      <p>
+<img src="trax_output_settings.gif" alt="Output settings" />
+</p>
+      <p>
+<b>
+<i>Figure 3: Passing output settings from TrAX to the translet</i>
+</b>
+</p>
+
+      <p>The AbstractTranslet class has a series of fields that contain the
+      default values for the output settings. The compiler/Output class will
+      compile code into the translet's constructor that updates these values
+      depending on the attributes in the &lt;xsl:output&gt; element. The
+      Transformer implementation keeps in instance of the java.util.Properties
+      class where it keeps all properties that are set by the
+      <code>setOutputProperty()</code> and the
+      <code>setOutputProperties()</code> methods. These settings are written to
+      the translet's output settings fields prior to initiating the
+      transformation.</p>
+
+    
+
+    <h5>Transformer URI resolver</h5>
+      <p>The <code>uriResolver()</code> method of the Transformer interface is
+      used to set a locator for documents referenced by the document() function
+      in XSL. The native XSLTC API has a defined interface for a DocumentCache.
+      The functionality provided by XSLTC's internal <code>DocumentCache</code>
+      interface is somewhat complimentary to the <code>URIResolver</code>, and
+      can be used side-by-side. To acomplish this we needed to find out in which
+      ways the translet can load an external document:</p>
+
+      <p>
+<img src="uri_resolver.gif" alt="URIResolver" />
+</p>
+      <p>
+<b>
+<i>Figure 4: Using URIResolver and DocumentCache objects</i>
+</b>
+</p>
+
+      <p>From the diagram we see that these three ways are:</p>
+      <ul>
+        <li>LoadDocument -&gt; .xml</li>
+        <li>LoadDocument -&gt; DocumentCache -&gt; .xml</li>
+        <li>LoadDocument -&gt; URIResolver -&gt; .xml</li>
+        <li>LoadDocument -&gt; DocumentCache -&gt; URIResolver -&gt; .xml</li>
+      </ul>
+
+    
+
+    
+  
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc/xsltc_trax_api.html b/xalan-j/xsltc/xsltc_trax_api.html
new file mode 100644
index 0000000..43a1a45
--- /dev/null
+++ b/xalan-j/xsltc/xsltc_trax_api.html
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC TrAX API</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">XSLTC Design</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC TrAX API</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="index.html">Overview</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_compiler.html">Compiler design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_whitespace_design.html">Whitespace</a>
+</li>
+<li>
+<a href="xsl_sort_design.html">xsl:sort</a>
+</li>
+<li>
+<a href="xsl_key_design.html">Keys</a>
+</li>
+<li>
+<a href="xsl_comment_design.html">Comment design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_lang_design.html">lang()</a>
+</li>
+<li>
+<a href="xsl_unparsed_design.html">Unparsed entities</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsl_if_design.html">If design</a>
+</li>
+<li>
+<a href="xsl_choose_design.html">Choose|When|Otherwise design</a>
+</li>
+<li>
+<a href="xsl_include_design.html">Include|Import design</a>
+</li>
+<li>
+<a href="xsl_variable_design.html">Variable|Param design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_runtime.html">Runtime</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_dom.html">Internal DOM</a>
+</li>
+<li>
+<a href="xsltc_namespace.html">Namespaces</a>
+</li></ul><hr /><ul>
+<li>
+<a href="xsltc_trax.html">Translet &amp; TrAX</a>
+</li>
+<li>
+<a href="xsltc_predicates.html">XPath Predicates</a>
+</li>
+<li>
+<a href="xsltc_iterators.html">Xsltc Iterators</a>
+</li>
+<li>
+<a href="xsltc_native_api.html">Xsltc Native API</a>
+</li>
+<li>Xsltc TrAX API<br />
+</li>
+<li>
+<a href="xsltc_performance.html">Performance Hints</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC TrAX API</h2>
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>The JAXP/TrAX API</h3>
+
+  <p>XSLTC is 100% compliant with the TrAX poriton of the
+  <a href="http://java.sun.com/xml/jaxp/index.html">JAXP API</a>. This
+  API is a standard extension to Java and there is not much point in describing
+  it in detail in this document.</p>
+
+  
+
+  <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XSLTC's extensions to JAXP/TrAX</h3>
+
+  <p>The <code>Source</code> and <code>Result</code> classes within TrAX are
+  used to handle input and output documents. These classes can be extended to
+  encapsulate additional input types. XSLTC's TrAX implementation contains an
+  extension to the <code>Source</code> class:</p>
+<blockquote class="source">
+<pre>
+    org.apache.xalan.xsltc.trax.XSLTCSource</pre>
+</blockquote>
+
+  <p>This extension class can be used to build XSLTC's internal
+  DOM and cache it for later usage. The following sample shows how to
+  use it with a <code>Transformer:</code>
+</p>
+<blockquote class="source">
+<pre>
+    public void run(String xmlfile, String xslfile) {
+
+          // Create an XSLTCSource for the input XML document
+          XSLTCSource source = new XSLTCSource(xmlfile);
+
+          // Build a StreamSource for the stylesheet
+          StreamSource stylesheet = new StreamSource(xslfile);
+
+          // Create a Transformer instance and process the input
+          Transformer transformer = factory.newTransformer(stylesheet);
+          transformer.transform(source, new StreamResult(System.out));
+	:
+	:
+    }</pre>
+</blockquote>
+
+  <p>If you do chose to implement a DOM cache, you should have your cache
+  implement the <code>javax.xml.transform.URIResolver</code> interface so
+  that documents loaded by the <code>document()</code> function are also read
+  from your cache.</p>
+
+  
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc_history.html b/xalan-j/xsltc_history.html
new file mode 100644
index 0000000..145e807
--- /dev/null
+++ b/xalan-j/xsltc_history.html
@@ -0,0 +1,18063 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: XSLTC software changes</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">XSLTC software changes</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>
+<a href="xsltc_usage.html">Using XSLTC</a>
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>XSLTC software changes</h2>
+<p>The following sections list <a href="xsltc_usage.html">XSLTC</a> changes back to the incorporation of XSLTC into Xalan-Java.</p>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.7.0</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java NodeSortRecordFactory.java SortSettings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Restored old constructor of NodeSortRecordFactory and _collator field of
+NodeSortRecord for binary compatibility.  These changes allow translets
+compiled with an earlier version of XSLTC to continue to run with the new
+version.  They should not be used in newly compiled translets or in new code
+in XSLTC itself.<br />
+
+Also introduced a SortSettings class that is used to bundle sort settings from
+NodeSortRecordFactory into instances of NodeSortRecord.  That reduces some of
+the space overhead in constructing a NodeSortRecord.<br />
+
+Reviewed by Igor Hersht (igorh@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom ForwardPositionIterator.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Revived ForwardPositionIterator class and BasisLibrary.positionF purely to
+support backwards compatibility with translets compiled with earlier versions
+of XSLTC.  New code should not reference either.<br />
+
+Reviewed by Christine Li (jycli@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/03/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeCounter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+xsl:number, minor code cleaning and optimization.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>bhakti@apache.org<b>
+<i> on </i>
+</b>2004/03/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Check if the systemId for the stylesheet is null to avoid getting an NPE.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/03/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Reverting latest patch by Arun. There are some problems with the new code to invoke functions dynamically (e.g. docbook 
+reports a compile-time type check error). The approach taken to determine when to invoke methods dynamically needs to be revisted.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2004/03/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bug 27417.  If an output stream is created by the XSLTC transformer, close
+it after the transformation.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/04/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyImports.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for bugs 27932 and 15333.<br />
+
+Code was incorrectly calculating the set of templates to which an
+xsl:apply-imports instruction applies.  It should consider all templates that
+the current template rule could override, which means that if the template
+appeared in a stylesheet that was included in another stylesheet, any templates
+imported into the including stylesheet have to be considered as well.  The
+method Stylesheet.getMinimumDescendantPrecedence is responsible for this
+calculation.<br />
+
+In addition, when code is generated for an xsl:apply-imports, if any template
+has local parameters, an empty stack frame has to be pushed before attempting
+to apply-imports.  Otherwise, parameters from the template that contains the
+apply-imports instruction will be passed into the matching template.<br />
+
+Reviewed by Joanne Tong (joannet@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/04/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for bug 27932.<br />
+
+Code was incorrectly calculating the set of templates to which an
+xsl:apply-imports instruction applies.  It should consider all templates that
+the current template rule could override, which means that if the template
+appeared in a stylesheet that was included in another stylesheet, any templates
+imported into the including stylesheet have to be considered as well.  The
+method Stylesheet.getMinimumDescendantPrecedence is responsible for this
+calculation.<br />
+
+Reviewed by Joanne Tong (joannet@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>bhakti@apache.org<b>
+<i> on </i>
+</b>2004/05/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+In xsltc currently with the extension redirect the output file is created only if the parent dir exists. 
+Making the behaviour similar to that of xalan wherein the parent directory is also created.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/05/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 29120. The translet now stores a reference to the DocumentBuilderFactory which is used by 
+nodeList2Iterator() in the basis library. Note that to reuse that reference you need to use the same transformer 
+(not just the same template).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler AttributeValueTemplate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Implemented a new parser for ATVs. The old was buggy: did not handle escaped curly braces in all cases and did 
+not handled quotes at all. The old parser assumed that braces came in pairs, but it is possible to have an odd 
+number as in "{{{$foo}}}". The new parser seems to handle all cases correctly.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralAttribute.java LiteralElement.java Parser.java 
+SyntaxTreeNode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Modified code to ensure line number information is propagated from parent to children to ensure we get informative 
+error messages. This was particularly bad for errors in ATVs.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/05/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Improved patch for Bugzilla 29120 based on Matthias' suggestion. A DOMImplementation is now cached for even better performance.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/05/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+If the local is set to Turkish, but the codepage is MS-DOS (US) 437. The BCEL
+InstructionFinder.search(String) method can not find any instructions contain
+letter I. In Turkish, there are 2 lower case i.  Since the search() method is case
+insensitive, change the pattern string to use lower case.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla 29411. New algorithm shoudl optimize the way NS decls are reported for nested literal 
+elements. Note that the algorithm will not work accross non-literal elements. E.g., if there is an 
+xsl:element between two literal elements, the inner literal element may report unnecessary NS delcs. 
+This is just a simple way to ensure that any NS decls defined by the xsl:element instruction are re-defined 
+in the inner literal (see namespace39 in the conf tests).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed a problem with peephole optimization patterns. I don't know if something changed in BCEL since the 
+code was written, but the pattern syntax was not correct. I've also added a new common peephole pattern 
+which should reduce then inner loop's length in some Translets.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom KeyIndex.java xml-xalan/java/src/org/apache/xalan/xsltc/util 
+IntegerArray.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla Bug 28622.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/06/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CastExpr.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ObjectType.java StringType.java Type.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla 27539 and related problems. The main problem was that hashCode() was not implemented 
+correctly in ObjectType. To eleminate further problems I also removed Type.ObjectString as this type is the 
+same as Type.String and the latter can be used in place of the former.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>aruny@apache.org<b>
+<i> on </i>
+</b>2004/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Description: getNode should return the result DOM tree once TransformerHandler completes the transformation.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>aruny@apache.org<b>
+<i> on </i>
+</b>2004/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime 
+AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Description: Patch for the support of extension attribute "intent-amount" for xsl:output. Supports the old URI 
+{http://xml.apache.org/xslt} and new URI{http://xml.apache.org/xalan}.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>aruny@apache.org<b>
+<i> on </i>
+</b>2004/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax SAX2DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Description: Patch for concatenating adjacent text nodes.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/07/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Submitted by:	Yash Talwar<br />
+Reviewed by:	Brian Minchau<br />
+Fix for bugzilla 28796.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/08/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc TransletException.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/getopt GetOptsException.java IllegalArgumentException.java 
+MissingOptArgException.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler CompilerException.java IllegalCharException.java 
+ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util MultiHashtable.java ObjectFactory.java StringStack.java 
+TypeCheckError.java xml-xalan/java/src/org/apache/xalan/xsltc/dom BitArray.java ObjectFactory.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/runtime ObjectFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax 
+ObjectFactory.java TemplatesImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added serialVersionUID for classes which implement Serializable interface. Patch created by Christine Li (jycli@ca.ibm.com) 
+and was reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/09/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Variable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Skip translation for any unreferenced variables. Patch reviewed by Christine Li (jycli@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/11/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bug report XALANJ-1994.<br />
+
+The CallTemplate.getCalleeTemplate() method was searching through a Vector of
+all templates defined by the logical stylesheet, and picked out the first with
+the same name referenced by the current xsl:call-template instruction.  However,
+that failed to account for import precedence.  The SymbolTable.lookupTemplate
+method takes into account import precedence, and should be used instead.<br />
+
+Patch was reviewed by Christine Li (jycli@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/12/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java Operators.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2003. Problem was unrelated to recursion, but simply a bug in the basis library. Swapping 
+operands requires swapping operators and the latter was not done. A workaround for this bug would be to 
+swap the operands (and operator) in the stylesheet (as that would not cause any swapping in the basis library).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/12/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2TO.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2015. Namespace declarations are now reported on a first pass to avoid the problem described in the bug report.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/12/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java Parser.java SyntaxTreeNode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-1761. Output properties from multiple xsl:output instructions are now correctly merged (previously, 
+only cdata-section-elements were handled correctly).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/12/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime Operators.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Replaced meaningless numbers by predefined constants in swapArray[] vector.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>joannet@apache.org<b>
+<i> on </i>
+</b>2004/12/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed XALANJ-1812. Template inlining setting propagated to imported stylesheets.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2005/02/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Number.java xml-xalan/java/src/org/apache/xalan/xsltc/dom 
+AnyNodeCounter.java MultipleNodeCounter.java NodeCounter.java SingleNodeCounter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Implement Errata E24 for XSLTC, when the value attribute of xsl:number is NaN, infinite or less than 0.5. 
+More details please refer to bug report XALANJ-1979. Patch is reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>ytalwar@apache.org<b>
+<i> on </i>
+</b>2005/02/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyImports.java 
+Mode.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ClassGenerator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for XALANJ-1417.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>ytalwar@apache.org<b>
+<i> on </i>
+</b>2005/02/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java TestSeq.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
+MethodGenerator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for XALANJ-2058. In the code, the problem is that a pattern gets compiled once, 
+and then this compiled pattern gets re-used whenever the pattern is
+needed in any method.
+The fix is that pattern should get compiled once per method.  So, pattern get reused only within a given method.
+for any new method, a pattern is recompiled.
+This fix has been reviewed by Henry Zongaro. Henry had also provided suggestions about the fix to resolve this issue.
+Thanks Henry for his valuable input.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/03/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xalan readme.xml resources.xml xsltc_usage.xml xml-xalan/java/xdocs/sources/xsltc 
+README.xslt README.xsltc<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-1937.  Change references in the docs from bugzilla to Apache Jira for reporting new issues and checking the 
+status of existing issues.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>ytalwar@apache.org<b>
+<i> on </i>
+</b>2005/03/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Text.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+This is a fix for XALANJ-2081.
+In class org.apache.xalan.xsltc.compiler.Text, a check was being done to find out if a given text string is all whitespaces.
+In case, a given text string is all whitespace, a call to serializer is not made.
+The code was using trim() method from java.lang.String.  trim() method trimmed characters as whitespaces 
+that are not considered as whitespace in XML.
+The code logic is changed to check if a given string is all whitespace accoding to XML specifications.
+I would like to thank Michael Glavassevich and Brian Minchau for their input to resolve this issue.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2005/04/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Clear XML reader for the case in which them main stylesheet is passed using a DOMSource. This fixes the problem 
+of trying to use a DOM2SAX reader for included/imported stylesheets that are resolved by user-defined URI resovers.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/05/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Put in the missing Transformer.reset() implementation when doing the JAXP 1.3 integration.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/05/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output TransletOutputHandlerFactory.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/trax SAX2DOM.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Support DOMResult.nextSibling in XSLTC. The nextSibling information is passed from TransformerImpl to TransletOutputHandlerFactory,
+then to SAX2DOM. If nextSibling is not null, SAX2DOM inserts the result nodes before it.
+Otherwise the result nodes are appended as the last children of the parent.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/05/31<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan Version.java xml-xalan/java/src/org/apache/xalan/processor 
+TransformerFactoryImpl.java xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java ErrorMsg.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/trax SmartTransformerFactoryImpl.java TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2123. Move hard-coded messages for JAXP 1.3 into resource bundles.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2005/06/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java Parser.java TransletOutput.java XSLTC.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java ErrorMessages.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TemplatesImpl.java TransformerFactoryImpl.java 
+TransformerImpl.java TrAXFilter.java Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2136. Implement the secure processing feature for XSLTC. Extension functions
+and extension elements are disabled when this feature is set to true.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/06/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom KeyIndex.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for XALANJ-1938.<br />
+
+A KeyIndex object contains a Hashtable mappings from key values to the
+IntegerArray objects that contain the set of nodes selected by those key values.
+For a reference to the key function, the lookupKey method finds the nodes
+selected by a particular key value, and the merge method merges all the nodes
+selected if more than one key value is specified for the one refernce to the key
+function.<br />
+
+The problem was that the lookupKey and merge methods operated on the "live"
+versions of the IntegerArrays stored in the mapping Hashtable, so that one
+reference to the key function might affect the result of subsequent references
+to the key function.  Changed those methods to make clones of the selected
+IntegerArray objects, which can be safely modified without affecting the
+original IntegerArrays.<br />
+
+This patch was reviewed by Joanne Tong (joannet@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/06/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bug XALANJ-2097 from Nick Van den Bleeken.
+(Nick.VandenBleeken@pandora.be), reviewed by Henry Zongaro.<br />
+
+The code generated for a path expression of the form $var/self::node() was
+incorrect.  It looked like the following, where "i" refers to the context node.<br />
+
+  new StepIterator(dtmaxisiterator1.cloneIterator(), new SingletonIterator(i));<br />
+
+That's incorrect, because the SingletonIterator will only return the node used
+upon its instantiation, rather than the node provided from the parent step
+expression by the StepIterator.<br />
+
+The SingletonIterator should only be used if the self::node() is not a step
+in a path expression.  In the case of a path expression, dom.getAxisIterator
+should be used to create the axis iterator instead.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/06/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler AbsoluteLocationPath.java FilteredAbsoluteLocationPath.java 
+FilterExpr.java FilterParentPath.java FunctionCall.java KeyCall.java ParentLocationPath.java Sort.java Step.java StepPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-2146.  Reviewed by Christine Li (jycli@ca.ibm.com).<br />
+
+Section 4.3.4 of the JVM specification prohibits an uninitialized object from
+appearing on the stack or in a local variable when a backwards branch is
+executed.  We need to guard against that in the generated code in XSLTC by
+storing arguments to constructors in temporary variables if there's any
+possibility that the code used to calculate such arguments might contain a
+backwards branch.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2005/07/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
+ErrorMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added missing apostrophe for error messages. Fixed bug report XALANJ-2167. Patch is reviewed by Sarah McNamara (mcnamara@ca.ibm.com)
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2005/07/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bug report XALANJ-2140.<br />
+
+The AbstractTranslet._keyIndexes field is used to record the sets of keys
+for a particular transformation by name.  This table was not cleared at the
+end of a transformation, so the keys from one transformation persisted to
+subsequent transformations.  Fixed this by adding a try-finally block in
+the AbstractTranslet.transform method and setting _keyIndexes to null in the
+finally block.<br />
+
+Reviewed by Brian Minchau (minchau@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/07/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Minor change in the error message,
+fix was found by Brian Vargas, patch produced and
+reviewed by Brian Minchau.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2005/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixing a NPE for when _locator is null in the XSLTC Parser.
+Applyin the patch in XALANJ-2154 from Brian Minchau, reiwed and approved by Santiago P.G.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor XSLProcessorVersion.java xml-xalan/java/src/org/apache/xalan/xslt 
+EnvironmentCheck.java xml-xalan/java/src/org/apache/xpath/domapi XPathEvaluatorImpl.java XPathExpressionImpl.java 
+XPathNSResolverImpl.java XPathResultImpl.java xml-xalan/java/src/org/apache/xml/serializer Version.src xml-xalan/java/xdocs/sources 
+entities.src xalan-jlocal.xml xalan-jsite.xml xml-xalan/java/xdocs/sources/xalan commandline_xsltc.xml commandline.xml downloads.xml 
+extensions.xml extensionslib.xml faq.xml features.xml getstarted.xml index.xml overview.xml public_apis.xml resources.xml samples.xml 
+trax.xml usagepatterns.xml whatsnew.xml xpath_apis.xml xsltc_usage.xml xml-xalan/java/xdocs/sources/xsltc README.xslt README.xsltc<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Doc changes for Xalan Java 2.7.0 release.
+This change was reviewed and approved in XALANJ-2170 by Christine Li.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>mcnamara@apache.org<b>
+<i> on </i>
+</b>2005/07/13<br />
+<b>
+<i>Modified: </i>
+</b> java/src/org/apache/xalan/xsltc/compiler xpath.lex<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XALANJ-1912.<br />
+Provided by Santiago Pericas-Geertsen<br />
+Reviewed by Yash Talwar.<br />
+<br />
+</li>
+
+</ul>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.6.0</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/31<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use translet as whitespace filter if it implements the StripFilter interface (This class should 
+probably be deprecated to avoid having to get it in sync with the Process class).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/31<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/processor StylesheetPIHandler.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla 24187 by Bhakti Mehta (Bhakti.Mehta@sun.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/11/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla 24188 by Bhakti Mehta (Bhakti.Mehta@sun.com). The runtime now attempts to resolve a reference when 
+the URI resolver returns null.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/11/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing patch for Bugzilla 24414 by Bhakti Mehta (Bhakti.Mehta@sun.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/11/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Param.java ParameterRef.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla 24518 by Mehta Bhakti (Mehta.Bhakti@sun.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/11/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java Util.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla 24695 by Bhakti Mehta (Bhakti.Mehta@sun.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/11/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java Util.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updated patch for Bugzilla 24695 by Bhakti Metha. This patch gets an XMLReader from a SAXParserFactory if unable 
+to obtain one from an XMLReaderFactory.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/11/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java Stylesheet.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Morris Kwan (mkwan@ca.ibm.com), reviewed by myself:<br />
+<br />
+
+Split namesArray in translet into three arrays:  namesArray, urisArray and
+typesArray.<br />
+<br />
+
+Previously, entries in the namesArray had to be examined at run-time to
+distinguish those that represented elements, from those that represented
+attributes (prefixed by an '@'), and those that represented namespace node
+names (prefixed by a '?').  In addition, any namespace URI for the element or
+attribute was similarly stored in the namesArray entry.  So,
+"http://example.org:abc" and "http://example.org:@abc" respectively represented
+an element and an attribute named abc in the http://example.org namespace;
+"?abc" represented a namespace prefix of abc.<br />
+<br />
+
+With this change, the namesArray will have entries for "abc" in all three
+cases; the urisArray will contain entries for "http://example.org" for the
+element and attribute, and an empty string for the namespace prefix; and the
+typesArray will contain the value 1 for the element, 2 for the attribute and 13
+for the namespace (which correspond to the DTM constant values for those kinds
+of nodes).<br />
+<br />
+
+In addition, these values are stored in static arrays in the translet, and
+references to those arrays are copied to instance fields in the translet's
+constructor, rather than constructing arrays and initializing all their entries
+in the constructor each time.<br />
+<br />
+
+All this serves to reduce the overhead of initializing a transformation.<br />
+<br />
+
+
+Patch from myself, reviewed by Morris Kwan:<br />
+<br />
+
+Introduced a versioning mechanism in AbstractTranslet.  After constructing an
+object of a class that extends AbstractTranslet, the postInitialization method
+must be called.  That method will detect any versioning differences that can
+be resolved automatically, if a translet was compiled with an older version of
+the XSLTC than is being used at run-time.  The version number is stored in the
+translet's transletVersion field.<br />
+<br />
+
+In many cases, incompabilities run up against Java's binary compatibility
+rules, and fail catastrophically.  This versioning mechanism is designed to
+detect those cases that can't be detected by the JVM.  The first use of this
+mechanism is to translate from the old form of the namesArray used by old
+translets, to the new form expected by the modified version of the XSLTC
+run-time, as described above.<br />
+<br />
+
+In addition, if the translet version detected by the XSLTC run-time is more
+recent than any supported by the XSLTC run-time, an error will be reported.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/11/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/runtime ErrorMessages.java xml-xalan/java/src/org/apache/xalan/xsltc/trax 
+TemplatesImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from myself, reviewed by Morris Kwan (mkwan@ca.ibm.com):<br />
+<br />
+
+Introduced a versioning mechanism in AbstractTranslet.  After constructing an
+object of a class that extends AbstractTranslet, the postInitialization method
+must be called.  That method will detect any versioning differences that can
+be resolved automatically, if a translet was compiled with an older version of
+the XSLTC than is being used at run-time.  The version number is stored in the
+translet's transletVersion field.<br />
+<br />
+
+In many cases, incompabilities run up against Java's binary compatibility
+rules, and fail catastrophically.  This versioning mechanism is designed to
+detect those cases that can't be detected by the JVM.  The first use of this
+mechanism is to translate from the old form of the namesArray used by old
+translets, to the new form expected by the modified version of the XSLTC
+run-time, as described above.<br />
+<br />
+
+In addition, if the translet version detected by the XSLTC run-time is more
+recent than any supported by the XSLTC run-time, an error will be reported.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc DOMEnhancedForDTM.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/dom DocumentCache.java DOMAdapter.java DOMWSFilter.java 
+KeyIndex.java LoadDocument.java SAXImpl.java XSLTCDTMManager.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime 
+AbstractTranslet.java BasisLibrary.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changes to permit different DTM implementations to be supplied to XSLTC.<br />
+<br />
+
+Part of the change was to replace hard-coded references to SAXImpl with
+references to a new interface - DOMEnhancedForDTM.  This part of the change was
+supplied by Joseph Kesselman (keshlam@us.ibm.com).<br />
+<br />
+
+The other part of the change was to use ObjectFactory to look up a new XSLTC
+DTM Manager service provider (org.apache.xalan.xsltc.dom.XSLTCDTMManager).  The
+provider is looked up once when a TransformerFactory is created, and used by
+any Transformer objects created by that TransformerFactory.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java TransformerImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changes to permit different DTM implementations to be supplied to XSLTC.<br />
+<br />
+
+XSLTC will now use ObjectFactory to look up a new XSLTC DTM Manager service
+provider (org.apache.xalan.xsltc.dom.XSLTCDTMManager).  The provider is looked
+up once when a TransformerFactory is created, and used by any Transformer
+objects created by that TransformerFactory.<br />
+<br />
+
+Also, moved code for caching XMLReader objects from XSLTC's
+TransformerFactoryImpl to a new org.apache.xml.utils.XMLReaderManager class.<br />
+<br />
+
+It is now the responsibility of the DTMManagerDefault class to request one of
+these cached XMLReader objects, so the benefit of reusing an XMLReader is now
+conferred upon both XSLTC and Xalan-J Interpretive, as well as upon references
+to the document() function.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom ForwardPositionIterator.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added comments to describe the situation in which this iterator is used.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/12/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Creation of translet's class loader should be wrapped in a doPrivileged block (java.lang.RuntimePermission createClassLoader).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>rameshm@apache.org<b>
+<i> on </i>
+</b>2003/12/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/lib/sql SQLQueryParser.java xml-xalan/java/src/org/apache/xalan/processor 
+XSLProcessorVersion.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util Util.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime Constants.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Adding explicit final keyword to the intended constants which are defined with public static keywords. This will avoid the problem 
+of cross site java sandbox violation. In the case of xsltc/compiler/util/Util.java making the "filesep" variable to private to avoid 
+the  chance of somebody else   changing the value of this static variable.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/dom 
+DocumentCache.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Take advantage of DTM pluggability support for XSLTC.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/12/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The getDOM method might be entered more than once during a transformation, so
+the DTMManager that is created the first time in must be saved so that
+subsequent DTM's can be created with respect to it, and then discarded at the
+end of the transformation.<br />
+<br />
+
+This change restores logic that I had foolishly eliminated with my previous
+change to this file.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/12/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java BooleanCall.java CastExpr.java 
+CopyOf.java DocumentCall.java EqualityExpr.java Expression.java FilterExpr.java ForEach.java FunctionCall.java Key.java KeyCall.java 
+NameBase.java NumberCall.java RelationalExpr.java StringCall.java VariableBase.java WithParam.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for XSLTC's parameter optimization introduced in 2.5.2. The problem is that a param's default value can now be compiled multiple 
+times, once for every call to the template for which that param is not specified. This essentially turns the AST into a graph, 
+which requires the state of a param subtree to be reset after the each compilation. In particular, the variable Expression._startReset 
+was not reset and this resulted in calls to setStartNode() to be generated only the first time the param's default value was 
+compiled. After some analysis, I realized that _startReset was no longer necessary, so I removed it. I also renamed 
+Expression.startResetIterator() to Expression.startIterator() since calls to reset() are no longer generated within this method.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/12/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Setting the maximum fraction digits on a DecimalFormat object to Integer.MAX_VALUE causes problems in some JDKs. Since 
+only doubles need to be formatted, I've changed the code to set the maximum to 340. I've also optimized formatNumber(), 
+the new version uses setters on the DecimalFormat object instead of calling toPattern().<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/12/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util BooleanType.java IntType.java RealType.java ReferenceType.java 
+StringType.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Type conversions from internal to external Java types revisited: (1) Type.Int and Type.Real are now treated identically 
+given that the former is an optimization for the latter (i.e. their use should be transparent to the user) (2) Better support 
+Type.Reference, conversions to integral types are now supported. There are still some conversions that are supported by 
+Xalan and not by XSLTC. We need to either revisit the conversion table for XSLTC or document the differences.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/12/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java Param.java ParameterRef.java 
+Template.java VariableBase.java WithParam.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util NamedMethodGenerator.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The parameter optimization implemented in 2.5.2 does not work in all cases. The problem (see Bugzilla 25449) is that a param's 
+default value needs to be compiled multiples when there are mulitple calls the a template none of which has a correspoding with-param. 
+However, ASTs store an internal state which is not restored after compilation; consequently, only the first compilation is 
+guaranteed to succeed. Stated differently, the AST cannot be operated as a graph because sub-tree sharing causes problems.<br />
+<br />
+
+The optimization has now been changed so that a param default value is compiled only once by the callee instead of multiple 
+times by each caller. A caller will now pass 'null' when there is no with-param; a callee will only initialize a param if 
+its value is 'null'. This ensures that default values are compiled exactly once while at the same time preserving the XSLT semantics.
+<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/01/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+SAXImpl.startDocument was calling SAX2DTM.startDocument followed by
+SAX2DTM.startPrefixMapping for the xml prefix.  However, the
+SAX2DTM.startElement always ensures the xml prefix is declared for the first
+element.  The effect of the startPrefixMapping call was to create two namespace
+nodes on the first element declaring the xml prefix.  This had no discernible
+consequence, except to throw off the numbering of subsequent nodes with the
+generate-id() function.<br />
+<br />
+
+I've eliminated the redundant call to startPrefixMapping, and adjusted the gold
+test output files for the generate-id function.<br />
+<br />
+
+Reviewed by Christine Li (jycli@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/01/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 25924 by Bhakti Mehta (Bhakti.Mehta@sun.com). Variable _lastNext must be preserved in setMark() and 
+restored in gotoMark().<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/01/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java ForEach.java ForwardPositionExpr.java 
+PositionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/dom ForwardPositionIterator.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing a patch from Bhakti Mehta (Bhakti.Mehta@sun.com). ForwardPositionIterators and ForwardPositionExprs are not 
+needed anymore after the intergration with DTM. Despite that, ForwardPositionIterators were still being used even though 
+they did not provide any additional functionally (they were basically identity iterators). This patch eliminates the need 
+for these iterators (and the corresponding compile-time expressions) and also replaces calls to BasisLibrary.positionF() 
+with calls to currentIterator.getPosition(). The resulting code should be smaller and faster.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/01/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Removing unused constant.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/01/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util NodeSetType.java ResultTreeType.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLT-&gt;Java and Java-&gt;XSLT conversion table revisited. I made sure that two internal types corresponding to the same 
+XSLT type had identical conversion rules (e.g. IntType and RealType). The multi-step conversions NodeSetType-&gt;int and 
+ResultTreeType-&gt;double have been eliminated in order to simplify the table (they can always by implemented externally). 
+The resulting conversion table is still not identical to the interpreter (and perhaps it will never be) so it should be 
+documented separately.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 23046.
+
+For included stylesheet, set the _numberFormattingUsed flag to true
+for its including stylesheet too.<br />
+<br />
+
+Reviewed by Henry Zongaro (zongaro@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/02/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FilterExpr.java Predicate.java Step.java StepPattern.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla 19194. I've made the following changes: (i) re-wrote Predicate.typeCheck() (ii) the predicate optimizations are 
+turned off for FilterExpr, as they don't apply in all cases (iii) sync up Step, StepPattern and FilterExpr to accomodate the new 
+changes. The interaction between these classes is non-trivial, and the code for some optimizations is brittle, to say the least. 
+As part of this patch, I rolled back a patch to FilterExpr and fixed Bugzilla 25783 which wasn't really related despite what the 
+bug report states. For the 2.0 work, it would be nice to place optimization code in separate classes so that it can be easily 
+maintained and also easily deactivated via a command-line flag.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xpath/functions FuncRound.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler 
+RoundCall.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 24111.
+
+The string values for both positive and nagative zero are 0. However,
+a number div 0 returns Infinity, a number div -0 returns -Infinity.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/02/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Predicate.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 24788. NodeValue optimization was too optimistic. Since the value in 'step = value' is not 
+compiled in the predicate's context, it must be limited to expressions that are context independent, but this 
+was not the case as the example in 24788 shows.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2004/02/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2TO.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing patch by Bhakti for XSLTC. If attributes are created without an explicit prefix, then NamespaceMappings.generateNextPrefix 
+will be called to generate a prefix. Also if elements are created using createElementNS(null,localname) then they will be 
+serialized properly without being in default namespace.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+A slightly faster implementation of round function.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a bug introduced during optimizing for the previous code
+Should check for NaN cases.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2004/02/16<br />
+<b>
+<i>Modified: </i>
+</b> Most files in the Xalan Java cvs repository (too many to list)<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New Apache 2.0 license update.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/02/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom AdaptiveResultTreeImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla Bugs 24793.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>bhakti@apache.org<b>
+<i> on </i>
+</b>2004/02/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2TO.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for the bug in DOM2TO where there was a call to _handler.addAttribute
+which was moved to the if clause and hence attributes in no namespace were
+lost when using an identity transformation with DOMSource.<br />
+<br />
+
+Thanks to Henry Z. for pointing it out and Santiago for reviewing.  I have tested it locally. Please let me 
+know if you see any issues with this.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla bug report 26697
+
+XSLTC supports convert a NodeList to an internal DOM iterator.
+Use setAttributeNS method to copy attribute node when an attribute
+has a prefix, which maps to a namespace URI<br />
+<br />
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>jycli@apache.org<b>
+<i> on </i>
+</b>2004/02/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Always use setAttributeNS() method and pass null as its namespace for non-namespaced nodes.
+Thanks Joe Kesselman for pointing it out.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>aruny@apache.org<b>
+<i> on </i>
+</b>2004/02/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java FunctionCall.java Param.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ReferenceType.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime 
+CallFunction.java ObjectFactory.java SecuritySupport.java SecuritySupport12.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Description : Adding the basic functionality for resolving external function dynamically. If static resolution fails then 
+Dynamic resolution is used as last resort.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2004/02/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/res XSLTErrorResources.java xml-xalan/java/src/org/apache/xalan/transformer 
+TransformerIdentityImpl.java TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
+ErrorMsg.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla Bug 25368 submitted by Joanne Tong.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java VariableBase.java WithParam.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla bug reports 24988 and 25368 from Joanne Tong
+(joannet@ca.ibm.com) reviewed by myself.<br />
+<br />
+
+24988:
+Changes required to test whether an attribute value that is required to be
+a QName, NCName or whitespace-separated list of QNames actually meets that
+requirement.<br />
+<br />
+
+25368:
+Code was basing variable and parameter names on the local part of the name,
+rather than including the namespace URI in the name.  This resulted in
+collisions in the generated code between distinct variables that had the same
+local-name.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Number.java Predicate.java Sort.java Variable.java 
+VariableRef.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla bug report 25368 from Joanne Tong (joannet@ca.ibm.com)
+reviewed by myself.<br />
+<br />
+
+Code was basing variable and parameter names on the local part of the name,
+rather than including the namespace URI in the name.  This resulted in
+collisions in the generated code between distinct variables that had the same
+local-name.<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Part of fix for bug report 24985.  The code that resulted for a NodeTest of
+the form "@p:*" or "attribute::p:*" was identical to that for "@*" - in other
+words, the prefix was not being tested.  Fixed this so that
+DOM.getNamespaceAxisIterator is used to create the right kind of iterator.<br />
+<br />
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com).<br />
+<br />
+</li>
+
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2004/02/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java<br />
+<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Part of fix for bug reports 24985 and 24365.<br />
+<br />
+
+Moved the NamespaceChildrenIterator and NamespaceAttributeIterator classes into
+this class from SAX2DTM2, where they can use fields specific to SAXImpl to
+refer to namespace information.<br />
+<br />
+
+Also added a new NamespaceWildcardIterator that handles axes other than the
+child and attribute axes (which are handled by the specific iterators already
+mentioned).<br />
+<br />
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com).<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.5.2</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Expression.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla 20685. In startResetIterator(), check see if the
+expression wrapped by the CastExpr is a VariableRef. If so, don't
+generate a call to setStartNode.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix a minor bug in MultiDOM.addDOMAdapter().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc DOMCache.java xml-xalan/java/src/org/apache/xalan/xsltc/dom 
+DocumentCache.java LoadDocument.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #15828.
+Arguments to URIResolver.resolve method for document function, in XSLTC are now
+href: argument passed to document function
+base: URI of stylesheet<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Putting back LoadDocument.java<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #15828.
+Arguments to URIResolver.resolve method for document function, in XSLTC are now
+href: argument passed to document function
+base: URI of stylesheet<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Putting back TransformerImpl<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #15828.
+Arguments to URIResolver.resolve method for document function, in XSLTC are now
+href: argument passed to document function
+base: URI of stylesheet<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added SAXTransformerFactory.FEATURE and SAXTransformerFactory.FEATURE_XMLFILTER
+to the list of features that are implemented.  Fix for bug 20795.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc DOM.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler SyntaxTreeNode.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java MultiDOM.java SAXImpl.java SimpleResultTreeImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Performance improvement for XSLTC
+Don't add a simple or adaptive RTF to the DTMManager if the nodeset
+extension is not used. The DOMAdapters are also not created in
+this case. This is a noticeable improvement for stylesheets that use
+many small RTFs but do not use the nodeset extension.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java Mode.java Param.java Template.java WithParam.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util NamedMethodGenerator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Performance improvement for XSLTC
+
+New codegen solution for parameter passing in named templates,
+which provides significant improvement for stylesheets that use
+xsl:call-template and xsl:with-param heavily.
+
+The old solution generates code to call Translet.addParameter(),
+which seems to be too expensive. In the new solution, parameters
+are passed to named templates via method arguments. The method
+signature for a named template is not fixed. It depends on the number
+of parameters declared in the template.
+
+The caller (xsl:call-template) is responsible for generating the
+correct parameter list and passes it to the called template. This is
+done in the CallTemplate class, which finds out the corresponding
+called template and processes its own xsl:with-param children together
+with the xsl:params in the called template to generate an effective
+parameter list. In the case where a xsl:param references another xsl:param,
+local variables are generated to hold the temporary parameter value.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #15828.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TrAXFilter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add a "public Transformer getTransformer()" method to XSLTC's TrAXFilter class.
+The Xalan TrAXFilter class already has such an interface.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java XSLTCSource.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for XSLTCSource (see bugzilla 21048).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/xdocs/sources/xsltc xsltc_trax_api.xml<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update documentation about how to use XSLTCSource.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java VariableBase.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/dom CachedNodeListIterator.java ClonedNodeListIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Performance improvement for XSLTC
+
+Introduce two new iterators (CachedNodeListIterator and CloneNodeListIterator).
+They are used by variable/param references that are evaluated to nodesets.
+CachedNodeListIterator traverses the underlying iterator once and caches the
+nodes in an IntegerArray. Its clone() method returns an object of
+CloneNodeListIterator, which also retrieves nodes from the cache.
+
+This mostly improves the case where a variable is referenced multiple times
+in a context. In the old code, the iterator for the variable is traversed
+as many times as the variable is referenced. Using the cached iterators,
+the iterator is only traversed once. All later references retrieve nodes
+from the cache.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java MultiDOM.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java xml-xalan/java/src/org/apache/xalan/xsltc/trax 
+TemplatesImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Implement a feature to cache the DTM for the stylesheet in
+the Templates object. This improves the case where document('')
+is used. In this case the DTM for the stylesheet is only built
+once per thread. It can be reused by multiple transformers
+created by the sample Templates.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/06/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom UnionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Christine Li (jycli@ca.ibm.com) for bugzilla 20913, with
+modifications. In UnionIterator, after calling the getLast() method, the
+heap is not restored properly. Recreate the heap in gotoMark(), as well
+as restore _returnedLast and _heapSize.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DocumentCache.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Put back DocumentCache<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xsltc 
+DOMCache.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DocumentCache.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Update the DocumentCache class to be compatible with the DOMCache 
+interface.  Although, with the native interface no longer supported, users
+should not be using the DocumentCache.  Instead they should set a 
+URIResolver on the Transformer in order to resolve arguments
+passed to the document function.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/06/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for 3 trax.localPath failures.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/07/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a memory leak problem with the DTMManager.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/07/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java Stylesheet.java Template.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a few conformance regressions introduced by the addParameter
+optimization work.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/07/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla 20074. Don't create an IntegerArray of size 0.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/07/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java ErrorMsg.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC: TransformerHandler.setResult should throw an IllegalArgumentException
+when the result argument is null.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/07/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util MethodGenerator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bug 20256. Remove an unused reference to an
+inexistent class.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/07/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for bugzilla #20537.  
+When URIResolver was set for includes/imports, the system id of the included/imported
+files was not always set correctly.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/07/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Predicate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch from Igor Hersht (igorh@ca.ibm.com) for Bugzilla bug 18821.
+At some point in the recent past, Predicate started trying to optimize filter
+expressions with positional predicates, but the receiving code in FilterExpr
+was always incorrect.  The fixes to FilterExpr and related code aren't so
+straightforward, so the easiest thing to do for now is to disable the
+broken optimization for FilterExpr objects.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/07/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom UnionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch from Igor Hersht (igorh@ca.ibm.com) for Bugzilla bug 18821.
+Nested iterators in UnionIterator weren't correctly handling multiple calls to
+setStartNode in generated code.  Fixed by ignoring calls after the first.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/07/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla 20832. Also fix testcase attribset19.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/07/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla 21805.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/08/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added code to create static char[] fields in the translet containing the
+literal text in the source stylesheet.  The code generation for xsl:comment and
+for literal text that constructs text nodes takes advantage of this by using
+the serializer's comment(char[],int,int) and characters(char[],int,int) methods,
+respectively, rather than the comment(String) and characters(String) methods.
+The former pair of methods avoid some potential overhead in the serializer from
+copying the contents of strings to char[] objects.
+
+Code that creates a static initializer method in a translet was written by
+Morris Kwan (mkwan@ca.ibm.com).
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/08/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Comment.java Constants.java Text.java XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added code to create static char[] fields in the translet containing the
+literal text in the source stylesheet.  The code generation for xsl:comment and
+for literal text that constructs text nodes takes advantage of this by using
+the serializer's comment(char[],int,int) and characters(char[],int,int) methods,
+respectively, rather than the comment(String) and characters(String) methods.
+The former pair of methods avoid some potential overhead in the serializer from
+copying the contents of strings to char[] objects.
+
+Reviewed by Morris Kwan (mkwan@ca.ibm.com)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>grchiu@apache.org<b>
+<i> on </i>
+</b>2003/08/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Bruno Dumon (bruno@outerthought.org) for bugzilla 20114.
+When using XSLTC's TemplatesHandler to create templates, errors are never
+reported; getTemplates() just returns null.
+Changed behaviour to be inline with Xalan behaviour: stylesheets are
+compiled in the endDocument() event and a SAXException wrapping the real
+exception is thrown.<br />
+<br />
+</li>
+\<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2003/08/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler AttributeSet.java Constants.java 
+UseAttributeSets.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util AttributeSetMethodGenerator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla Bug 19918<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/08/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix bytecode generation problem for extension method calls via
+interfaces for bugzilla 22115.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/08/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 19972	
+Submitted by:	William Lee (william.lee@cognos.com)
+Reviewed by:	Brian Minchau and Gordon Chui
+
+The code loops over elements in a Vector, incrementing the index j.
+Some elements should not be processed so they were removed from the Vector.
+The removal of element "j" shifted all higher elements down and made the
+Vector 1 shorter.  So removal of an element and incrementing "j" actually caused
+elements to be skipped.
+
+It is not quite clear why the element is being removed from the Vector rather
+than just skipped over. For safety sake an iteration over the loop either removes an
+element, or increments "j", but not both in the same iteration.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for bug 19973 from Christine Li (jycli@ca.ibm.com).
+A call to buildKeys (for xsl:key) should be generated before a call to topLevel
+(to handle top-level variable and parameter declarations) because top-level
+variables and parameters can contain references to the key() function, but not
+the other way around.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/09/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler VariableRefBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applied patch for bug 22769 from Christine Li (jycli@ca.ibm.com).  If a
+variable reference occurs inside the definition of another variable, XSLTC adds
+a dependency link upon the referenced variable to the defined variable.
+However, if the referenced variable was overrode by another variable definition
+with higher import precendence, the dependency should be placed on the
+overriding variable instead.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/09/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/trax Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Moved return statements outside of finally block. The compiler correctly points out that when an exception is not caught by a catch, the 
+finally block cannot return normally.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Ensure we set a non-empty name for the translet even when one cannot be obtained from the systemId.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CallTemplate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed problem in XSLT parameter optimization. The search for the template being called should start from the top-level stylesheet. 
+The incorrect signature was generated when xsl:template and xsl:call-template were located in different stylesheets.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+(Committing this again to get the log message right! - c.f. revision 1.54)
+1. Added Javadoc comments to instance variables.
+2. getAllValidTemplates() now caches result in top-level stylesheet.
+3. setSystemId() maps a file system path to a URI (if needed).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java xml-xalan/java/src/org/apache/xalan/xsltc/dom 
+SAXImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+1. New code to map relative paths to URIs in Include.java and Import.java.
+2. If SourceLoader returns null, the JAXP API states that the processor
+should attempt to resolve the reference. Changed the logic to do this.
+(1 and 2 should solve some of the problems we have resolving relative
+paths and also using URI resolvers. More testing is needed, though).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CastCall.java Parser.java xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Adding a new extension function for XSLTC. Using this extension function, it is
+possible to recover type information lost by the use of xsl:param (see Bugzilla
+19038). Here is an example:
+
+&lt;xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:java="http://xml.apache.org/xalan/java"
+    xmlns:xsltc="http://xml.apache.org/xalan/xsltc"&gt;
+
+&lt;xsl:param name="object"/&gt;
+
+&lt;xsl:template match="/"&gt;
+    &lt;xsl:value-of select="java:length(xsltc:cast('java.lang.String', $object))"/&gt;
+&lt;/xsl:template&gt;
+
+&lt;/xsl:stylesheet&gt;
+
+Without using xsltc:cast(), XSLTC will report an error as the type of param
+'object' cannot be determined statically. The type of xsltc:cast() is:
+
+object[T] cast('T', reference | object[R])
+
+where 'T' indicates that the type of the first argument must be a literal
+string. A ClassCastException may be thrown at runtime if R is not convertible
+to T.
+
+I believe we still need a fully-dynamic solution that does not rely on this
+extension function. However, the two solutions can coexists, especially since
+using xsltc:cast() will always be more efficient than any alternative based
+on Java reflection.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>igorh@apache.org<b>
+<i> on </i>
+</b>2003/10/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler xpath.cup XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/dom 
+DOMAdapter.java SAXImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch for Bugzilla Bug 14607<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix the makeNode and makeNodeList methods in SAXImpl for bugzilla 23115.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Sort.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Apply the patch for bugzilla 23271 from Bruno Fernandez-Ruiz (brunofr@olympum.com).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 15901
+Submitted by:	Brian Minchau
+Reviewed by:	John Meyer (bug reporter)
+
+XSLTC now uses properties from the serializer's factory rather than
+setting its own defaults. This makes XSLTC's default serialializer 
+properties (indentation, entity file ... ) the same as Xalan-J.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>minchau@apache.org<b>
+<i> on </i>
+</b>2003/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler BinOpExpr.java LogicalExpr.java Predicate.java 
+RelationalExpr.java UnaryOpExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+PR: bugzilla 15327	
+Submitted by:	Christine Li
+Reviewed by:	Brian Minchau
+Fix for XSLTC problems with [last()] and [last()-1] predicates.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java 
+Include.java Stylesheet.java xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Replace ad-hoc code to resolve relative URIs by calls to the xml.utils.SystemIDResolver 
+class. This change fixes a few a regressions and also simplifies the code in XSLTC.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CastCall.java 
+CastExpr.java FunctionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util 
+ObjectType.java StringType.java Type.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Allow conversion between types 'string' and 'object[java.lang.String]'.
+Conversion is trivial as instances of both types have the same runtime
+representation. This was needed in order to write expressions such
+as,
+    string:new(xsltc:cast('java.lang.String', $object))
+where 'object' is a param bound to a value of type 'java.lang.String'.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/10/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/transformer 
+TransformerIdentityImpl.java TransformerImpl.java 
+xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Patch from Christine Li (jycli@ca.ibm.com) for Bugzilla bug report 22167.
+When the zero-argument constructor of DOMSource, StreamSource or SAXSource is
+invoked, and no setter method is called to specify an actual source, the
+source should be treated as if it contained only a root node.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Check for null before setting DTM base URI.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for regression in Resolve002 TCK.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java 
+UnsupportedElement.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime 
+BasisLibrary.java ErrorMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Apply Joanne Tong (joannet@ca.ibm.com) patch for bugzilla 23706,
+with my own modifications. I also fixed bug 23896 in the same
+patch.
+
+This patch includes the fixes for the following:
+1. an unsupported XSL element will trigger a syntax error in 1.0 mode.
+2. In forward-compatibility mode, if an unsupported XSL element is in
+a template, has no fallback, it will trigger a runtime error if it is
+instantiated.
+3. All fallback children are called in sequence. The old code only makes
+use of the first fallback child.
+4. Only direct fallback children are processed. The old code finds the fallback
+from all descendants of an unsupported element, which is wrong behavior
+according to the spec.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing path for bugzilla 22438 from Bhakti Mehta (Bhakti.Mehta@sun.com). This patch 
+fixes serialization problems of Templates objects in XSLTC. A user-defined URIResolver 
+associated to a Templates object is also serialized whenever possible (i.e. if it is also 
+serializable).<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.5.1</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/04/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler DocumentCall.java xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patches from Igor Hersht (igorh@ca.ibm.com) for bug 15200 and
+bug 18585.
+
+Fixed up code that processes the document function when it has two arguments,
+the second of which must be a node-set; the code didn't always resolve the
+value of the first argument against the first node in the second argument, as it
+should have.
+
+In addition, in order to simplify run-time processing, added a new
+LoadDocument.documentF method that is used when the second argument to the XSLT
+document function is present; if that argument is an empty node-set, the result
+of the document function should be an empty node-set, and that logic is much
+easier to code in the run-time than via generated code.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/04/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+ Set SourceLocator in stylesheet instead of XSLTC object. This ensures
+ proper use of user-defined URIResolvers in a TemplatesHandler.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/04/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+ Output properties were not properly cleared when reusing the same instance
+ of a TemplatesHandlerImpl. The top-level stylesheet in the XSLTC object
+ referenced by TemplatesHandlerImpl (indirectly via an instance of Parser)
+ was not reset after the first use of the instance.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/05/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a multithread safety issue in the use-classpath option. The old code
+reuses a Translet object for all newTransformer() calls, which is not the
+right thing to do. We should pass in a Class array and let TemplateImpl
+create a new Translet instance for each newTransformer() call.
+<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.5.0</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/02/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java Message.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+ New implementation of xsl:message that does not use RTFs. Using RTFs
+ is both slow and problematic since the number of RTFs that can be
+ created is limited in XSLTC.
+
+ The new implementation uses a StreamXMLOutput and a StringWriter to
+ output the template body as a string (in some cases, NS declarations
+ will be included and this behavior differs from the old implementation).
+ Additionally, the new implementation optimizes the case where the
+ message is empty and where the message is just a literal string.
+
+ The bug was reported by Mark Brunkhart (mark@matchanalysis.com).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/02/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc DOM.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java DOMImpl.java MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+ Removed the getTreeString() method from the DOM interface (as well as
+ from all the classes that implement this interface). This update will
+ require a sync with the XSLTC_DTM branch, but there was no point in
+ keeping this method when it's no longer used.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/02/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ReferenceType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+ Fix for Bugzilla 17447. Conversion from reference type to string type
+ assumed the existence of the "current" local variable, which is
+ unavailable at top-level.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/02/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Improvement for xsl:copy-of. Instead of using the expensive getFirstAttribute()
+and getFirstNamespace() interfaces, increase the element id by 1 to iterate
+through all attribute and namespace nodes.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/02/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Minor cleanup to SAXImpl.copy() and copyElement(). Introduce a new interface
+handleTextEvents() to handle Text nodes more efficiently.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc DOM.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler SyntaxTreeNode.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ResultTreeType.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java DOMImpl.java MultiDOM.java SAXImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java xml-xalan/java/src/org/apache/xalan/xsltc/trax XSLTCSource.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+
+Design a new DOM model (SimpleResultTreeImpl) for simple result tree
+fragment (RTF). A simple RTF is an RTF which has only one Text node.
+It can be generated by a combination of Text, xsl:value-of and xsl:number
+instructions. It can also be generated by xsl:if or xsl:choose, as far
+as the content of the control body is pure Text. The code to detect whether
+an RTF is simple is in SyntaxTreeNode.isSimpleRTF().
+
+Before this change, an RTF is represented by a SAXImpl object. SAXImpl is
+a heavy-weight class in that it allocates a lot of array objects for storage.
+In the case where the RTF is only one Text node, creating a SAXImpl is just
+too expensive.
+
+A SimpleResultTreeImpl has only two nodes, i.e. the root node and the Text
+node. All DOM interfaces are overridden to handle this simplified model.
+SimpleResultTreeImpl has a few internal iterators, which is designed to support
+the nodeset() extension function.
+
+This change brings a significant improvement to stylesheets that create
+a lot of simple RTFs. Some testcases are more than 100% faster after the change.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SimpleResultTreeImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add a new class SimpleResultTreeImpl as the model for simple RTF.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java NodeSortRecord.java SAXImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java StreamXMLOutput.java xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+
+A few small improvements. More space efficient version of IntegerArray.clone().
+Rearrange the condition checking in StreamXML(HTML)Output.escapeCharacters().
+Only create one default Collator instance in NodeSortRecord.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java SAXImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Small tweaks in DOMAdapter. Invoking a final method is generally faster than
+invoking a method via interface.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Improvement in StreamOutput.escapeString(). Do not create the StringBuffer
+if there is nothing to escape.
+
+This change needs to be put back to the new serializer if it uses the same
+code.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime StringValueHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Use a more sophisticated algorithm in StringValueHandler.
+Do not create new Strings if there is only String value.
+Creating many new Strings is an expensive operation.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a bug that causes id function testcases to fail in trax.sax flavor.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Set the namespace feature directly on the XMLReader. SAXParserFactory.setFeature()
+actually creates a temporary SAXParser to verify that feature. So we end up creating
+two SAXParsers per document() call in the old code.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom AdaptiveResultTreeImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+file AdaptiveResultTreeImpl.java was initially added on branch XSLTC_DTM.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc DOM.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler SyntaxTreeNode.java xml-xalan/java/src/org/apache/xalan/xsltc/dom AdaptiveResultTreeImpl.java DOMAdapter.java DOMImpl.java MultiDOM.java SAXImpl.java SimpleResultTreeImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+
+Design a light-weight DOM model (AdaptiveResultTreeImpl) for RTFs with xsl:call-template.
+
+AdaptiveResultTreeImpl is a adaptive DOM model for result tree fragments (RTF). It is
+used in the case where the RTF is likely to be pure text yet it can still be a DOM tree.
+It is designed for RTFs which have &lt;xsl:call-template&gt; or &lt;xsl:apply-templates&gt; in
+the contents. Example:
+
+    &lt;xsl:variable name = "x"&gt;
+      &lt;xsl:call-template name = "test"&gt;
+         &lt;xsl:with-param name="a" select="."/&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:variable&gt;
+
+In this example the result produced by &lt;xsl:call-template&gt; is likely to be a single
+Text node. But it can also be a DOM tree. This kind of RTF cannot be modelled by
+SimpleResultTreeImpl.
+
+AdaptiveResultTreeImpl can be considered as a smart switcher between SimpleResultTreeImpl
+and SAXImpl. It treats the RTF as simple Text and uses the SimpleResultTreeImpl model
+at the beginning. However, if it receives a call which indicates that this is a DOM tree
+(e.g. startElement), it will automatically transform itself into a wrapper around a
+SAXImpl. In this way we can have a light-weight model when the result only contains
+simple text, while at the same time it still works when the RTF is a DOM tree.
+
+All methods in this class are overridden to delegate the action to the wrapped SAXImpl object
+if it is non-null, or delegate the action to the SimpleResultTreeImpl if there is no
+wrapped SAXImpl.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Save the DTMManager in a field in MultiDOM. Don't compute it
+everytime in MultiDOM.getDTMId().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime StringValueHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a bug which causes the docbook testcase to fail.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+Improvement in MultiDOM. Make the nodeHandle to DOMAdapter mapping a
+straight map. The code in getDTMId() is much light-weight than before,
+because the complicated stuff is moved to addDOMAdapter() which is only
+called once per DTM. In the case where the DTM id runs across several
+addressing range (the size of each range is 65536 - an unusal case),
+there will be several items in the adapter array for one DTM.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/03/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ProcessingInstructionPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for bug 15332 from Igor Hersht (igorh@ca.ibm.com).  Ensure that
+patterns of the form processing-instruction() and processing-instruction('name')
+are given the right priorities.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/03/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ProcessingInstructionPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for bug 15332 from Igor Hersht (igorh@ca.ibm.com).  Ensure that
+patterns of the form processing-instruction() and processing-instruction('name')
+are given the right priorities.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/03/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ProcessingInstructionPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Applying patch for bug 15332 from Igor Hersht (igorh@ca.ibm.com).  Ensure that
+patterns of the form processing-instruction() and processing-instruction('name')
+are given the right priorities.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java DOMWSFilter.java KeyIndex.java LoadDocument.java SAXImpl.java XSLTCDTMManager.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2SAX.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC_DTM performance work
+
+New solution for DOM input. Use SAXImpl + DOM2SAX to handle DOM
+input. This is the solution used in the old XSLTC. The DOMImpl
+class is completely deprecated. This solution is better
+than DOMImpl on top of DOM2DTM for the following reasons:
+
+1. DOM2DTM is known to be slow.
+2. DOM2DTM is an incremental model while DOMImpl is not.
+3. There are too much code duplication between DOMImpl and SAXImpl
+
+Under the new solution, any improvement to SAXImpl and SAX2DTM2 will
+also benefit the DOM case. There is no need to have separate optimizations
+for the DOM case.
+
+This solution is a little sophisticated than the old XSLTC solution in
+that we borrow some code from DOM2DTM (e.g. handling for id function
+and unparsed entity). The end result is that conformance in trax.dom
+is better than the old XSLTC.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/03/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util VoidType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+ Override definition of Type.POP() in VoidType to return NOP instead of POP.
+ If type is void, there's nothing to be popped. This problem shows up when
+ invoking an external Java function whose return type is void.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/03/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java Parser.java SyntaxTreeNode.java XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages_no.java ErrorMessages.java ErrorMsg.java TypeCheckError.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java ErrorMessages_no.java ErrorMessages.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changed XSLTC messages to extend ListResourceBundle, and use String keys to
+access messages.  Code used to extend ResourceBundle and used to use integer
+indices to access error messages.
+
+Changes from myself and Gordon Chiu (grchiu@uwaterloo.ca).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/03/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java Parser.java SyntaxTreeNode.java XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages_no.java ErrorMessages.java ErrorMsg.java TypeCheckError.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java ErrorMessages_no.java ErrorMessages.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changed XSLTC messages to extend ListResourceBundle, and use String keys to
+access messages.  Code used to extend ResourceBundle and used to use integer
+indices to access error messages.
+
+Changes from myself and Gordon Chiu (grchiu@uwaterloo.ca).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/03/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java DecimalFormatting.java Constants.java DecimalFormatting.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The generated code for xsl:decimal-format used the no argument constructor of
+DecimalFormatSymbols, which is affected by the default locale.  The default
+attribute values for xsl:decimal-format should not be affected by the default
+locale.  Instead, the en_US Locale should be passed to the constructor, as it
+has settings that are consistent with the defaults for xsl:decimal-format.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2003/03/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java DecimalFormatting.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The generated code for xsl:decimal-format used the no argument constructor of
+DecimalFormatSymbols, which is affected by the default locale.  The default
+attribute values for xsl:decimal-format should not be affected by the default
+locale.  Instead, the en_US Locale should be passed to the constructor, as it
+has settings that are consistent with the defaults for xsl:decimal-format.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/03/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler XslAttribute.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+ Fix for Bugzilla 18162. Warnings are still reported if an occurrence of
+ xsl:attribute *may* result in a runtime error.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/03/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing patch by Arun Yadav (Arun.Yadav@sun.com) that fixes the problem
+of using "." or "-" as part of the name of a parameter (Bugzilla 15636).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/03/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler KeyCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing patch from Arun Yadav (arun.yadav@sun.com) for Bugzilla
+15830. Correct handling for id()/key() values of type result-tree.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/03/31<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+ New implementation for TemplatesHandlerImpl that does not extend
+ xsltc.compiler.Parser. The new implementation has a simpler init()
+ method. Also, instances of the new class can be re-used (previously,
+ there were problems with the output method when an instance was
+ used more than once).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/03/31<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Remove XSLTC's compile time dependency on Xalan.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+ New implementation of TemplatesHandlerImpl. Fixes output method problem
+ when reusing TemplatesHandler instances.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.xsltc.cmdline.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc DOM.java DOMCache.java NodeIterator.java Translet.java TransletOutputHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.xsltc.
+
+1. Remove TransletOutputHandler.java
+2. Adapt the XSLTC interfaces to the DTM model.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.xsltc.util.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler AbsolutePathPattern.java AncestorPattern.java CastExpr.java Constants.java CopyOf.java DocumentCall.java ForEach.java GenerateIdCall.java IdKeyPattern.java Key.java KeyCall.java Message.java Mode.java NameBase.java NodeTest.java Output.java ParentLocationPath.java Predicate.java ProcessingInstructionPattern.java Step.java StepPattern.java Stylesheet.java SyntaxTreeNode.java UnionPathExpr.java UnparsedEntityUriCall.java ValueOf.java xpath.cup XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.xsltc.compiler.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util MethodGenerator.java NodeSetType.java ObjectType.java ReferenceType.java ResultTreeType.java TypeCheckError.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.xsltc.compiler.util.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2SAX.java DOM2TO.java SAX2TO.java TemplatesHandlerImpl.java TransformerHandlerImpl.java TransformerImpl.java XSLTCSource.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.xsltc.trax.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBase.java SAXHTMLOutput.java SAXOutput.java SAXTextOutput.java SAXXMLOutput.java StreamHTMLOutput.java StreamOutput.java StreamTextOutput.java StreamUnknownOutput.java StreamXMLOutput.java TransletOutputHandlerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.xsltc.runtime.output
+Remove the output classes in XSLTC. XSLTC now uses the
+output classes in the common serializer.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java AttributeList.java BasisLibrary.java Constants.java DefaultSAXOutputHandler.java SAXAdapter.java StringValueHandler.java TextOutput.java TransletOutputBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Changes in org.apache.xalan.xsltc.runtime.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java AdaptiveResultTreeImpl.java AnyNodeCounter.java Axis.java BitArray.java CollatorFactoryBase.java CurrentNodeListFilter.java CurrentNodeListIterator.java DocumentCache.java DOMAdapter.java DOMBuilder.java DOMImpl.java DOMWSFilter.java DTDMonitor.java DupFilterIterator.java EmptyFilter.java ExtendedSAX.java Filter.java FilteredStepIterator.java FilterIterator.java ForwardPositionIterator.java KeyIndex.java LoadDocument.java MatchingIterator.java MultiDOM.java MultipleNodeCounter.java NodeCounter.java NodeIteratorBase.java NodeSortRecord.java NodeSortRecordFactory.java NthIterator.java SAXImpl.java SimpleResultTreeImpl.java SingleNodeCounter.java SingletonIterator.java SortingIterator.java StepIterator.java StripWhitespaceFilter.java UnionIterator.java XSLTCDTMManager.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Merging XSLTC_DTM and common serializer to the head
+Adapt all dom classes in org.apache.xalan.xsltc.dom to
+the DTM model.
+
+Removed DOMImpl, DTDMonitor.
+Added a few new classes for the new DOM model. The core
+DOM class is SAXImpl.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>ilene@apache.org<b>
+<i> on </i>
+</b>2003/04/02<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+If there is an error listener registered to a TransformerFactory, and the
+stylesheet cannot be compiled, call fatalError, in addition to throwing 
+the TransformerConfigurationException.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom SAXImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime StringValueHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+According to spec http://www.w3.org/1999/11/REC-xslt-19991116-errata/#E27,
+when element nodes are used in the instantiated content of attribute, comment
+and processing instructions, we should ignore the elements together with
+their content.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom AdaptiveResultTreeImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Need to override more startElement and endElement interfaces
+in AdaptiveResultTreeImpl, because it now extends EmptySerializer,
+which has a few more interfaces than the old TransletOutputHandler.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java SAXImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for a few testcase failures in XSLTC trax.localPath.
+
+Detect the backslash ("\") character in the path in addtional to the
+forward slash ('/') in LoadDocument.document().
+
+The XSLTC conformance result in trax.localPath changed from
+Pass: 1634/Fail: 14/Errr: 35 to Pass: 1657/Fail: 17/Errr: 9
+after this change.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla 17448.
+Stylesheet.setIncludingStylesheet() should use _includedFrom
+instead of _importedFrom.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2003/04/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix another problem related to bug 17448.
+Only set the import precedence of an included stylesheet when it
+is directly included by this stylesheet. If it is indirectly
+included via imports, the import precedence will be different.
+<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.4.1</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Keep track of parameters for built-in identity transform (needed for
+some TCK tests).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/08/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java TrAXFilter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed XSLTCs implementation of XMLFilter
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/08/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TrAXFilter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+added some check for parents of filter chain
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 12125.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/08/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler EqualityExpr.java RelationalExpr.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug 12148 fixed, xpath pred and relational expr
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/09/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Change committed on behalf of Igor Hersht: added -DIAG option similar to that
+supported by org.apache.xalan.xslt.Process class (for bug 12261).
+
+Also (on my own behalf) changed calculation of average transform time and
+throughput rate for -n option to use floating-point division, rather than
+integer division; latter yielded meaningless results.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBuffer.java StreamHTMLOutput.java StreamOutput.java StreamTextOutput.java StreamXMLOutput.java StringOutputBuffer.java WriterOutputBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New buffering system for stream output.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeCounter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Support for Greek alphabet in xsl:number.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output WriterOutputBuffer.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Set a larger buffer size for Solaris.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java SyntaxTreeNode.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ResultTreeType.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Set different initial sizes for DOMImpl arrays. The new values result
+in better performance for the average case.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler xpath.cup xml-xalan/java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Optimized evaluation of //RelativeLocationPath expressions.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ObjectType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For XSLTC extension integration. Support creating ObjectType from a Class
+object. Add an additional field to store the Class.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util BooleanType.java IntType.java NodeSetType.java NodeType.java RealType.java ResultTreeType.java StringType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For XSLTC extension integration. Add more translation rules required by
+extensions. Specifically, all types can be translated to a generic Java Object.
+Numeric types can be translated to their corresponding Java types (e.g. Real to
+java.lang.Double). Node, NodeSet and ResultTree can be translated to a Java String.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Support the append attribute in the redirect/output extension.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For XSLTC extension integration. Implement the object-type extension
+function in the EXSLT commons package. Change the behavior of the
+nodeList2Iterator interface so that it will do a deep copy on the argument
+NodeList, i.e. if a Node in the NodeList is an Element, it will not only
+copy the Node itself, but also copy all children and attributes. This is
+required to get any extension function that returns a NodeList to work in
+XSLTC.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler TransletOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Support the append attribute in the output extension element, so that
+it behavior is more like redirect:write.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add a constant string for the redirect namespace.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CastExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For extension integration. Allow numeric types to be casted to
+Object type.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For extension integration. Add the objectType extension function to the
+Symbol Table. Maps the redirect:write element to the TransletOutPut class.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For extension integration. The nodeset extension function can be used as
+node-set in the http://exslt.org/common namespace.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changes for Java extension and EXSLT extension support.
+For Java extension:
+- support 3 different namespace formats (Java, class and package).
+- fix a bunch of type translation problems
+- fix problems in class/method matching algorithm
+
+For EXSLT extension:
+- support the math, set, strings and datetime extension
+- support using the nodeset extension in 3 different ways (xsltc, xalan and EXSLT commons)
+- support the object-type extension in EXSLT commons as a native XSLTC function
+- Maps the redirect:write element to XSLTC's output element
+- extension function name translation (e.g. node-set to nodeSet)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Additional optimizations in expansion of '//'.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Removed "-DIAG" option as it is similar to "-n 1". XSLTC's command line
+options are single letters, so -DIAG does not really fit in the synopsis.
+Morris K. is working on an extension for Xalan's Process class to allow
+the compilation and execution of translets (once that work is completed
+the -DIAG option will be available for XSLTC too).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Compile.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Change default policy for template inlining.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Replaced attribute "disable-inlining" by attribute "enable-inlining".
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Lazy computation of mappings and reverse mappings.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+(1) Synchronize access to static variable.
+(2) Pre-allocate static objects for attribute and element types.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Changed setting to speed up DOM building process.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Return a fresh XMLReader for each call to getXMLReader(). Returning the
+same instance is incorrect in multi-threaded apps where a single
+transformer factory is shared by all threads.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2TO.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 12924. Add handling code for DocumentType Node.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax SAX2DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+For Bugzilla 12924. In constructor SAX2DOM(Node), the Node might not always
+be a Document. Add additional handling code so that SAX2DOM can work with a
+non-Document root.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/09/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use a thread variable to cache an XMLReader.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionAvailableCall.java FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+EXtension work. Make function-available work with external Java and EXSLT
+extension functions.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionAvailableCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Handle dots in the local part, e.g.
+xmlns:ext="http://xml.apache.org/xalan/java/java.lang
+function-available('ext:Thread.currentThread') return true.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionAvailableCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Minor cleanup in class name handling.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/09/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java TypeCheckError.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DocumentCache.java DOMImpl.java DTDMonitor.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java TransformerImpl.java xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/getopt GetOpt.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Include.java TransletOutput.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing changes from Gordon Chiu (grchiu@ca.ibm.com), with some tweaks from
+me, to move some hard-coded XSLTC messages into the compiler and run-time
+ErrorMessages classes, as appropriate.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/09/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime ErrorMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing changes from Gordon Chiu (grchiu@ca.ibm.com), with some tweaks from
+me, to move some hard-coded XSLTC messages into the compiler and run-time
+ErrorMessages classes, as appropriate.
+
+Also, added copious comments to assist anyone who might translate these
+resources in the future.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/09/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Removed a duplicate error message number I inadvertently entered.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/09/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bugzilla 12813 fixed
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java ErrorMsg.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add debug messages for -XX option in the Process command line. These messages
+tell the user whether they are transforming using XSLTC.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix problems in the baseName() interface so that it can handle system ids like
+file:abc.xsl and file:///c:\test\abc.xsl.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC support in the Process command line - phase 2
+Add two new output types:
+- BYTEARRAY_AND_FILE_OUTPUT: return a byte array and generate the translet class
+- BYTEARRAY_AND_JAR_OUTPUT:  return a byte array and generate the jar file
+
+Add a new compile() interface which accepts the output type as the third
+parameter. Use different Vectors to store bytecodes and JavaClass objects.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Add a wrapper for the noExtName() method in compiler.util.Util.
+The transformerFactoryImpl class makes use of it.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The member name _defaultTransletName in TransformerFactoryImpl
+has been changed to _transletName.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/09/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+XSLTC support in the Process command line - phase 2
+Most of the changes appear in this class. The changes not only allow you
+to use the new XSLTC options in the Process command line. It also give
+you the ability to customize the XSLTC behavior using the standard TRAX API.
+Previously, the XSLTC TRAX API is not aware of translets. You cannot tell it
+to use translets for do transformations. Now you can customize the XSLTC bevaior
+using the new attributes. For example, the following code will allow you
+to use translets for transformations when the translet is newer than the xsl.
+
+TransformerFactory tf;
+tf.setAttribute("auto-translet", "true");
+Templates templates = tf.newTemplates(xslSource);
+
+The following attributes are added:
+Attributes		Corresponding Process command line options
+use-translet
+translet-name		-XO
+destination-directory	-XD
+package-name		-XP
+jar-name		-XJ
+auto-translet		-XT
+
+Four of the new attributes (translet-name, destination-directory, package-name and
+jar-name) are transient. They only apply to the next newTemplates() or newTransformer()
+call. Their values are reset to the default after the call.
+
+There is also a makefile like feature when you set the "auto-translet" attribute. It will
+use the translet to do transformation when the translet is newer than the xsl. If the xsl
+is modified, it will use the xsl to transform and regenerate the translet.
+
+Unlike the XSLTC Transform command line, the new code will NOT use the existing
+ClassLoader to load the translet or jar file. It directly reads the file content into a
+byte array. This makes the Process command line capable of loading the translet from
+any directory the xsl file might be in or any user specified destination directory, without
+the need on the user to add that directory to the CLASSPATH first.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Multi-thread protection for the new attributes.
+The four transient attributes are now stored in ThreadLocal objects to prevent
+multi-thread contention problems. This ensures that each thread will have a
+different copy of the attributes and no collision issue will occur.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/01<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Change the four attributes to be instance variables and remove
+the ThreadLocal protection. TransformerFactory is not guaranteed
+to be thread-safe. We will leave the synchronization issues up
+to the user if they want to use one TransformerFactory in multiple
+threads.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Param.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+The default type of a &lt;xsl:param&gt; should be result tree.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mkwan@apache.org<b>
+<i> on </i>
+</b>2002/10/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix a problem in class namespace format and also cleanup the indentation.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Param.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Set default type of parameters to be reference. The type of a parameter
+cannot be determined statically in XSLT 1.0.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc DOM.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java Constants.java ForEach.java LastCall.java Parser.java PositionCall.java Step.java xml-xalan/java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java CurrentNodeListIterator.java DOMAdapter.java DOMImpl.java DupFilterIterator.java FilteredStepIterator.java FilterIterator.java ForwardPositionIterator.java KeyIndex.java MatchingIterator.java MultiDOM.java NodeIteratorBase.java NthIterator.java ReverseIterator.java StepIterator.java xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+(1) Eliminated the need for a ReverseIterator.
+(2) Added a ForwardPositionIterator as a temporary solution for some
+cases.
+(3) Added several javadoc-type comments.
+(4) Fixed a number of cloneIterator() implementations that were broken.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ForwardPositionExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Expression wrapper to compute positions properly.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBase.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 13304.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/10/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom UnionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug fix 12644, Santiago found that the clone iterator was doing a shallow copy
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Key.java KeyCall.java xml-xalan/java/src/org/apache/xalan/xsltc/dom KeyIndex.java xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+(1) Fixed some dynamic typing problems with idkeys. Values are now properly
+converted to strings before they are compared.
+(2) Eliminated the use of BitArrays in KeyIndex (better space efficiency).
+(3) All idkey tests now pass with flavor=stream (the 6 failures that are
+reported are due to the use of a different algorithm to generate ids).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug fix 13550, for multiple &lt;xsl:output&gt; elements, cdata-section-elements attrs are now merged
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler XslElement.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New implementation of xsl:element that properly handles the case where
+the namespace URI computed at runtime is "". Some of the code implementing
+the xsl:element instruction has been factored out from the translet into
+the basis library.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug fix 12317, serialization of Templates is fixed
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+A RuntimeException cannot be constructed from a Throwable with JDKs
+prior to 1.4.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Clear dom index flag before passing node to DOMAdapter. Bug reported by
+Prakash Sridharan.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Switch order of calls to startElement() and namespace() in startXslElement().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/10/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug fix 12308, typeCheck, nodeset to node optimization is turned off if node has context
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added support for all EBCDIC flavors in xsl:output.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Moved EBCDIC support from Output to StreamOutput to ensure correct
+serialization of XML header.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler PositionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/dom CurrentNodeListIterator.java DOMImpl.java FilterIterator.java NthIterator.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Committing patch from Henry Zongaro. This patch moves the logic from
+XPath's position() function from NodeIterator.getPosition() to
+BasisLibrary.positionF(). This change simplifies the integration
+between XSLTC and DTM.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom ForwardPositionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Adding XSLTC_DTM version of file to branch.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom ForwardPositionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Whoops!  Checked in file on MAIN branch that was meant for XSLTC_DTM branch.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom ForwardPositionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Adding DTM version of ForwardPositionIterator to XSLTC_DTM branch.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>zongaro@apache.org<b>
+<i> on </i>
+</b>2002/10/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom ForwardPositionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Aarrrgggghhhhh\!\!  Checked in file on MAIN branch that was meant for XSLTC_DTM branch, again\!
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom UnionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 13826. A problem in reset() was the cause of duplicate
+nodes in the resulting nodeset.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util NodeSetType.java ReferenceType.java ResultTreeType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 13850 provided by Morris Kwan.
+
+Morris Kwan wrote:
+
+Changes in NodeSetType.java:
+Allow a org.w3c.dom.Node to be converted to a XSLTC internal nodeset
+
+Changes in ReferenceType.java:
+Allow conversions from Reference to Java String, double, w3c Node/NodeList
+
+Changes in ResultTreeType.java:
+The result tree when converted to a nodeset, should contain only one node
+starting from the root. If you replace &lt;xsl:param&gt; with &lt;xsl:variable&gt; in
+the attached testcase, you will see a problem in "ext:nodelistTest
+($a)/h1/h2" because of this problem.
+
+Changes in BasisLibrary.java:
+Added interfaces referenceToNodeList, referenceToNode and node2Iterator.
+The changes in copyNodes() fix a problem with the document node. In the
+case of an RTF, the NodeList passed to nodeList2Iterator() contains only
+one Node, which is a Document Node. The changes try to create a dummy
+element for the Document and copy all Nodes under it.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+  Fix for Bugzilla 13850 provided by Morris Kwan.
+
+  Changes in BasisLibrary.java:
+  Added interfaces referenceToNodeList, referenceToNode and node2Iterator.
+  The changes in copyNodes() fix a problem with the document node. In the
+  case of an RTF, the NodeList passed to nodeList2Iterator() contains only
+  one Node, which is a Document Node. The changes try to create a dummy
+  element for the Document and copy all Nodes under it.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler LocationPathPattern.java Mode.java Step.java StepPattern.java xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Distinguish between child::node() and attribute::node() both in patterns
+and expressions. This patch also fixes Bugzilla 11433.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/10/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed problem in DOMImpl$ChildrenIterator.getLast(). It now returns 0
+when the nodeset is empty.
+<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.4.0</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+added new method 'setDocumentLocator()' to TemplatesHandlerImpl so that SAX parser can inform handler of doc location- thanks to Scott Boag and Shane Curcuru for the insight into this
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler UnresolvedRef.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Assigned type to _type.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java AttributeSet.java CallTemplate.java DecimalFormatting.java EqualityExpr.java FormatNumberCall.java Key.java KeyCall.java Parser.java QName.java SymbolTable.java Template.java UseAttributeSets.java VariableBase.java xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed problem with default namespace in XPath expressions and XSLT's
+named objects (e.g. templates, keys, variables, etc.).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed StepPattern production to include named PIs.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Text.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Optimized calls to setEscaping().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Simple code optimizations.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Replaced Vector by ArrayList (synchronization is not needed here).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed looping problem reported by Girish.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc TransletOutputHandler.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Text.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime SAXAdapter.java StringValueHandler.java TextOutput.java TransletOutputBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added characters(String) to TextOutputHandler.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime DefaultSAXOutputHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+avoid printing standalone attr if it is set to 'no'
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/14<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Step.java xml-xalan/java/src/org/apache/xalan/xsltc/dom NodeIteratorBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for conf test axes113.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime DefaultSAXOutputHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fixed a regression in output66 test
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Text.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for attribset49.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for axes127.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/16<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Do not add the standalone attribute to the XML header unless requested.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output DOMOutput.java OutputBase.java SAXHTMLOutput.java SAXOutput.java SAXXMLOutput.java StreamOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New output handlers.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix bug in Attr iterator.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output HtmlOutput.java StreamOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+*** empty log message ***
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output SAXHTMLOutput.java SAXOutput.java SAXXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+updated new code, on-going development
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output SAXHTMLOutput.java SAXOutput.java SAXXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+added new methods, on-going
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc TransletOutputHandler.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java SAXAdapter.java TransletOutputBase.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output HtmlOutput.java OutputBase.java StreamOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New methods added to the translet output handler.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output HtmlOutput.java StreamHTMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Renamed module.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output DOMOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+temporarily moved out of the way
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output SAXOutput.java SAXXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+updated namespace support
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output SAXHTMLOutput.java SAXOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fixed uninitialized stack
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java StreamOutput.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+*** empty log message ***
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Experimental output system.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+*** empty log message ***
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output TransletOutputHandlerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Experimental output system.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added "-n" option to Transform.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamOutput.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+*** empty log message ***
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java StreamOutput.java StreamUnknownOutput.java StreamXMLOutput.java TransletOutputHandlerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+*** empty log message ***
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamTextOutput.java TransletOutputHandlerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+*** empty log message ***
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Insert XML header at the beginning.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output TransletOutputHandlerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+*** empty log message ***
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output TransletOutputHandlerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+added sax case support
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output TransletOutputHandlerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+updated
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output TransletOutputHandlerFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax SAX2DOM.java TemplatesHandlerImpl.java TemplatesImpl.java TransformerFactoryImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added 'experimental-output' attribute to transformer factory.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+*** empty log message ***
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/05/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output SAXXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+added processing instruction support
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java StreamOutput.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Bug fixes after testing.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added DOCTYPE.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler LiteralElement.java Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed problem with 'xmlns' reported as attribute.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+*** empty log message ***
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/05/31<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed problem with offset in characters().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/03<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBase.java SAXHTMLOutput.java SAXOutput.java SAXXMLOutput.java StreamOutput.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Moved common methods to base classes.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBase.java SAXHTMLOutput.java SAXOutput.java SAXXMLOutput.java StreamOutput.java StreamTextOutput.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+updating work in progress
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output SAXOutput.java SAXXMLOutput.java StreamXMLOutput.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updated.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+*** empty log message ***
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBase.java SAXXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updated.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed problems with id/key.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBase.java SAXOutput.java SAXXMLOutput.java StreamOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updated.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/04<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java StreamOutput.java StreamUnknownOutput.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updated.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+reset output flag
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+updated xsl:vendor string
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+updated xsl:vendor string
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/05<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug fix 9179, leading zero in localized formatting
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/06<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Include attributes in xsl:message template body.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/07<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Set a new buffer size.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed memory leak in AbstractTranslet and moved replace() method
+to BasisLibrary.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output SAXOutput.java SAXTextOutput.java TransletOutputHandlerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New class.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax SAX2DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fixed processing instruction call
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output TransletOutputHandlerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+added text case for SAX
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output TransletOutputHandlerFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Typo.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output SAXHTMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Do not insert &lt;META&gt;.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/10<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed problem in the implementation of setOutputProperties().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added comment() support.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output TransletOutputHandlerFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax SAX2DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+added support for comment handling in DOM
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed getTemplates() to return null when compilation fails.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime DefaultRun.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+No longer in use.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/11<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java Output.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java TextOutput.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output SAXOutput.java StreamHTMLOutput.java StreamUnknownOutput.java StreamXMLOutput.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TemplatesImpl.java TransformerFactoryImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New output system installed.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug fix for copy32.xsl unit test; cdata handling
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed file creation for xsltc:output extension.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom BitArray.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added default constructor.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed insertion of META when HEAD is empty.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom CurrentNodeListIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Replaced eager by lazy computation of last.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom StepIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Very minor optimization.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Simple hand optimizations.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java Parser.java Stylesheet.java XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TemplatesImpl.java TransformerFactoryImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed layering of output properties in Trax.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Replaced getProperty() by get() in setOutputProperties().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Include.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+catching file not found exception fixed
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+added ability to detect/flag superfluous attributes
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+removed commented out code
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fixed bug that passes warnings to listener
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamUnknownOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added support for XHTML in output system (c.f. embed04).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fixed bug with number formatting, richmark test
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fixed escaping of quote in href attribute
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed problem in creation of output handler.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBase.java SAXOutput.java SAXXMLOutput.java StreamHTMLOutput.java StreamOutput.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed problem with cdata-section-elements in xsl:output and namespaces.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fixed nit for Tom
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fixed unescaped quote in attribute, namespace110 unit test
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Ignore default properties in setOutputProperties().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output SAXHTMLOutput.java StreamHTMLOutput.java StreamOutput.java StreamUnknownOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix to set output properties correctly in the new output system.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Output.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed indentation when output method is HTML.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/19<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java StreamUnknownOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed indentation when output method is HTML.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Rollback to revision 1.39
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+whitespace13.xsl fix for trax.dom case
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed regression.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler NameBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+_type renamed to _paramType to avoid shadowing of protected vars.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Replaced _type by getType().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed evaluation of "parent::*" with multiple DOMs.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 9068.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Better fix for Bugzilla 9068.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 8551.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Predicate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzillas 3238 and 10137.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java StreamOutput.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 6925.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>2002/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionAvailableCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fix check for extension functions
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionAvailableCall.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for function-available() needed to handle XSLTC's extension functions.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ParentLocationPath.java Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for axes122.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed regression.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/util IntegerArray.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed bug in clone().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ElementAvailableCall.java Expression.java FunctionAvailableCall.java If.java LogicalExpr.java When.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added support for function-available()/element-available() in logical
+expressions (note that these functions are resolved at compile time
+in XSLTC).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamOutput.java StreamUnknownOutput.java TransletOutputHandlerFactory.java xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TemplatesImpl.java TransformerFactoryImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added 'indent-number' attribute to the transformer factory. The value
+of this attribute is the number of spaces that will be used by the
+output system when indentation is turned on.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Step.java xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for node21 and some position tests.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix problem in copyElement().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use doubles instead of longs for big ints.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler LongExpr.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util LongType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+removed unused class, compiler will now use doubles
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/06/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CastExpr.java Constants.java Parser.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util Type.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+removed references to the LongExpr classes that were removed
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Copy namespace nodes of an element in xsl:copy.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler ElementAvailableCall.java FunctionAvailableCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Better error reporting when argument is not a literal.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/06/28<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use a BufferedOutputStream to write classes.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/07/08<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fixed conf tests copy21, copy22, expression02, idkey04, numbering91 with introduction of setSystemId on InputSource
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Compile.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Updated XSLTC's version number from 1.0 to 1.1
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler AttributeSet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 4603 (thanks to Henri Zongaro)
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Print warning message for superfluous attributes that have a null URI only.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/07/09<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Constants.java Sort.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug 5941 fixed, &lt;clinit&gt; access chged to ACC_STATIC from ACC_FINAL
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util TypeCheckError.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Enhanced error reporting in calls to external Java functions.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug 10832 fix, relational expressions with RTFs
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 9174.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed error message in defineTransletClasses() method.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/17<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 9171.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed problem in error reporting code.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/18<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Predicate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Ignore default NS when expanding calls to position().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Accept null as a possible return value from URIResolver.resolve()
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/20<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Import.java Include.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Report a decent error when the URI cannot be resolved.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added a few getters to this class.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use the superclass to determine the main class of a translet.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/22<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java StreamOutput.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 10715.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output StreamHTMLOutput.java StreamXMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed a regression.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesHandlerImpl.java TemplatesImpl.java TransformerFactoryImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed for Bugzilla 10625. URIResolvers were being dropped in several places.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Util class for the TrAX package.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Synchronize calls to Stylesheet.translate() using class' lock.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Ensure synchronization for Templates objects.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/24<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added safety net to getDOM().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/07/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ObjectType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+added new type for support of ext java functions
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/07/25<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc Translet.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler CastExpr.java FunctionCall.java Parser.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ErrorMessages.java ErrorMsg.java NodeSetType.java NodeType.java ReferenceType.java StringType.java Type.java xml-xalan/java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java BasisLibrary.java xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug fix 10837, support of ext java functions
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/29<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Expression.java FlowList.java Mode.java StepPattern.java TestSeq.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 11166.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Mode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed loop exit condition in prepareTestSequences().
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/07/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ReferenceType.java ResultTreeType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Added type promotion from result-tree to object (used in call to nodeset()).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/07/30<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler CastExpr.java FunctionCall.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util MultiHashtable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+improved selection algorithm for overloaded methods and constructors in ext java funct calls
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionAvailableCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fixed regression of test function-available('xalan:nodeset').
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use factory class methods to instantiate default decimal formatter.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output SAXHTMLOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+1. Report attributes with non-empty local names.
+2. Ignore attributes reported as content.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Use unmodified URI when retrieving the document via the DOM cache.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/12<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc TransletOutputHandler.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime SAXAdapter.java TextOutput.java TransletOutputBase.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output OutputBase.java SAXXMLOutput.java StreamHTMLOutput.java StreamOutput.java StreamXMLOutput.java xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2SAX.java DOM2TO.java SAX2TO.java TemplatesHandlerImpl.java TemplatesImpl.java TransformerFactoryImpl.java TransformerHandlerImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+New implementation of identity transform. Fix for Bugzilla 11345.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/08/13<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler Expression.java ParameterRef.java VariableRef.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug fix for bugzilla 11221, MK053
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/08/15<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug 11704, fixed ErrorMsg to include name information
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/08/21<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fixed bug that was calling an inappropriate compare method when the right side of the comparison was a DOM
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/08/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax DOM2TO.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+fixes conf tests lre02, lre03, lre11, namespace125, namespace126
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler RelationalExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for bugzilla 11987. Missing case in typeCheck() method.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Very minor optimization.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/08/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+conf test string134 fix
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/23<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler XslElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for namespace102 (this test worked with Crimson but failed with
+Xerces).
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util ResultTreeType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Removed debugging message.
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/26<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Compile.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler Closure.java Constants.java Number.java ParameterRef.java Predicate.java Sort.java SyntaxTreeNode.java Template.java Variable.java VariableRef.java VariableRefBase.java XSLTC.java xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util NodeSortRecordFactGenerator.java xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 11828. A new closure conversion algorithm has been
+designed and implemented. The old algorithm did not work in some edge
+cases (c.f. description of Bugzilla 11828). Closure variables in an
+inner class are now accessed locally instead of via the AbstractTranslet
+class. Also, we have set the new version to be "XSLTC 1.2".
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Allow the default namespace to be redefined as "".
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+*** empty log message ***
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>2002/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+bug fix for output13 conf test
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>2002/08/27<br />
+<b>
+<i>Modified: </i>
+</b> xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+Fix for Bugzilla 12075.
+<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.3.2</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>02/21/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax SAX2DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 6417, removed extra root element in DOM,
+ contributed by Tim Elcott<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>02/21/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax Tag:
+ jaxp-ri-1_2_0-beta-branch SAX2DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fix DOMResult SOAP bug 4641035<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>02/26/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 6636, Transformers forgets output properties
+ fix contributed by Tim Elcott (bigfoot.com)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>02/28/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 6751, null properties are now set properly,
+ fix contributed by Derek Sayeau- thanks Derek.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/01/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TransletLoader.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Tomcat 4.x external Java class bug fix, Tomcat 4.x
+ could not find external java classes, contrib by Santiago Pericas<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/01/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Tomcat 4.x external Java class bug fix, Tomcat 4.x
+ could not find external java classes, contrib by Santiago Pericas<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/01/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime Tag:
+ jaxp-ri-1_2_0-beta-branch TransletLoader.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bugtraq #4644811, Tomcat and ext java classes, Santiago Pericas<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/01/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax Tag:
+ jaxp-ri-1_2_0-beta-branch TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bugtraq #4644811, Tomcat and ext java classes, Santiago Pericas<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/01/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax Tag:
+ jaxp-ri-1_2_0-beta-branch TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>backed out chg<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/01/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax Tag:
+ jaxp-ri-1_2_0-beta-branch TemplatesImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bugtraq #4644811, Tomcat and ext java classes, Santiago Pericas<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/04/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom SortingIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 6693- fix by Santiago Pericas, implement a
+ iterator clone method.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/05/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java
+ SAX2DOM.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 6620 fix: DOMSource no longer requires
+ Document nodes, fix contrib by Santiago Pericas-Geersten<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/05/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>re-entered bug fix 6751, last putback inadvert.
+ removed this fix<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fixes for 6257,6851,6665,6809; Santiago Pericas-Geerston<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 6850, Santiago Pericas-Geerston<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/07/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TemplatesHandlerImpl.java
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 6312, TemplatesHandler and XMLReader, fix
+ by Santiago Pericas<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>03/11/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler StepPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>just minor change to syntax<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>03/11/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java
+ java/src/org/apache/xalan/xsltc/dom UnionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fix 5573 for XSLTMark alphabetize test<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>03/11/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom
+ CurrentNodeListIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fix bug 5577 XSLTMark trend test<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>03/11/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>got rid of call to forceNaturalOrder code, Santiago Pericasgeersten<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>03/11/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Expression.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fix XSLTMark test dbonerow slow performance, Santiago P.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/12/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ FormatNumberCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 6692, fix by Santiago Pericas-Geersen<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/12/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ ProcessingInstruction.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 5141, fix by Santiago Pericas-Geersen<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/12/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ StringValueHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 5141, fix by Santiago Pericas-Geersen<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/12/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 6413, fix by Santiago Pericas-Geersen<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/13/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 6963, omit header needs to be set before output
+ occurs, fix by Santiago Pericas-Geersen<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/14/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ ParentLocationPath.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 5576, had to add a new test case in translate()
+ to set includeself for step iterator, thanks to Santiago Pericas-Geersen<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/15/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LiteralElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 6819, variables translated before attrs to fix
+ problems with dependency, fix by Santiago Pericas-Geertsen<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/18/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 6935, fixed char escaping in non-URL HTML
+ attribute case; also added recognition for URL escaping in HTML4 cite attrs.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/19/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fix for unit test customer/murphy3.xsl<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/27/2002<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/dom ExtendedSAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 2951, new class<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/27/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMBuilder.java
+ DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 2951 fix<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/27/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime SAXAdapter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 2951 fix<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>03/28/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix for output31, output32 tests, esc chars<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/02/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 7679, xsl:vendor fix<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/03/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch ApplyTemplates.java
+ Constants.java Expression.java
+ FormatNumberCall.java LiteralElement.java
+ ParentLocationPath.java Parser.java
+ ProcessingInstruction.java Step.java
+ StepPattern.java Stylesheet.java SymbolTable.java
+ SyntaxTreeNode.java XslAttribute.java
+ XslElement.java
+ java/src/org/apache/xalan/xsltc/compiler/util Tag:
+ jaxp-ri-1_2_0-fcs-branch Util.java
+ java/src/org/apache/xalan/xsltc/dom Tag:
+ jaxp-ri-1_2_0-fcs-branch
+ CurrentNodeListIterator.java DOMBuilder.java
+ DOMImpl.java SortingIterator.java
+ UnionIterator.java
+ java/src/org/apache/xalan/xsltc/runtime Tag:
+ jaxp-ri-1_2_0-fcs-branch AbstractTranslet.java
+ BasisLibrary.java Constants.java
+ DefaultSAXOutputHandler.java SAXAdapter.java
+ StringValueHandler.java TextOutput.java
+ TransletLoader.java
+ java/src/org/apache/xalan/xsltc/trax Tag:
+ jaxp-ri-1_2_0-fcs-branch DOM2SAX.java SAX2DOM.java
+ TemplatesHandlerImpl.java TemplatesImpl.java
+ TransformerFactoryImpl.java TransformerImpl.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/dom Tag:
+ jaxp-ri-1_2_0-fcs-branch ExtendedSAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>merged the latest xsltc subtree with the xalan 2.3.1 fcs branch<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/04/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed problem with attribute URI<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/04/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for bugzilla 7721<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/04/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix related to bugzilla 7721<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/05/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax Tag:
+ jaxp-ri-1_2_0-fcs-branch DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed attr namespace.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/05/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax Tag:
+ jaxp-ri-1_2_0-fcs-branch SAX2DOM.java
+ TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed problem when a DOMResult is created with a root node.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/05/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Bugzilla 7721.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/08/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax SAX2DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add support for user-specified root node.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/08/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Add support for user-specified root node.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/09/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch FunctionAvailableCall.java
+ FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 7375 fixed, handles ext java functions now<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/09/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax Tag:
+ jaxp-ri-1_2_0-fcs-branch SAX2DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed regression.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/09/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax SAX2DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Regression fixed.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/15/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax Tag:
+ jaxp-ri-1_2_0-fcs-branch TemplatesHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 8017, translet class name fixed in getTemplates<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/15/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch AttributeValue.java
+ AttributeValueTemplate.java Number.java
+ XslAttribute.java XslElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>New implementation of xsl:element<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/15/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime Tag:
+ jaxp-ri-1_2_0-fcs-branch BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>New implementation of xsl:element<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/15/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom Tag:
+ jaxp-ri-1_2_0-fcs-branch DOMAdapter.java
+ DOMImpl.java MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>New implementation of xsl:element<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>Tom.Amiro@Sun.COM<b>
+<i> on </i>
+</b>04/15/2002<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+&gt; bug 8017, translet class name fixed in getTemplates
+&gt;
+&gt;<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/16/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TemplatesHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 8017, translet class name fixed in getTemplates<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/16/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom Tag:
+ jaxp-ri-1_2_0-fcs-branch DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Check for localName == null.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/16/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch Include.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 7835, patch from Stefan Kost to better handle
+ empty strings and local paths in xsl:include<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/16/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Include.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 7835, integrated patch by Stefan Kost which
+ better handles empty strings and local paths in xsl:include<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/16/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch DocumentCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Santiago: fixed type check error when 2nd arg (base-uri) is node instead
+ of node-set.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag: XSLTC_DTM
+ Mode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>get rid of debug line<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch FunctionCall.java
+ Parser.java Stylesheet.java SyntaxTreeNode.java
+ XSLTC.java xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added support for extension function nodeset().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom Tag:
+ jaxp-ri-1_2_0-fcs-branch DOMAdapter.java
+ DOMImpl.java MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added support for extension function nodeset().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/17/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime Tag:
+ jaxp-ri-1_2_0-fcs-branch BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added support for extension function nodeset().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/18/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch CastExpr.java
+ java/src/org/apache/xalan/xsltc/compiler/util Tag:
+ jaxp-ri-1_2_0-fcs-branch ReferenceType.java
+ java/src/org/apache/xalan/xsltc/runtime Tag:
+ jaxp-ri-1_2_0-fcs-branch BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed problem with extension function nodeset() and parameters.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>mmidy@apache.org<b>
+<i> on </i>
+</b>04/18/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime Tag: XSLTC_DTM
+ SAXAdapter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Pass in the local name of the element<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/19/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch FunctionAvailableCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>JAVA_EXT_PREFIX renamed to JAVA_EXT_XSLTC<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util Tag:
+ jaxp-ri-1_2_0-fcs-branch MethodGenerator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed bug in addLocalVariable() when the slot allocator was already 
+initialized.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch ElementAvailableCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added namespace support to the implementation of element-available().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch LiteralExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Namespace support for element-available().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/22/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Tag:
+ jaxp-ri-1_2_0-fcs-branch Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed bug in resolveReferences().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/23/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime Tag:
+ jaxp-ri-1_2_0-fcs-branch TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>escaped character handling improved by Santiago<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/23/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime Tag:
+ jaxp-ri-1_2_0-fcs-branch TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>escaped character handling improved by Santiago, again<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/23/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util Tag:
+ jaxp-ri-1_2_0-fcs-branch ErrorMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed command line synopsis.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/24/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc DOM.java
+ java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java
+ AttributeValue.java AttributeValueTemplate.java
+ CastExpr.java Constants.java DocumentCall.java
+ ElementAvailableCall.java Expression.java
+ FormatNumberCall.java FunctionAvailableCall.java
+ FunctionCall.java Include.java LiteralElement.java
+ LiteralExpr.java Number.java
+ ParentLocationPath.java Parser.java
+ ProcessingInstruction.java Step.java
+ StepPattern.java Stylesheet.java SymbolTable.java
+ SyntaxTreeNode.java XSLTC.java XslAttribute.java
+ XslElement.java xpath.cup
+ java/src/org/apache/xalan/xsltc/compiler/util
+ ErrorMessages.java MethodGenerator.java
+ ReferenceType.java Util.java
+ java/src/org/apache/xalan/xsltc/dom
+ CurrentNodeListIterator.java DOMAdapter.java
+ DOMBuilder.java DOMImpl.java ExtendedSAX.java
+ MultiDOM.java SortingIterator.java
+ UnionIterator.java
+ java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java BasisLibrary.java
+ Constants.java DefaultSAXOutputHandler.java
+ SAXAdapter.java StringValueHandler.java
+ TextOutput.java TransletLoader.java
+ java/src/org/apache/xalan/xsltc/trax DOM2SAX.java
+ SAX2DOM.java TemplatesHandlerImpl.java
+ TemplatesImpl.java TransformerFactoryImpl.java
+ TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Commit after syncing trunk with branch jaxp-ri-1_2_0-fcs-04.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/25/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ ErrorMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>updated compiler usage statement<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/25/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Compile.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added a -v option to compiler,prints out version<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/25/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ ErrorMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>updated cmdline.Transform usage statement<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/25/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.lex<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added support for the full Unicode char set.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/25/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Replacing '/' by '$slash$' and ':' by '$colon$' in escape() (bugzilla 6289)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/26/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Compile.java
+ java/src/org/apache/xalan/xsltc/compiler XSLTC.java
+ java/src/org/apache/xalan/xsltc/compiler/util
+ ErrorMessages.java
+ java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added -n option to disable template inlining. This is useful to avoid
+ getting very long methods (the limit set by the JVM is 64K). The same
+ option can be passed to a TransformationFactory via Trax using
+ the "disable-inlining" attribute.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/26/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler VariableBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added check to avoid duplicate dependencies.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/26/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Constants.java
+ FilterParentPath.java ParentLocationPath.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Replaced STEP_ITERATOR by NODE_ITERATOR_BASE when calling includeSelf().<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/26/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Ensured that global vars are initialized in the order in which they
+ were defined, whenever possible. This order may be altered due to
+ the existence of dependencies between the vars.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/29/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler FunctionCall.java
+ java/src/org/apache/xalan/xsltc/compiler/util
+ ReferenceType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a type mapping between 'reference' and 'java.lang.Object' and
+ vice versa. With this addition, a stylesheet can pass a parameter
+ to an external Java function without getting a type check error.
+ (see Bugzilla 8595).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>04/29/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fixed null ptr exception with sax sources that did
+ not specify an xml reader<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/29/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed Bugzilla 8489.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>04/30/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed a bug in replace() by writting a new (and more efficient) version.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>Tom.Amiro@Sun.COM<b>
+<i> on </i>
+</b>04/30/2002<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+&gt; Fixed a bug in replace() by writting a new (and more efficient) version.
+&gt;
+&gt;<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>05/02/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed file-not-found problem with flavor=trax.sax by propagating
+ the systemId.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>05/03/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed for Bugzilla 2886 (node15).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>05/03/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ApplyImports.java
+ Include.java Stylesheet.java TestSeq.java
+ XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Disabling template inlining for included stylesheets.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>05/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ AncestorPattern.java Mode.java ParentPattern.java
+ StepPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed a few problems with ancestor patterns (//) and patterns with
+ explicit priorities.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>05/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Rewrote a couple of if statements as if expressions.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>05/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ VariableBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Better error reporting for syntax errors in XPath expressions.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>05/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for Bugzilla 8041.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>05/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ ErrorMessages.java ErrorMessages_no.java
+ ErrorMsg.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for Bugzilla 8041.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>santiagopg@apache.org<b>
+<i> on </i>
+</b>05/06/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ AbsolutePathPattern.java AncestorPattern.java
+ ParentPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for Bugzilla 2836 (modes15).<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>05/08/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fixes a set of trax.dom conf tests<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>05/08/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fixes a set of trax.dom conf tests<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.3 and 2.3.1</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>01/24/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 1520 fix, escape chars over 0080 instead of 00FF<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>01/24/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 1520, adjusted 0080 to 007F in ASCII cutoff<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>02/01/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ AttributeValueTemplate.java
+ AbsoluteLocationPath.java AbsolutePathPattern.java
+ AlternativePattern.java AncestorPattern.java
+ ApplyImports.java ApplyTemplates.java
+ AttributeSet.java BooleanCall.java BinOpExpr.java
+ BooleanExpr.java CallTemplate.java CastExpr.java
+ CeilingCall.java Choose.java Comment.java
+ DecimalFormatting.java ConcatCall.java
+ Constants.java ContainsCall.java Copy.java
+ CopyOf.java CurrentCall.java DocumentCall.java
+ EqualityExpr.java Import.java If.java
+ ElementAvailableCall.java Expression.java
+ Fallback.java FilterExpr.java FilterParentPath.java
+ FloorCall.java FlowList.java ForEach.java
+ FormatNumberCall.java FunctionAvailableCall.java
+ FunctionCall.java GenerateIdCall.java
+ IdKeyPattern.java Include.java IntExpr.java
+ Key.java KeyCall.java LangCall.java LastCall.java
+ LiteralAttribute.java LiteralElement.java
+ LiteralExpr.java LocalNameCall.java
+ NamespaceAlias.java LogicalExpr.java Message.java
+ Mode.java NameBase.java NameCall.java
+ NamespaceUriCall.java NotCall.java Number.java
+ NumberCall.java Output.java Param.java
+ ParentLocationPath.java ParameterRef.java
+ ParentPattern.java PositionCall.java
+ RelationalExpr.java Predicate.java Sort.java
+ ProcessingInstruction.java RealExpr.java
+ VariableRef.java RoundCall.java ValueOf.java
+ SimpleAttributeValue.java StartsWithCall.java
+ Stylesheet.java StringCall.java
+ StringLengthCall.java StepPattern.java
+ Template.java TestSeq.java Text.java
+ TopLevelElement.java TransletOutput.java
+ UnaryOpExpr.java UnionPathExpr.java
+ UnparsedEntityUriCall.java UseAttributeSets.java
+ LongExpr.java Variable.java Whitespace.java
+ XslAttribute.java WithParam.java XSLTC.java
+ XslElement.java UnsupportedElement.java
+ VariableBase.java VariableRefBase.java
+ FilteredAbsoluteLocationPath.java
+ SyntaxTreeNode.java Step.java UnresolvedRef.java
+ ProcessingInstructionPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>changed de.fub.bytecode to org.apache.bcel<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>02/01/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ NamedMethodGenerator.java NodeCounterGenerator.java
+ NodeSetType.java NodeSortRecordGenerator.java
+ NodeType.java RealType.java ReferenceType.java
+ ResultTreeType.java RtMethodGenerator.java
+ SlotAllocator.java StringType.java
+ TestGenerator.java Util.java LongType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>changed de.fub.bytecode to org.apache.bcel<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>02/01/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ AttributeSetMethodGenerator.java BooleanType.java
+ ClassGenerator.java CompareGenerator.java
+ FilterGenerator.java IntType.java
+ MatchGenerator.java MethodGenerator.java
+ MethodType.java Type.java VoidType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>changed de.fub.bytecode to org.apache.bcel<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>02/05/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 1520, spec chars in href attributes<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>02/07/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 1520, updating href attr spec char handling<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>02/13/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 6189, ArrayIndexOutOfBoundsException, contrib
+ by Mirko Seifert<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>02/14/2002<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc
+ javax.xml.transform.TransformerFactory<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added a service provide source file to be copied into
+ xsltc.jar (bundled jar)<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix to the XPath parser to make sure (again!) that non-prefixed elements
+ in XPath expressions/patterns are not assigned the default namespace but
+ rather the null namespace.
+ PR: bugzilla 4904
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Modified the order in which top-level elements are parsed. This to make sure
+ that xsl:namespace-alias elements are parsed before xsl:import and include,
+ so that namespace aliases are global to all included stylesheets.
+ PR: bugzilla 4876
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/04/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Predicate.java
+ xpath.lex<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/04/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc NodeIterator.java
+ java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java
+ CurrentNodeListIterator.java DOMImpl.java
+ FilterIterator.java FilteredStepIterator.java
+ KeyIndex.java MatchingIterator.java MultiDOM.java
+ NodeIteratorBase.java NthIterator.java
+ StepIterator.java UnionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for the various node iterators cloneIterator() method. This method
+ should clear the _isRestartable flag to prevent iterators contained within
+ variables and parameters from changing their value. This flag is now wrapped
+ inside a setRestartable(boolean flag) method so that the call can be
+ propagated down a stack of iterators. This seems to solve many of our
+ iterator problems.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apaceh.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/04/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler SyntaxTreeNode.java
+ XslElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a method to the SyntaxTreeNode base class that can be used to check
+ the existence of an attribute in the input document: hasAttribute(String 
+name).
+ This method is used in the XslElement class to verify the existence of a
+ 'namespace' attribute with an empty value.
+ PR: bugzilla 4983
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/04/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated the realToString() method in the runtime library to always output
+ numbers on decimal form (and not on Java's "computerized scientific notation."
+ PR: bugzilla 4199
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/04/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ RoundCall.java
+ java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed the return-type of the round() function form int to double. The result
+ is still rounded (of course), but it is returned as a double to be able to
+ return NaN and infinite values.
+ PR: bugzilla 2805
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Predicate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>I am still fiddling around with predicates containing variable references
+ and 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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.lex<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Reverting previous putback.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Output.java
+ java/src/org/apache/xalan/xsltc/compiler/util
+ ErrorMessages.java ErrorMessages_no.java
+ ErrorMsg.java
+ java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a warning message for unsupported output encodings.
+ PR: bugzilla 5139
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.lex<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fixed typo<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for global parameters whose names contain dots or dashes.
+ PR: bugzilla 5328
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for a bug in the XPath parser. The parser would choke on some XPath
+ expressions that contained references to element names that were identical
+ to axis names.
+ PR: bugzilla 3502
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added another fix to properly convert ver small floating point numbers to
+ strings.
+ PR: bugzilla 4199
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a fix for global variables declared in included/imported stylesheets.
+ PR: bugzilla 5327
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ MethodGenerator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for use of XPath expressions in contexts where there is no 'current'
+ node (ie. in top-level elements such as variables and attribute sets).
+ PR: bugzilla 5194
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added factory creation methods and checks<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>new prototype class, work in progress<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added factory creation methods and checks<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>new prototype class, work in progress<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ ResultTreeType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for passing result tree fragments and node-sets to external Java
+ methods. Node sets and RTFs can both be handled as org.w3c.dom.Node or
+ org.w3c.dom.NodeList in the called method.
+ PR: none
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added factory creation methods and checks<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>new prototype class, work in progress<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added factory creation methods and checks<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>new prototype class, work in progress<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ ResultTreeType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for passing result tree fragments and node-sets to external Java
+ methods. Node sets and RTFs can both be handled as org.w3c.dom.Node or
+ org.w3c.dom.NodeList in the called method.
+ PR: none
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added factory creation methods and checks<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>new prototype class, work in progress<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added factory creation methods and checks<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>new prototype class, work in progress<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added factory creation methods and checks<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>new prototype class, work in progress<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>look for xsltc specific attributes<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>store error listener and or uri resolver locally
+ set in real factory when needed<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>12/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ SmartTransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fixed scope of internal method<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Transform.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed some stupid debug timing-loop in the command line Transform tool.
+ PR: none
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed the main() method from the XSLTC class. This class represents the
+ native API of the compiler.
+ PR: none
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>12/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Transform.java
+ java/src/org/apache/xalan/xsltc/dom DTDMonitor.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A small cleanup in our native API.
+ Submitted by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>01/07/2002<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fixed problem with output content handler creation
+ (while running xalan conf tests) in method getOutputHandler(Result).<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D14</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XslAttribute.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed bug for xsl:attribute
+ PR: 4175
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for properly creating a SAX InputSource from a TrAX InputStream for
+ encapsulating a stylesheet before it is compiled.
+ PR: bugzilla 4711 (I hope to God)
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for last putback.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>This fix should take care of a regression introduced by the code that was
+ added on the 29.10.2001 to take care of forward referenced variables.
+ This little patch ensures that variables that do not have any dependencies
+ are kept in order.
+ PR: bugzilla 4779
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed a minor regression after the fix for 3592. A literal number zero was
+ always interpreted as an integer zero and never as a double -0 opr 0.0.
+ PR: bugzill 4810
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed the code that prevents escaping of text inside &lt;script&gt; and &lt;style&gt;
+ elements in HTML. The code did not handle upper case element names.
+ PR: bugzilla 2517
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>11/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 4906<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java
+ Template.java xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for nested parent location paths / filter parent paths with key() or
+ id() root. These paths would in some case returnt he root node when they
+ should not.
+ PR: bugzilla 4781
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Sort.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for a big in the &lt;xsl:sort&gt; implementation. The element would not always
+ work properly in the innermost loop in nested &lt;xsl:for-each&gt; elements.
+ PR: bugzilla 4921
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java
+ Sort.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for a regression introduced by a fix for &lt;xsl:sort/&gt; and nested
+ &lt;xsl:for-each/&gt; elements.
+ PR: bugzilla 4921
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to ensure that double quotes are escaped inside attribute values in
+ HTML output.
+ PR: bugzilla 4845
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for a bug caused by &lt;xsl:apply-templates/&gt; not always passing parameters 
+to
+ the invoked template(s). Parameters would not be put on the stack if the
+ 'select' attribute contained wildcards.
+ PR: bugzilla 4718
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ StringType.java
+ java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed conversion between strings and numbers. Empty strings should return
+ 0 and not NaN.
+ PR: bugzilla 4783
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Choose.java
+ Parser.java SyntaxTreeNode.java Text.java
+ java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for a whole wack of bugs related to text-nodes and handling of whitespace
+ and special characters.
+ PR: bugzilla 1403, 1520, 3005, 3418 and 3690
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Prevented the namespace-uri() from returning anything for namespace nodes.
+ PR: bugzilla 4896
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XslElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added test in &lt;xsl:element&gt; to verify that the local name of the created
+ element is legal (must have contents, but no whitespaces or colon).
+ PR: bugzilla 4894
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A small fix for the substring() function to output an empty string if the
+ start index is an infinite value.
+ PR: bugzilla 4813
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Constants.java
+ Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for XHTML output.
+ PR: bugzilla 4904
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Message.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A cleanup in the Message class. Making way for a fix for 4874
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Predicate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for position predicates used within parameters and variables.
+ PR: bugzilla 4783
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XslAttribute.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A small fix needed after a fix for stripping/preserving text nodes. The fix
+ for text-nodes caused us to insert text nodes before &lt;xsl:attribute&gt; elements
+ in the AST, which again caused the XslAttribute class to complain.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc DOM.java
+ java/src/org/apache/xalan/xsltc/compiler Message.java
+ java/src/org/apache/xalan/xsltc/dom DOMAdapter.java
+ DOMImpl.java MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a new method to the DOM interface for retrieving the DOM as a single
+ string. This method is different from the existing getStringValue() in the
+ way that it generates element brackets and copies PIs and comments.
+ PR: bugzilla 4874
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ FilteredStepIterator.java StepIterator.java
+ UnionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated the StepIterator and FilteredStepIterator's cloneIterator() and
+ reset() methods so that the _isRestartable flag is set correctly.
+ PR: bugzilla 4905
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Another fix for 3005 (special characters inside CDATA).
+ PR: bugzilla 3005
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for decimal formatting
+ PR: bugzilla 4901
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler AttributeSet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for a regression introduced by a fix for whitespace handling.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler FilterExpr.java
+ Predicate.java VariableRefBase.java
+ java/src/org/apache/xalan/xsltc/dom
+ CurrentNodeListIterator.java DOMImpl.java
+ FilteredStepIterator.java KeyIndex.java
+ MatchingIterator.java MultiDOM.java
+ NthIterator.java StepIterator.java
+ UnionIterator.java
+ java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for trees of step iterators stored inside variables.
+ Also some fixes for recently introduced regressions.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.iorg<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for the TrAX API when used from within an environment that does _not_
+ use one of the standard classloaders.
+ PR: bigzilla 5130
+ Obtained from: n/a
+ Submitted by: Jochen.Cordes@t-online.de
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Sort.java
+ java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for multilevel sort-keys. If a set of translets (representing different
+ stylesheets) are running one the same JVM, and two or more of these translets
+ use NodeSortRecord objects to represent &lt;xsl:sort/&gt; elements, then the number
+ of sort keys would be set in the NodeSortRecord _class_ constructor instead of
+ being set locally for each occurance of &lt;xsl:sort/&gt;.
+ PR: bugzilla 4755
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler CastExpr.java
+ EqualityExpr.java Expression.java LastCall.java
+ Predicate.java VariableRefBase.java
+ java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ StepIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for resetting the source iterator of a node-value iterator.
+ PR: bugzilla 5152
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ DecimalFormatting.java
+ java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for a few regressions from yesterday.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix to the XPath parser to make sure (again!) that non-prefixed elements
+ in XPath expressions/patterns are not assigned the default namespace but
+ rather the null namespace.
+ PR: bugzilla 4904
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Modified the order in which top-level elements are parsed. This to make sure
+ that xsl:namespace-alias elements are parsed before xsl:import and include,
+ so that namespace aliases are global to all included stylesheets.
+ PR: bugzilla 4876
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D12 and 2.2.D13</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed the values for the output properties "OMIT_XML_DECLARATION" and
+ "INDENT" from "true" and "false" to "yes" and "no".
+ PR: bugzilla 4039
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated the getAttribute() method to throw an IllegalArgumentException
+ for unknown attributes.
+ PR: bugzilla 4046
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler NameBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed a bug in the name() and local-name() functions. The functions would
+ use the current node and not the context node when no arguments were given.
+ PR: bugzilla 3322
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated Mode.java to properly handle patterns matching on node(), comment() 
+and
+ processing-instruction(). Also had to make a small change to the 
+setStartNode()
+ method in the FollowingIterator (inner class of DOMImpl.java) to properly
+ handle attribute-nodes as start nodes. Also, I had to change 
+ParentLocationPath
+ to remove duplicates that can be produced by the FollowingIterator when
+ started with an attribute node.
+ PR: bugzilla 2551
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A small for for the output property OMIT_XML_DECLARATION
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to the transformer implementation to allow for namespace-prefixed
+ output properties (output property extensions).
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>10/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>included a more portable way to create an URI from a File<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>10/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime DefaultRun.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>ncluded a more portable way to create an URI from a File<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>10/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>ncluded a more portable way to create an URI from a File<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>10/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Transform.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>ncluded a more portable way to create an URI from a File<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java
+ ParentLocationPath.java Parser.java
+ RelationalExpr.java SyntaxTreeNode.java
+ java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for a few regressions.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java
+ java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for the "*" pattern. Made it include comment and PI nodes.
+ PR: bugzilla 4050
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for the last fix.
+ PR: bugzilla 4050
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for the last fix.
+ PR: bugzil.la 4050
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>10/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added catch for malformed url<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Transform.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Modified error handling to extract messages from SAXException. This tool
+ will also print the stack trace of the SAXException if the '-x' flag is
+ specified (debug turned on).
+ PR: none
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added code to prevent index-out-of-bounds exception in the output handler.
+ PR: none
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc DOM.java
+ java/src/org/apache/xalan/xsltc/compiler XSLTC.java
+ xpath.cup
+ java/src/org/apache/xalan/xsltc/dom DOMAdapter.java
+ DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added support for the namespace axis.
+ PR: bugzilla 1379
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Missing file from last putback.
+ PR: bugzilla 1379
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A few add'ons to the namespace axis implementation. Added support for
+ the namespace-uri() function when applied to namespace nodes.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Code cleanup.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to prevent attribute nodes to be included by the node() pattern.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for the following:: iterator when started with an attribute node.
+ PR: bugzilla 2551
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LiteralElement.java
+ Mode.java
+ java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix to a recent regression after a fix for some axis iterators.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup xpath.lex<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added 4 symbols to the lexiographical analyser (xpath.lex) to recognise
+ name-tests with whitespace between the NCName and the "()" brackets.
+ PR: bugzilla 4208
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XslAttribute.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to prevent xsl:attributes from not compiling itself into the translet 
+code.
+ PR: bugzilla 4175
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ FilterParentPath.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Enabled node ordering for certain filtered parent paths.
+ PR: bugzilla 4178
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed the node sort record base class so that it places NaN values first
+ in the sorted list/node-set.
+ PR: bugzilla 3517
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed the DOM's copy() function to always copy the necessary namespace
+ declaration to the output handler.
+ PR: bugzilla 3409 (not complete fix)
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler CallTemplate.java
+ DecimalFormatting.java Param.java SymbolTable.java
+ Template.java Variable.java VariableBase.java
+ WithParam.java
+ java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Cleaned up the compiler's symbol table. Added support for detecting multiple
+ defined decimal formatting symbols.
+ PR: bugzilla 3872
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler CallTemplate.java
+ Template.java VariableBase.java WithParam.java
+ XSLTC.java
+ java/src/org/apache/xalan/xsltc/compiler/util Util.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added/checked proper escaping of 
+template/variable/parameter/attribute-set/etc.
+ names. Occurances of the characters '.' and '-' are replaced by '$dot$' and
+ '$dash$' respectively in method/variable names. The characters are both
+ replaced by an underbar ('_') in the translet class name.
+ PR: 2399
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for getting all attributes from the Xerces parser. Xerces and Crimson
+ report attributes differently, and we have to take that into account.
+ PR: bugzilla 2465
+ Obtained from: n/a
+ Submitted by: Douglas Sellers &lt;douglasjsellers@hotmail.com&gt;
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ FilterParentPath.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added node ordering to FilterParentPath
+ PR: bugzilla 4248
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed one of the compare() methods in the basis library to properly
+ compare node sets.
+ PR: bugzilla 4242
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed the registerAttribute() method so that it always uses the same
+ id for an attribute name.
+ PR: bugzilla 4243
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Param.java.orig<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed file Param.java.orig
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ VariableBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed the variable base class to allow variables to be re-defined in
+ a different scope.
+ PR: bugzilla 3268
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a node-value iterator to the DOM multiplexer to allow for predicates
+ in combination with the document() function.
+ PR: bugzilla 3402
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for variables and parameters containing node sets in stylesheets that
+ use the document() function. This fix completes the cloneIterator() method
+ of the axis iterators returned by the DOM multiplexer.
+ PR: bugzilla 3501
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added the default xml=http://www.w3.org/XML/1998/namespac namespace
+ declaration to the root node of our 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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom LoadDocument.java
+ MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for determining the current working directory when loading XML
+ documents using the document() function. The base URI (that gives you
+ the CWD) should normally be taken from the context node, but can also
+ be determined by the node/node-set defining the document URI.
+ PR: bugzilla 3471
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Gave the parent/sibling stacks in the DOM builder dynamic length.
+ PR: bugzilla 3066
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Compile.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a '-i' option to the command-line compiler to allow stylesheets to be
+ passed in through stdin. The '-i' option must be used with the '-o' option
+ to specify a translet name.
+ PR: bugzilla 4253
+ Obtained from: n/a
+ Submitted by: johnh@schemasoft.com (John Howard)
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Include.java
+ Stylesheet.java XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Cleaned up the include/import precedence code in Import and Include
+ PR: bugzilla 2695
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed output formatting of some floating point numbers.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LogicalExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for logical expressions that have combinations of not() and "and".
+ PR: bugzilla 2351
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>10/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added a empty string systemId in cases where it was
+ set to null, slight rearrangment of StreamSource handling code as well.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler header.txt<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for names templates. Dashes and dots in template names are now
+ escaped using '$dash$' and '$dot$'.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for a recent regression. A no major change. Just a one-line if to
+ test for a potential NPE.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ApplyImports.java
+ Mode.java Stylesheet.java Template.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A major fix for &lt;xsl:apply-imports/&gt;. This element was previously treated
+ as &lt;xsl:apply-templates/&gt; but is now handled similar to Java's 'super()'
+ method. Note that this is not a complete fix. The rest will come tomorrow
+ or the day after. I just wanted to make sure that today's efforts were not
+ lost and that they are tested overnight.
+ PR: bugzilla 1397
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ApplyImports.java
+ DocumentCall.java Stylesheet.java
+ SyntaxTreeNode.java
+ java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed the document() function so that it will load documents relative to
+ either the currently loaded document, or if that fails, relative to the
+ location of the original stylesheet.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerHandlerImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed the TransformerHandler so that it's Transformer instance can be used
+ separateely from the handler itself.
+ PR: bugzilla 3873
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Import.java
+ Include.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for resulving relative URIs when using &lt;xsl:include/&gt; and &lt;xsl:import/&gt;
+ through TrAX without using a URIResolver.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for a bug that seemed to be triggered by the sequence in which Xerces'
+ lexical handler and content handler were set. The lexical handler must be
+ set before the content handler, otherwise Xerces will keep generating the
+ first startElement() event over and over again.
+ PR: bugzilla 2465
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Stylesheet.java
+ java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed the general handling of the XML namespace mapping.
+ PR: bugzilla 4331
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ApplyImports.java
+ Mode.java Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for setting the scope of templates for an &lt;xsl:apply-imports/&gt; element.
+ This fix allows for proper "multiple inheritance" in XSLTC.
+ PR: bugzilla 1397
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to ensure that the order of the -o and -p command line options is
+ not significant.
+ PR: bugzilla 4343
+ Obtained from: n/a
+ Submitted by: johnh@schemasoft.com (John Howard)
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler FunctionCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed our extension for calling external static Java methods to allow
+ both the "http://xml.apache.org/xalan/xsltc/java" namespace and the
+ "http://xml.apache.org/xslt/java" namespace (Xalan's namespace for Java
+ function calls).
+ PR: bugzilla 3994
+ Obtained from: n/a
+ Submitted by: after numerous requests/suggestions on xalan-dev
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler BinOpExpr.java
+ Choose.java DocumentCall.java Number.java
+ Otherwise.java StepPattern.java Stylesheet.java
+ VariableBase.java VariableRef.java
+ VariableRefBase.java When.java XSLTC.java xpath.cup
+ java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Implemented code to resolve forward references and dependencies between
+ global variables and parameters.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/30/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler UnresolvedRef.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Missing file from last putback.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ApplyTemplates.java
+ AttributeSet.java AttributeValueTemplate.java
+ BinOpExpr.java CallTemplate.java ConcatCall.java
+ ContainsCall.java CopyOf.java
+ DecimalFormatting.java DocumentCall.java
+ ElementAvailableCall.java Expression.java
+ ForEach.java FormatNumberCall.java
+ FunctionAvailableCall.java FunctionCall.java
+ If.java Import.java Include.java Instruction.java
+ Key.java Output.java Param.java Parser.java
+ ProcessingInstruction.java RelationalExpr.java
+ StartsWithCall.java StringCall.java Stylesheet.java
+ Template.java TopLevelElement.java
+ TransletOutput.java UnsupportedElement.java
+ UseAttributeSets.java ValueOf.java Variable.java
+ VariableBase.java When.java Whitespace.java
+ WithParam.java XslAttribute.java XslElement.java
+ xpath.cup
+ java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Moved all error messages from the various source files into the ErrorMsg
+ class in the compiler/util directory.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Compile.java
+ Transform.java
+ java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java
+ SlotAllocator.java
+ java/src/org/apache/xalan/xsltc/dom LoadDocument.java
+ NodeSortRecordFactory.java
+ java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java BasisLibrary.java
+ SAXAdapter.java TextOutput.java
+ java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
+ TransformerFactoryImpl.java
+ TransformerHandlerImpl.java TransformerImpl.java
+ XSLTCSource.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ ErrorMessages.java ErrorMessages_en.java
+ ErrorMessages_no.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A first stab at i18n'ing XSLTC. Error and warning messages from the compiler
+ and TrAX are handled by the compiler/util/ErrorMsg class, while messages
+ from the DOM and runtime/translet are handled by the Basis Library class.
+ Only the ErrorMsg class has so far been updated to dynamically read its
+ messages from a ResourceBundle. Bundles for British English and Norwegian
+ are implemented.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ BooleanType.java ErrorMessages.java
+ ErrorMessages_no.java ErrorMsg.java IntType.java
+ NodeSetType.java NodeType.java RealType.java
+ ReferenceType.java ResultTreeType.java
+ StringType.java Type.java VoidType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Code cleanup.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java
+ CurrentNodeListIterator.java DOMImpl.java
+ FilterIterator.java FilteredStepIterator.java
+ MatchingIterator.java MultiDOM.java
+ NodeIteratorBase.java StepIterator.java
+ UnionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Final code cleanup after i18n work.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ ErrorMessages.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed a typo in console output.
+ Submitted by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java
+ java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added "Compiler Warning" text to output.
+ Submitted by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Import.java
+ Include.java StepPattern.java
+ java/src/org/apache/xalan/xsltc/compiler/util
+ ErrorMessages_no.java
+ java/src/org/apache/xalan/xsltc/dom LoadDocument.java
+ java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java
+ java/src/org/apache/xalan/xsltc/trax
+ TemplatesHandlerImpl.java
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ ErrorMessages_en.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Localised the runtime/dom packages into Norwegian. This proves that the
+ internationalisation work is completed. I also fixed a regression that
+ was caused by the error handling being changed.
+ PR: n/a (i18n and l10n work)
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Integrated a fix from John Howard for forcing forward slashes in file paths
+ in JAR files and in manifests in JAR files.
+ PR: bugzilla 4464
+ Obtained from: n/a
+ Submitted by: John Howard (johnh@schemasoft.com)
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for simplified stylesheets. A namespace declaration on the root element
+ in the stylesheet (xmlns="http://www.w3.org/TR/xhtml1/strict") caused XSLTC
+ to try to match elements in this namespace instead of elements in the null
+ namespace.
+ PR: bugzilla 3664
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed a regression from yesterday ('version' attribute missing).
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed default behaviour of text() and "*" in &lt;xsl:apply-imports/&gt;.
+ (this element should not invoke built-ins).
+ PR: bugzilla 1397
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ java/src/org/apache/xalan/xsltc/runtime SAXAdapter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated the SAXAdapter used to build result tree fragments to handle comments.
+ PR: bugzilla 4172
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for the XPath substring() function.
+ PR: bugzilla 4201
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Number.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed the last putback - should never have been done. Big mistake!!!
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DTDMonitor.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for generating IDs for implied attributes.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Enabled character escaping by default for HTML output. We are now able to
+ generate the XSLT and XPath specs without any errors at all.
+ PR: bugzilla 3065
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime ErrorMessages.java
+ ErrorMessages_no.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Missing resource bundles for error messages for XSLTC's dom and runtime lib.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>10/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed pattern matching on namespace qualified wildcards, such
+ as match="@blob:*".
+ PR: bugzilla 2582
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Predicate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a fix for predicates that test on node values, where the value to
+ test agains is stored in a variable or predicate.
+ PR: bugzilla 3501
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for re-definitions of variables inside templates (in different scopes).
+ PR: bugzilla 3406
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ DefaultSAXOutputHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Potential fix for bug 3416. Will not integrate for performance reasons.
+ Code change is commented.
+ PR: bugzilla 3416
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed a desperately bad piece of code that caused XSLTC to misinterpret
+ some combinations of parent location paths and predicates.
+ PR: bugzilla 4249
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom NodeCounter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for the formatter used with the xsl:count element.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Sort.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for sort-elements used with apply-templates elements with no select
+ attribute.
+ PR: bugzilla 3519
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler PositionCall.java
+ java/src/org/apache/xalan/xsltc/dom NodeCounter.java
+ SingleNodeCounter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for the &lt;xsl:number&gt; element.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org / todd.miller@sun.com
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Sort.java
+ java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java
+ NodeSortRecordFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed the 'order' and 'data-type' attributes of the &lt;xsl:sort&gt; element
+ from plain attributes to attribute value templates. This required a change
+ not inly in the way we interpret these attributes but also in the time at
+ which these attributes are intrepreted. Since these are not treated as AVTs
+ we need to wait until runtime before reading the values of the attributes.
+ PR: bugzilla 3835
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc DOM.java
+ java/src/org/apache/xalan/xsltc/compiler PositionCall.java
+ StepPattern.java
+ java/src/org/apache/xalan/xsltc/dom DOMAdapter.java
+ DOMImpl.java MultiDOM.java NodeSortRecord.java<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java.old<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for patterns on the format "/foo/*/bar" and "/foo/*[n]/bar".
+ PR: bugzilla 4604
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Step.java
+ java/src/org/apache/xalan/xsltc/dom
+ CurrentNodeListIterator.java DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed the last() function for the typed and untyped ancestor iterators.
+ I also updated our node list iterator (used to implement some predicates)
+ to handle the last() function properly for reverse-order axes.
+ PR: bugzilla 4602
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XslAttribute.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for a regression after a previous fix for bug 3320.
+ PR: bugzilla 4656
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler BinOpExpr.java
+ CastExpr.java EqualityExpr.java Expression.java
+ LastCall.java LogicalExpr.java PositionCall.java
+ Predicate.java RelationalExpr.java Step.java
+ StepPattern.java UnaryOpExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for compound predicates used in patterns.
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ AttributeValueTemplate.java Constants.java
+ FilterParentPath.java LiteralAttribute.java
+ LiteralElement.java LiteralExpr.java Mode.java
+ ParentLocationPath.java Parser.java
+ SimpleAttributeValue.java SyntaxTreeNode.java
+ Text.java UnionPathExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A bit of a code cleanup. I also added a small fix for ensuring document order
+ of node sets returned by union expressions.
+ PR: bugzilla 4677
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Sort.java
+ java/src/org/apache/xalan/xsltc/compiler/util
+ ErrorMessages.java ErrorMessages_no.java
+ ErrorMsg.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a test to verify that &lt;xsl:sort/&gt; elements are only used within
+ &lt;xsl:apply-templates/&gt; or &lt;xsl:for-each/&gt; elements.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom Axis.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added an array to the Axis class to give an easy indication to the direction
+ of an axis.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc DOMCache.java
+ java/src/org/apache/xalan/xsltc/cmdline Transform.java
+ java/src/org/apache/xalan/xsltc/compiler FunctionCall.java
+ java/src/org/apache/xalan/xsltc/dom
+ NodeSortRecordFactory.java
+ java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TransletLoader.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a new TransletLoader class to the runtime package. This class will
+ be used only when the default Class.forName() call fails. The forName()
+ call will fail if XSLTC is packed in a JAR and installed under
+ $JAVA_HOME/jre/lib/ext. This is because the extensions class
+ loader is used instead of the bootstrap class loader, and that the
+ extensions class loader does not load classes for the default class path.
+ But, if the extensions class loader is being used, then we know two things:
+
+ (1) XSLTC is running on Java 1.2 or later (when extensions were introduced)
+ (2) XSLTC has access to the ClassLoader.getSystemClassLoader() method
+
+ This class takes advantage of this and uses a privileged call to this
+ method to get a reference to the bootstrap class loader. It then uses this
+ class loader to load the desired class.
+ PR: none
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a "debug" attribute to the TransformerFactory implementation.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed a debug statement that was left behind after last putback.
+ PR: none
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Step.java
+ StepPattern.java XSLTC.java xpath.cup xpath.lex<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added support for processing-instruction() with a literal parameter for
+ use in node tests in expressions and patterns.
+ PR: bugzilla 2583
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>11/09/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ ProcessingInstructionPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Forgot this in last putback.
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>11/09/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LongExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 3592, new class to handle Long expresssion<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>11/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ xpath.cup xpath.lex Constants.java CastExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 3592, handles long now<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>11/09/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util LongType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 3592, added new class for Long types<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>11/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util Type.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 3592, handles Long types<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Changes for Xalan-Java 2.2.D11</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>09/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix # 3424, memory retension fixed, John Howard contributed fix.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>09/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 2807, seth ford's fix<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>09/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Include.java
+ Import.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 3426, gunnlaugur briem's fix<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>09/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XslAttribute.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 3320, gunnlaugur briem's fix<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>"Gunnlaugur Thor Briem" &lt;gthb@dimon.is&lt;<b>
+<i> on </i>
+</b>09/06/2001<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+&gt; bug fix 3320, gunnlaugur briem's fix
+&gt;
+&gt;<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>"G. Todd Miller - XML Tech Ctr - Development" &lt;Glenn.Miller@Sun.COM&gt;<b>
+<i> on </i>
+</b>09/06/2001<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+ &gt;&gt;&gt; bug fix 3320, gunnlaugur briem's fix
+ &gt;&gt;&gt;
+ &gt;&gt;&gt;<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>09/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>updated comments from bug fix 2553<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>09/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 3360, predicate handling added<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>I have updated out output handler to treat this in the same manner as XT does.
+ We allow AVT's to create namespace mappings between some prefix and the null
+ URI. But, whenever an attribute or element uses a prefix that maps to the null
+ URI we replace the prefix with the default prefix. So insead of outputting an
+ illegal namespace declaration xmlns:ns1="" and ns1:Attr1="Whatsup" we simply
+ output Attr1="Whatsup"
+ PR: bugzilla 1518
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Transform.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Modified some of the error messages that are reported by this command-line
+ tool to include full and correct error messages.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMBuilder.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added support for comment nodes in the DOM. This support disappeared when
+ we upgraded the DOMBuilder's interface from SAX to SAX2. Added a new
+ interface for the DOMBuilder that includes SAX's ContentHandler _and_
+ LexicalHandler.
+ PR: bugzilla namespace30
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated the output handler to URL encode href attributes in HTML output.
+ I used the URLEncoder class in java.net
+ PR: bugzilla 1512
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ DefaultSAXOutputHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed the default output SAX handler so that it does not indent empty HTML
+ tags such as &lt;col&gt; and &lt;br&gt;
+ PR: bugzilla 1525
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ DefaultSAXOutputHandler.java TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to prevent character escaping inside &lt;script&gt; and &lt;style&gt; elements in
+ HTML output.
+ PR: bugzilla 2517
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Transform.java
+ java/src/org/apache/xalan/xsltc/compiler BooleanCall.java
+ StepPattern.java Variable.java
+ java/src/org/apache/xalan/xsltc/compiler/util
+ ResultTreeType.java
+ java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to always return 'true' when result tree fragments are converted to
+ boolean values (because a result tree always has at least one node - root).
+ PR: bugzilla 2595
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added some code to the DOM builder to make sure that text nodes are not
+ broken up into smaller fragments.
+ PR: bugzilla 3506
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom NodeIteratorBase.java
+ UnionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for the count() function and union iterators. Union iterators would not
+ reset all the iterators it contained, and it needed a reset() method.
+ PR: bugzilla 3504
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>09/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 3312, //xx/descendant works now<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom NodeIteratorBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed a debug statement that was left in here by mistake. Bad, bad, bad!
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>09/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ ParentLocationPath.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added test for ParentLocationPath instance<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>09/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 3312 completed<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LiteralElement.java
+ Param.java ParameterRef.java
+ ParentLocationPath.java Variable.java
+ VariableBase.java VariableRef.java
+ java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ MatchingIterator.java ReverseIterator.java
+ StepIterator.java
+ java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java
+ TextOutput.java
+ java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Several bugfixes and fixes for regressions recently introduced by other
+ bugfixes.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Predicate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for parameter references used within predicates.
+ PR: bugzilla 3405
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Compile.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added '-s' option to command-line compilaton tool to precent calls to
+ System.exit(); This is needed when the command-line tool is invoked by
+ our Java-based test harness.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added test in the method that handles stylesheet PIs in embedded stylesheets.
+ This method did not properly test for the existence of stylesheets referenced
+ in these PIs (ref. Sun's test embed09).
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Predicate.java
+ StepPattern.java TestSeq.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for predicates used in complex match patterns. The compiler failed to
+ produce code that would match on patterns like "blob/*[@attr='str']". It
+ would also fail to identify some position predicates such as "blob[$param]".
+ Nested parameters were not handled properly either. A pattern such as
+ "foo[bar[starts-with(@attr, 'baz')]]" would be broken up and actually
+ compiled twice - the outer predicate would be compiled first and the inner
+ one after that. This fix makes sure that the predicates are handled together
+ as one test, and not as two separate tests.
+ PR: bugzilla 1376 (was an id/key problem, now predicates)
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ DefaultSAXOutputHandler.java TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Modified the output handler and SAX handler to produce proper HTML output.
+ Special characters in &lt;script&gt; and &lt;style&gt; elements are no longer escaped,
+ and end-tags are properly produced (sometimes we would forget the last '&gt;').
+ PR: bugzilla 2517
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ MatchingIterator.java StepIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Verious fixes for iterators.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom BitArray.java
+ DupFilterIterator.java KeyIndex.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix in the duplicate filter iterator to ensure that the iterator can be
+ reset properly. The iterator was using its own variable for tracking the
+ current node (not the base class' _position variable) but did not
+ implement the reset() method).
+ PR: bugzilla 1430
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler VariableRef.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Forgot to add this file with my fix for bug 1430.
+ PR: bugzilla 1430
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LastCall.java
+ ParameterRef.java PositionCall.java Predicate.java
+ RoundCall.java VariableRefBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for combination of wildcards and position predicates in match patterns.
+ PR: bugzilla 1532
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>09/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler RelationalExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 2838, (namedtemplate test)<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to prevent escaping of the '"' character. This character should only
+ be escaped inside attribute values, and not in text nodes.
+ PR: bug 2952
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for ChildrenIterator to speed up last() and position() calls.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>This fix may affect a series of bugs. The AbsoluteIterator (/foo/bar/... etc.)
+ did not update its _position variable, causing position() to return wrong
+ values if called 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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ MethodGenerator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added shortcut to call the reset() method on any iterator.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to ensure that node iterators stored inside parameters are clones for
+ each time the parameter is referenced. If this is not done then the node
+ iterator will be in an unstable state after it has been referenced once.
+ PR: bugzilla 3238
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for layers of parent location paths and steps representing an
+ XPath pattern/expression like /foo/*/bar
+ PR: bugzilla 3311
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ParameterRef.java
+ ParentLocationPath.java Predicate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed a change from yesterday that caused a pretty bad regression in
+ the position() and last() functions. Also changed a line un Param.java
+ to add more information in debug outout.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to prevent complaints about illegal namespace declarations in output.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler VariableBase.java
+ WithParam.java
+ java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added escaping of special characters in parameter names when passed to a
+ template using &lt;xsl:with param/&gt;.
+ PR: bugzilla 3324
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Compile.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>minor edit to usuage for -s option<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Transform.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added functionality behind the '-s' flag in the Transform command-line tool.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Compile.java
+ Transform.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed two compile errors (bad, bad, bad).
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc DOM.java
+ java/src/org/apache/xalan/xsltc/compiler LastCall.java
+ PositionCall.java
+ java/src/org/apache/xalan/xsltc/dom DOMAdapter.java
+ DOMImpl.java MultiDOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed the getTypedPosition() and getTypedLast() methods of the DOM. These
+ were used to implement XPath patterns such as /foo/bar[8]/baz.
+ PR: bugzilla 2803
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added a little method to the output post-processor to replace whitespaces
+ in URLs by "%20" sequences. This is all the escaping I think we should
+ bother our heads doing.
+ PR: bugzilla 1512
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc DOM.java
+ java/src/org/apache/xalan/xsltc/compiler Constants.java
+ Step.java
+ java/src/org/apache/xalan/xsltc/dom DOMAdapter.java
+ DOMImpl.java MultiDOM.java NthIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Two fixes in this one. One to make sure that the context-node is set correctly
+ when applying templates using an iterator that has a predicate that tests on
+ '.' (the current node), such as select="foo/bar[. = 'blob']". The other fix
+ is for the nth position iterator, that failed to count to n backwards in
+ cases when the underlying iterator was reverse.
+ PR: bugzilla 2954 (two bugs in one, really)
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for CDATA elements. The tags of CDATA sections were passed through the
+ output post-processor's character escaping function but should be passed
+ directly to the SAX handler.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ NthIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>The fix for 2954 introduced a regression, so I am pulling out the fix.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom NthIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A revised fix for bug 2954, that does not cause the regressions previously
+ sown by some tests.
+ PR: bugzilla 2954 (revised fix)
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for the last() function for children iterators.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fixed the descendant iterator so that it does not return text-nodes
+ for descendant::*
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Import.java
+ Param.java Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for resolving mutiple defined global parameters and variables. The
+ Import class has been fixed to set import precedences properly, and the
+ Param class has been changed to use the import precedence to resolve
+ between multiple definitions of the same variable/parameter.
+ PR: bugzilla 3404
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ ClassGenerator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Forgot this file in my last update.
+ Submitted by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/24/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ NthIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Another fix for the preceding-sibling iterator. It appeared that this
+ iterator returned its nodes in the wrong order, and this was the reason
+ why the position iterator (used to implement preceding-siblling::*[n])
+ did not return the correct node. It is quite amazing that this iterator
+ has been returning nodes in the wrong order for so long without any of
+ us notising, and hopefully this fix will help eliminate a few of our
+ open bugs.
+ PR: bugzilla 2954
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Param.java
+ Stylesheet.java Variable.java VariableBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to resolving multiple defined global variables or parameters.
+ PR: bugzilla 3404
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Optimisation for string-2-int and real-2-int conversions.
+ PR: bugzilla 3448
+ Obtained from: n/a
+ Submitted by: John Howard (johnh@schemasoft.com)
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+  <li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Param.java
+ Step.java Variable.java VariableBase.java xpath.cup
+ java/src/org/apache/xalan/xsltc/dom DOMAdapter.java
+ DOMImpl.java
+ java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for nth-position typed descendant iterators (previously not fully
+ implemented).
+ PR: bugzilla 3468
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for our handling of the &lt;xsl:comment? element.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Param.java
+ Variable.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed previous attempt to fix forward references in globar vars.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix for allowing LRE as top-level elements in the stylesheet (they will be
+ ignored).
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to make sure all num-numeric values are grouped last in numeric sorts.
+ PR: bugzilla 3517
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ NodeIteratorBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix to ensure that the current position of any iterator is always kept
+ updated. The returnNode() method of the NodeIteratorBase base class updates
+ the _position variable for each returned node. This method should be called
+ by the next() method of any iterator, except for next() methods that call
+ super.next() (because this method calls returnNode() and so _position
+ would be incremented twice or more for one returned node).
+ PR: bugzilla 3816
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Updated the information returned by the system-property() function.
+ xsl:verision returns "1.0"
+ xsl:vendor returns "Apache Xalan XSLTC" - must be different from Xalan!!!"
+ xsl:vendor-url returns "http://xml.apache.org/xalan-j"
+ PR: bugzilla 3470
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to allow indentation to be turned off XML/HTML output.
+ PR: bugzilla 3469
+ Obtained from: n/a
+ Submitted by: Douglas J. Sellers (douglasjsellers@hotmail.com)
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Output.java
+ Parser.java Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix to make sure the one, and only one, xsl:output element is compiled
+ per translet (import precedence taken into account).
+ PR: bugzilla 3099
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed BasisLibrary.formatNumer() (this is the implementation of
+ format-number()) so that it correctly formats NaNs into "NaN".
+ PR: bugzilla 2890
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Another little update to format-number() to make sure it returns
+ "Infinity" and "-Infinity" for infinite numbers.
+ PR: bugzilla 2889
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Stylesheet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Changed the order in which a stylesheet parses its top-level elements.
+ PR: bugzilla 3812
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Step.java
+ java/src/org/apache/xalan/xsltc/dom NthIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed a bug in the NthIterator iterator that prevented the iterator from
+ properly being reset. This bug manifested itself if the Nth iterator was
+ wrapped inside a step iterator.
+ PR: bugzilla 3419
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added node-ordering for preceding iterators when used in apply-templates
+ or value-of elements.
+ PR: bugzilla 3463
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Removed debug statement in Step.java
+ Submitted by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Modified the DupFilterIterator so that it also orders nodes.
+ PR: bugzilla 3466
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/26/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Step.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Fix after a regression for preceding-sibling::* iterator.
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+ <li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>09/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc Translet.java
+ java/src/org/apache/xalan/xsltc/cmdline Transform.java
+ java/src/org/apache/xalan/xsltc/dom
+ NodeSortRecordFactory.java
+ java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java
+ java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
+ TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A fix for the problem with loading auxiliary classes for sorting when
+ called from TrAX API.
+ PR: n/a
+ Obtained from: n/a
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+</ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XSLTC source code updates for Xalan-Java 2.2.D10</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler UnionPathExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java DefaultSAXOutputHandler.java
+ TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug 2553, fixes AbbreviatedAbsoluteLocationPath,
+ some relative location paths still give duplicates, will need to filter.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XslElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LiteralElement.java
+ Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom ReverseIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/15/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 2553, new iterator to get rid of dups<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/15/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ FilteredAbsoluteLocationPath.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 2553, new abs location path<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup
+ Constants.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 2553, updated Constants for dup processing
+ and updated CUP rule for AbbreviatedAbsoluteLocationPaths<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java
+ DOMImpl.java DupFilterIterator.java
+ StepIterator.java UnionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler IdKeyPattern.java
+ KeyCall.java Mode.java Output.java Parser.java
+ TestSeq.java xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>missing file<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ DefaultSAXOutputHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom AbsoluteIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>turning on filtering, bug 2553<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DTDMonitor.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/21/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TemplatesHandlerImpl.java TemplatesImpl.java
+ TransformerHandlerImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/22/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XslElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ParameterRef.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>removed typeCheck(), uses the base classes method now<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ VariableRefBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added default typeCheck() to this base class<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler RelationalExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 2838, cast to type real if both operands are
+ ResultTreeType<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+ <li>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>08/30/2001<br />
+<b>
+<i>Modified: 
+ </i>
+</b>java/src/org/apache/xalan/xsltc/runtime SAXAdapter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+ Submitted by: Tom Amiro  
+ I just added an empty close method to resolve the build problem.<br />
+<br />
+</li> 
+ </ul>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XSLTC source code updates for Xalan-Java 2.2.D9</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/30/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/31/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler VariableBase.java
+ VariableRefBase.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Predicate.java
+ Step.java Stylesheet.java XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler VariableBase.java
+ java/src/org/apache/xalan/xsltc/runtime
+ DefaultSAXOutputHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/31/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom NodeCounter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/01/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
+ DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>add support for DOMResult handling<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/01/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax SAX2DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>work in progress, converted needed for DOMResult<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added setting of systemId in DOMSource handling<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax SAX2DOM.java
+ TransformerFactoryImpl.java TransformerImpl.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java
+ TransformerHandlerImpl.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TemplatesHandlerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/02/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ XSLTC.java
+ java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Constants.java
+ DocumentCall.java
+ java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>new recursive parse(InputSource) implemented<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>upated<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>08/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>updated again<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ java/src/org/apache/xalan/xsltc/trax SAX2DOM.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/03/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler CopyOf.java
+ Step.java
+ java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ UnionIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom LoadDocument.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ForEach.java
+ xpath.cup
+ java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ AbsolutePathPattern.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler DocumentCall.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XslElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LiteralElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>08/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Copy.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XSLTC source code updates for Xalan-Java 2.2.D8</h3>
+<p>XSLTC source code updates:</p>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ DefaultSAXOutputHandler.java
+ java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java
+ java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>in progress, adding DOMSource support<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>new class, DOM2SAX, supports DOMSources, in progress<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler SourceLoader.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime Constants.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>minor changes for DOMSource impl support<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added DOMSource support for stylesheet<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>07/20/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax DOM2SAX.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>updated convertor which supports DOMSource impl<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Added support for DOMSource as input to our Transformer implementation<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Import.java
+ Sort.java
+ java/src/org/apache/xalan/xsltc/dom NodeSortRecord.java
+ NodeSortRecordFactory.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Import.java
+ Include.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XSLTC source code updates for Xalan-Java 2.2.D7</h3>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/09/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/10/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ SyntaxTreeNode.java XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime DefaultRun.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Compile.java
+ Transform.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/cmdline Compile.java
+ java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Added: </i>
+</b>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 />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xalan/xsltc/util/getopt GetOpt.java
+ GetOptsException.java IllegalArgumentException.java
+ MissingOptArgException.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransletTemplates.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>minor adjustment
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>removed obselete try/catch<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransletTemplates.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>A first stab at our new TrAX design.`
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java
+ java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
+ TransformerFactoryImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/16/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DocumentCache.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax OutputSettings.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>amiro@apache.org<b>
+<i> on </i>
+</b>07/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DocumentCache.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java
+ java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
+ TransformerFactoryImpl.java TransformerImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>07/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DocumentCache.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XSLTC source code updates for the Xalan-Java 2.2.D releases up to and including 2.2.D6</h3>
+<ul>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>05/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Text.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 1403, output escaping fixed<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>05/23/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>bug fix 1403, output escaping fixed<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>stylesheet compilation error listening added for
+ TrAX support<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>stylesheet compilation error listening added for
+ TrAX support<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>stylesheet compilation error listening added for
+ TrAX support<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Transformer factory's setErrorListener() now throws
+ IllegalArgumentException is listener is null<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>translet transformation errors now forwarded to
+ TrAX error listener when applicable<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/05/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>translet transformation errors now forwarded to
+ TrAX error listener when applicable<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime AttributeList.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/06/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ UnsupportedElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Adding a class for handling unsupported stylesheet elements
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ DefaultSAXOutputHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler
+ LocationPathPattern.java Parser.java Template.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ DefaultSAXOutputHandler.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>Reverted changes to SAX output handler.
+ Submitted by: morten@xml.apache.org
+ Reviewed by: morten@xml.apache.org<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/06/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ Template.java xpath.cup<br />
+<b>
+<i>Committer's log entry: </i>
+</b>unified Parser error reporting to use Mortens
+ reportError routine<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/07/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Parser.java
+ java/src/org/apache/xalan/xsltc/runtime DefaultRun.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Constants.java
+ Parser.java
+ java/src/org/apache/xalan/xsltc/runtime DefaultRun.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/08/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LiteralElement.java
+ SyntaxTreeNode.java XslAttribute.java
+ XslElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java
+ Parser.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>support for java.io.InputStream StreamSources<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/11/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ TransletTemplates.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>support for java.io.InputStream StreamSources<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LogicalExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java
+ TextOutput.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Mode.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XslElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom DOMImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ForEach.java
+ XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler AttributeSet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/12/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added support for java.io.InputStream StreamSources<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LogicalExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/13/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/dom SingletonIterator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/14/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LiteralElement.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/15/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler LogicalExpr.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>curcuru@apache.org<b>
+<i> on </i>
+</b>06/17/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/18/2001<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ NodeSetType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util Type.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ NodeSetDTMType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/18/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util Type.java<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ NodeSetType.java<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler/util
+ NodeSetDTMType.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+
+
+<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/19/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>Tom.Amiro@Sun.COM<b>
+<i> on </i>
+</b>06/19/2001<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+&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>
+<b>
+<i>Committed by </i>
+</b>Morten.Jorgensen@sun.com<b>
+<i> on </i>
+</b>06/19/2001<br />
+<b>
+<i>Committer's log entry: </i>
+</b>
+&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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added check to see if stylesheet is already an URL<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ TransletTemplates.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added check to see if stylesheet is already an URL<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/25/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TrAXFilter.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>proto<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/25/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>removed debug statements<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/26/2001<br />
+<b>
+<i>Removed: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime TrAXFilter.java
+ TransformerFactoryImpl.java TransletTemplates.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>in process of moving these to new subdir<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/26/2001<br />
+<b>
+<i>Added: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TrAXFilter.java
+ TransformerFactoryImpl.java TransletTemplates.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>moved from runtime subdir to its own trax subdir<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>fixed bug with deriving translet name from
+ stylesheet name that included paths, e.g. /tmp/foo.xsl<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Predicate.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/runtime
+ AbstractTranslet.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added url handling in doTransform<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax
+ TransformerFactoryImpl.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added a new sys property called 'transletPool'
+ to allow user to set the destination directory for generated translets<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/trax TransletTemplates.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>added a new sys property called 'transletPool'
+ to allow user to set the destination directory for generated translets<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>tmiller@apache.org<b>
+<i> on </i>
+</b>06/27/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler XSLTC.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>made private method setDestDirectory() public to
+ support the new transletPool system property.<br />
+<br />
+</li>
+<li>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/28/2001<br />
+<b>
+<i>Modified: </i>
+</b>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 />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler Choose.java
+ ElementAvailableCall.java
+ FunctionAvailableCall.java Parser.java When.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+<b>
+<i>Committed by </i>
+</b>morten@apache.org<b>
+<i> on </i>
+</b>06/29/2001<br />
+<b>
+<i>Modified: </i>
+</b>java/src/org/apache/xalan/xsltc/compiler ForEach.java
+ Param.java Variable.java
+ java/src/org/apache/xalan/xsltc/compiler/util
+ MethodGenerator.java<br />
+<b>
+<i>Committer's log entry: </i>
+</b>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>
+ 
+ <p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>XSLTC Changes for Xalan-Java 2.1.0</h3>
+<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 <a href="xsltc_usage.html">XSLTC</a> 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.
+<b>
+<i>See <a href="xsltc/index.html">XSLTC Design Documents</a>.</i>
+</b>
+</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>
+ 
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>
diff --git a/xalan-j/xsltc_usage.html b/xalan-j/xsltc_usage.html
new file mode 100644
index 0000000..9f1d923
--- /dev/null
+++ b/xalan-j/xsltc_usage.html
@@ -0,0 +1,992 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>ASF: Getting Started with XSLTC</title>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
+</head>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<body>
+<div id="title">
+<table class="HdrTitle">
+<tbody>
+<tr>
+<th rowspan="2">
+<a href="../index.html">
+<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
+</a>
+</th>
+<th text-align="center" width="75%">
+<a href="index.html">Xalan XSL Transformer User's Guide</a>
+</th>
+</tr>
+<tr>
+<td valign="middle">Getting Started with XSLTC</td>
+</tr>
+</tbody>
+</table>
+<table class="HdrButtons" align="center" border="1">
+<tbody>
+<tr>
+<td>
+<a href="http://www.apache.org">Apache Foundation</a>
+</td>
+<td>
+<a href="http://xalan.apache.org">Xalan Project</a>
+</td>
+<td>
+<a href="http://xerces.apache.org">Xerces Project</a>
+</td>
+<td>
+<a href="http://www.w3.org/TR">Web Consortium</a>
+</td>
+<td>
+<a href="http://www.oasis-open.org/standards">Oasis Open</a>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="navLeft">
+<ul>
+<li>
+<a href="resources.html">Resources</a>
+<br />
+</li>
+<li>
+<a href="http://xalan.apache.org/index.html">Home</a>
+</li></ul><hr /><ul>
+<li>
+<a href="index.html">Xalan-J 2.7.2</a>
+</li>
+<li>
+<a href="charter.html">Charter</a>
+</li></ul><hr /><ul>
+<li>
+<a href="whatsnew.html">What's New</a>
+</li>
+<li>
+<a href="readme.html">Release Notes</a>
+</li></ul><hr /><ul>
+<li>
+<a href="overview.html">Overview</a>
+</li>
+<li>
+<a href="downloads.html">Download/Build</a>
+</li>
+<li>
+<a href="getstarted.html">Getting Started</a>
+</li>
+<li>Using XSLTC<br />
+</li></ul><hr /><ul>
+<li>
+<a href="faq.html">FAQs</a>
+</li></ul><hr /><ul>
+<li>
+<a href="samples.html">Sample Apps</a>
+</li>
+<li>
+<a href="commandline.html">Command Line</a>
+</li></ul><hr /><ul>
+<li>
+<a href="features.html">Features</a>
+</li>
+<li>
+<a href="trax.html">Transform API</a>
+</li>
+<li>
+<a href="xpath_apis.html">XPath API</a>
+</li>
+<li>
+<a href="usagepatterns.html">Usage Patterns</a>
+</li></ul><hr /><ul>
+<li>
+<a href="apidocs/index.html">Xalan-J API</a>
+</li>
+<li>
+<a href="public_apis.html">Public APIs</a>
+</li>
+<li>
+<a href="dtm.html">DTM</a>
+</li></ul><hr /><ul>
+<li>
+<a href="extensions.html">Extensions</a>
+</li>
+<li>
+<a href="extensionslib.html">Extensions Library</a>
+</li>
+<li>
+<a href="extensions_xsltc.html">XSLTC Exts</a>
+</li></ul><hr /><ul>
+<li>
+<a href="design/design2_0_0.html">Xalan 2 Design</a>
+</li>
+<li>
+<a href="xsltc/index.html">XSLTC Design</a>
+</li></ul><hr /><ul>
+<li>
+<a href="builds.html">Building a release</a>
+</li>
+<li>
+<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
+</li>
+<li>
+<a href="bugreporting.html">Bug Reporting</a>
+</li></ul><hr /><ul>
+<li>
+<a href="contact_us.html">Contact us</a>
+</li>
+</ul>
+</div>
+<div id="content">
+<h2>Getting Started with XSLTC</h2>
+
+<ul>
+  <li>
+<a href="#intro">Introduction</a>
+</li>
+  <li>
+<a href="#classpath">Setting the system classpath for XSLTC</a>
+</li>
+  <li>
+<a href="#compile">Compiling translets from the command line</a>
+</li>
+  <li>
+<a href="#run">Running translets from the command line</a>
+</li>
+  <li>
+<a href="#api">Calling XSLTC with the JAXP API</a>
+</li>
+  <li>
+<a href="#xsltcsmart">Smart Transformer Switch</a>
+</li>
+  <li>
+<a href="#native_api">Calling XSLTC with the native API</a>
+</li>
+  <li>
+<a href="#constraints">Usage constraints</a>
+</li>
+  <li>
+<a href="samples.html#translets">Sample translets</a>
+</li>
+  <li>
+<a href="extensions_xsltc.html">Extensions for XSLTC</a>
+</li>  
+</ul>
+<p>See also: <a href="xsltc/index.html">XSLTC Design</a>
+</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Unless otherwise specified, the usage discussed in this section refers to 
+the Xalan-Java Compiling processor, XSLTC. See <a href="usagepatterns.html">Basic Usage 
+Patterns</a> for information on using the Xalan-Java Interpretive processor.</td>
+</tr>
+</table>
+<br />
+
+<a name="intro">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Introduction</h3>
+<p>XSLTC provides a compiler and a runtime processor. 
+Use the compiler to compile an XSL stylesheet into a translet (i.e., a set of
+Java classes). Use the runtime processor to apply the translet to an XML
+document and perform a transformation.</p>
+
+
+<a name="classpath">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Setting the system classpath for XSLTC</h3>
+<p>The xalan.jar contains support for both Xalan-Java processors.  You
+can use the JAXP <code>javax.xml.transform.TransformerFactory</code> property
+(see <a href="#api">"Calling XSLTC with the JAXP API"</a> below) to
+select which processor to use:  the Interpretive or the Compiling processor.</p>
+<p>To use XSLTC, simply put xalan.jar, serializer.jar, xml-apis.jar, and xercesImpl.jar on
+your classpath.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">To compile and run translets, you must use JDK (or JRE) 1.3.1 or higher.</td>
+</tr>
+</table>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">Although the XSLTC developers make every effort to avoid changes that
+affect binary compatibility, we cannot guarantee that a translet will work with
+any version of the run-time processor other than the one that corresponds to
+the version of the XSLTC compiler that was used to create the translet.</td>
+</tr>
+</table>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Bundled System Classpath</h4>
+<p>
+To use this newer approach, simply put xalan.jar, serializer.jar, xml-apis.jar and 
+xercesImpl.jar in your classpath.  There is no need to include xsltc.jar, BCEL.jar, JLex.jar,
+regexp.jar, java_cup.jar or runtime.jar as required in previous releases.
+</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">In order to compile and run translets you must have a JAXP 1.3 compliant XML
+parser installed. Our distribution includes <a href="http://xerces.apache.org/xerces2-j/index.html">Xerces-Java 2.11.0</a>.
+Include xercesImpl.jar and xml-apis.jar in your class path.</td>
+</tr>
+</table>
+
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Unbundled System Classpath</h4>
+<p>The binary distribution contains XSLTC and all its support classes bundled 
+into xalan.jar. To use the unbundled approach, rebuild 
+the xsltc.jar file using the xsltc.unbundledjar target. The support jars that 
+you'll need to add to your classpath are available in the Xalan Java lib 
+directory.</p>
+<p>To compile translets, run translets, and use the XSLTC API, using
+the unbundled jar approach, put the following on the system classpath:</p>
+<table border="1">
+<tr>
+  <th class="content" rowspan="1" colspan="1">Classes or JAR</th>
+  <th class="content" rowspan="1" colspan="1">To compile a translet</th>
+  <th class="content" rowspan="1" colspan="1">To run a translet</th>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">the translet</td>
+  <td class="content" rowspan="1" colspan="1" />
+  <td class="content" rowspan="1" colspan="1">required</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">xsltc.jar</td>
+  <td class="content" rowspan="1" colspan="1">required</td>
+  <td class="content" rowspan="1" colspan="1">required</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">runtime.jar</td>
+  <td class="content" rowspan="1" colspan="1">required</td>
+  <td class="content" rowspan="1" colspan="1">required</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">BCEL.jar</td>
+  <td class="content" rowspan="1" colspan="1">required</td>
+  <td class="content" rowspan="1" colspan="1" />
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">JLex.jar</td>
+  <td class="content" rowspan="1" colspan="1">required</td>
+  <td class="content" rowspan="1" colspan="1" />
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">java_cup.jar</td>
+  <td class="content" rowspan="1" colspan="1">required</td>
+  <td class="content" rowspan="1" colspan="1" />
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">regexp.jar</td>
+  <td class="content" rowspan="1" colspan="1">required</td>
+  <td class="content" rowspan="1" colspan="1" />
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">xml-dtm.jar</td>
+  <td class="content" rowspan="1" colspan="1" />
+  <td class="content" rowspan="1" colspan="1">required</td>
+</tr>
+</table>
+<p>The translet is the set of class files or the JAR file that you generate with
+the compiler; see <a href="#compile">Compiling translets</a>.</p>
+
+
+<a name="compile">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Compiling translets from the command line</h3>
+    <ul>
+      <li>
+<a href="#comp-synopsis">Synopsis</a>
+</li>
+      <li>
+<a href="#comp-args">Flags and arguments</a>
+</li>
+      <li>
+<a href="#comp-examples">Examples</a>
+</li>
+    </ul>
+    <p>The XSLT Compiler is a Java-based tool for compiling XSLT
+    stylesheets into lightweight and portable Java byte codes 
+    called translets.</p>  
+
+    <p>To run the compiler from the command line or from a script, 
+    <a href="#classpath">set the classpath</a> and 
+    run the class <code>org.apache.xalan.xsltc.cmdline.Compile</code>. The
+    synopsis of the options and arguments accepted by this class is shown below.
+    </p>
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">You can also use the
+    <a href="commandline.html">Xalan-Java command-line utility</a>, to
+          compile or run XSLTC translets.</td>
+</tr>
+</table>
+
+<a name="comp-synopsis">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Synopsis</h4>
+<p>
+<code>java org.apache.xalan.xsltc.cmdline.Compile</code>
+<br />
+<code>    [-o &lt;output&gt;] [-d &lt;directory&gt;] [-j &lt;jarfile&gt;]</code>
+<br />
+<code>    [-p &lt;package name&gt;] [-n] [-x] [-v] [-u] [-h]<br />
+    {&lt;stylesheet&gt; | -i }</code>
+</p> 
+
+
+<a name="comp-args">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Flags and arguments</h4>
+    <p>The following flags and arguments are supported:</p>
+
+<blockquote class="source">
+<pre>-o &lt;output&gt;
+   Specifies the name of the generated translet class.
+   If you omit this argument, the translet class is
+   named &lt;stylesheet&gt;.  Translets are written as 
+   .class files.
+
+-d &lt;directory&gt;
+   Specifies the destination directory.  If you omit
+   this argument, the translet class files are placed
+   in the current working directory.
+
+-j &lt;jarfile&gt;
+   Outputs the generated translet class files into a 
+   jar file named &lt;jarfile&gt;.jar. When this option is 
+   used, only the jar file is output.
+
+-p &lt;package name&gt;
+   Specifies a package name for the generated translet
+   classes.
+
+-n Enables template inlining (default behavior better on average).
+
+-x Turns on additional debugging messages.
+
+-s Disables calling System.exit
+
+-u  &lt;stylesheet&gt;
+  Specifies the stylesheet with a URI such as 
+  'http://myserver/stylesheet1.xsl'.
+
+   &lt;stylesheet&gt;
+   (No flag) The pathname of the stylesheet file.
+
+-i Force stylesheet to be read from stdin
+
+-v Prints version of compiler
+
+-h Prints usage statement</pre>
+</blockquote>
+
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The translet name is the same as the name of the Java class that
+implements the translet.  If the name specified by the <code>-o</code> option
+or derived from the URL for the stylesheet contains characters that are not
+permitted in a Java class name, any such character will be replaced with an
+underscore.  For example, if the translet name specified by the <code>-o</code>
+option is <code>my-stylesheet</code>, or if the URL of the stylesheet is
+<code>http://example.org/my-stylesheet.xsl</code>, the translet will actually
+be named <code>my_stylesheet</code>.
+</td>
+</tr>
+</table>
+
+
+<a name="comp-examples">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Examples</h4>
+    <p>The following examples assume that you have already set the
+           classpath to include the translet and the required JAR
+    files (see <a href="#classpath">setting the system classpath</a>).</p>
+
+    <p>
+<b>Example 1:</b>  Creating a translet from the hamlet.xsl
+       stylesheet.</p>
+    <p>
+<code>java org.apache.xalan.xsltc.cmdline.Compile</code>
+<br />
+    <code>     hamlet.xsl</code>
+</p>    
+    <p>Example 1 produces a set of class files such as hamlet.class, hamlet$0.class, hamlet$1.class.</p>
+
+    <p>
+<b>Example 2:</b>  Outputting to a JAR file.</p>
+    <p>
+<code>java org.apache.xalan.xsltc.cmdline.Compile</code>
+<br />
+    <code>     -j hamlet.jar hamlet.xsl</code>
+</p>
+    <p>Example 2 produces hamlet.jar, which contains the translet class
+       files.</p>
+
+    <p>
+<b>Example 3:</b> Specifying the translet class name. </p> 
+    <p>
+<code>java org.apache.xalan.xsltc.cmdline.Compile</code>
+<br />
+    <code>     -o newhamlet hamlet.xsl</code>
+</p>
+    <p>Example 3 produces a set of class files such as newhamlet.class,
+       newhamlet$0.class, etc., rather than hamlet.class, hamlet$0.class,
+       etc.</p>
+
+
+    <p>
+<b>Example 4:</b> Compiling multiple stylesheets.</p>
+    <p>
+<code>java org.apache.xalan.xsltc.cmdline.Compile</code>
+<br />
+    <code>     hamlet1.xsl hamlet2.xsl hamlet3.xsl</code>
+</p>
+    <p>Example 4 produces three translets and set of class files derived from the three stylesheets.</p>
+
+    <p>
+<b>Example 5:</b> Package Specification.</p>
+    <p>
+<code>java org.apache.xalan.xsltc.cmdline.Compile</code>
+<br />
+    <code>     -p com.mycompany.translets hamlet.xsl</code>
+</p>
+    <p>Example 5 produces a set of class files such as com/mycompany/translets/hamlet.class,
+    com/mycompany/translets/hamlet$0.class', etc.</p>
+
+
+
+<a name="run">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Running translets from the command line</h3>
+    <ul>
+      <li>
+<a href="#run-synopsis">Synopsis</a>
+</li>
+      <li>
+<a href="#run-args">Flags and arguments</a>
+</li>
+      <li>
+<a href="#run-examples">Examples</a>
+</li>
+    </ul>
+
+    <p>The XSLTC runtime processor is a Java-based tool for 
+    transforming XML document files using a translet (compiled 
+    stylesheet). </p>
+
+    <p>The XSLTC processor can be run on any platform including UNIX,
+    Windows, NT, Mac that supports Java, including a Palm Pilot
+    with J2ME CLDC (Java 2 Micro Edition, Connected Limited Device
+    Configuration).</p>
+
+    <p>To run a translet from the command line or a script,
+     <a href="#classpath">set the classpath</a> (be sure to include
+     the translet) and run the translet with the appropriate flags and arguments
+     (described below).</p>
+
+    <table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">You can also use the
+    <a href="commandline.html">Xalan-Java Command-line Utility</a>, to
+          compile or run XSLTC translets.</td>
+</tr>
+</table>
+
+<a name="run-synopsis">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Synopsis</h4>
+<p>
+<code>java org.apache.xalan.xsltc.cmdline.Transform</code>
+<br />
+<code>     [-j &lt;jarfile&gt;] [-x] {-u &lt;document_url&gt; | &lt;document&gt;} &lt;class&gt;</code>
+<br />
+<code>     [&lt;name1&gt;=&lt;value1&gt; ...]</code>
+</p>
+
+
+<a name="run-args">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Flags and arguments</h4>
+
+    <p>The following flags and arguments are supported:</p>
+
+<blockquote class="source">
+<pre>
+
+-j Specifies &lt;jarfile&gt; from which to load translet.
+
+-x Turns on debugging messages.
+
+-s Disables calling System.exit
+
+-u Specifies the XML input &lt;document&gt; with a URI,
+   such as 'http://myserver/hamlet.xml'.
+
+Arguments without flags:
+
+   &lt;document&gt;
+   Filename of the XML input document. 
+   
+   &lt;document_url&gt;
+   URI of the XML input document (see the -u flag above). 
+
+   &lt;class&gt;
+   The translet that performs the transformation. The translet
+   may take a set of stylesheet parameters specified as
+   name-value pairs. The format for a name-value pair is
+   &lt;name&gt;=&lt;value&gt;.</pre>
+</blockquote>
+
+
+<a name="run-examples">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Examples</h4>
+
+    <p>The following examples assume that you have already set the classpath to include the translet and the required JAR
+    files (see <a href="#classpath">setting the system classpath</a>).</p>
+    <p>A possible variation: You have set the classpath to include the required JAR files, but when you run the translet,
+    you use the java -cp flag to add the current working directory (containing the translet class files you have just generated)
+    to the classpath.</p>
+    <p>
+<b>
+<i>Windows:</i>
+</b>
+<code> java -cp .;%CLASSPATH% ...</code>
+<br />
+       <b>
+<i>UNIX:     </i>
+</b>
+<code> java -cp .:$CLASSPATH ...</code>
+</p>
+    
+    <p>
+<b>Example 1:</b> Processing an XML document.</p>
+
+    <p>
+<code>java org.apache.xalan.xsltc.cmdline.Transform</code>
+<br />
+       <code>      hamlet.xml hamlet</code>
+</p> 
+
+    <p>Example 1 uses the specified translet (hamlet) to transform the specified XML input document (hamlet.xml). 
+    The XML input document is in the current working directory. The translet was created by using
+    org.apache.xalan.xslt.cmdline.Compile to compile an XSL stylesheet (hamlet.xsl). </p>
+
+    <p>
+<b>Example 2:</b> Passing stylesheet parameters to the translet.</p>
+
+    <p>
+<code>java org.apache.xalan.xsltc.cmdline.Transform</code>
+<br />
+       <code>     hamlet.xml hamlet</code>
+<br />
+       <code>     speaker=HAMLET 'scene=SCENE IV'</code>
+</p>
+
+    <p>Example 2 passes "HAMLET" to the stylesheet for the stylesheet parameter named speaker, and "SCENE IV" for the
+    stylesheet parameter named scene. The second name-value pair was placed in single quotes to 
+    specify a value containing a space.</p>
+    
+    <p>
+<b>Example 3:</b> Processing an XML input document specified with a URI.</p>
+
+    <p>
+<code>java org.apache.xalan.xsltc.cmdline.Transform</code>
+<br />
+       <code>      -u http://zarya.east/test.xml hamlet</code>
+</p>
+
+    <p>Example 3 applies the translet (hamlet) to the XML input document (http://zarya.east/test.xml hamlet). Inclusion of
+    the flag (-u) is optional.</p>
+
+
+
+<a name="api">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Calling XSLTC with the JAXP API</h3>
+<ul>
+<li>
+<a href="#api-attributes">XSLTC TransformerFactory attributes</a>
+</li>
+<li>
+<a href="#api-examples">Examples</a>
+</li>
+</ul>
+<p>XSLTC translets are integrated with the JAXP 1.3 API. Accordingly, it is now possible to set a 
+system property and use a TransformerFactory to generate a Transformer that performs a transformation by compiling 
+and running a translet.</p>
+
+<p>When you use the JAXP 1.3 API to run Xalan-Java, the
+<code>javax.xml.transform.TransformerFactory</code> system property is set to
+<code>org.apache.xalan.processor.TransformerFactoryImpl</code>. As it currently
+stands, this Xalan-Java implementation of TransformerFactory always uses the Xalan-Java
+Interpretive processor to perform transformations.  To use translets to perform
+transformations, set this system property to
+<code>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</code>. For
+information on setting this and related system properties designating XML
+parsers and XSL transformers, see
+<a href="usagepatterns.html#plug">Plugging in a Transformer and XML
+parser</a>.</p>
+
+<p>To use the JAXP 1.3 API to perform transformations with translets do the
+   following:</p>
+<ol>
+  <li>Set the <code>javax.xml.transform.TransformerFactory</code> system
+      property as indicated above.<br />
+<br />
+</li>
+  <li>Instantiate a <code>TransformerFactory</code>.<br />
+<br />
+</li>
+  <li>Instantiate a <code>Transformer</code> object either directly from
+      the <code>TransformerFactory</code> or through a <code>Templates</code>
+      object.  A <code>Transformer</code> is a processed instance of a
+      stylesheet (a translet) that can be used to perform a
+      transformation.  See below for more information on when you should use
+      a <code>Templates</code> object.<br />
+<br />
+</li>
+  <li>Perform the transformation, using a StreamSource object for the XML
+      input and a StreamResult object to hold the transformation output.</li>
+</ol>
+<p>Both a <code>Templates</code> object and a <code>Tranformer</code> object are
+   processed representations of a stylesheet, but you cannot use a
+   <code>Templates</code> object to perform transformations.  Instead,
+   you can use a <code>Templates</code> object to create new
+   <code>Transformer</code> instances, without having to reprocess the
+   stylesheet each time.  You can use a <code>TransformerFactory</code> to
+   generate a <code>Templates</code> object or a <code>Transformer</code>
+   object directly.  You can use a <code>Transformer</code> more than once,
+   but you cannot use it concurrently on more than one thread.  If you need
+   to use the same stylesheet to perform transformations on more than one
+   thread at the same time, use a <code>Templates</code> object and create
+   as many <code>Transformer</code> objects as you require.</p>
+
+<p>XSLTC also defines a set of attributes that you can set on the
+<code>TransformerFactory</code> in order to save and subsequently use those
+translets by way of the JAXP Transform API - without having to recompile the
+stylesheet each time.</p>
+
+<a name="api-attributes">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>XSLTC TransformerFactory attributes</h4>
+The JAXP Transform API defines a <code>
+<a href="apidocs/javax/xml/transform/TransformerFactory.html#setAttribute(java.lang.String, java.lang.Object)">TransformerFactory.setAttribute</a>
+</code> method that you can use to set implementation-defined attributes.
+<table border="1">
+<tr>
+  <th class="content" rowspan="1" colspan="1">Attribute</th>
+<th class="content" rowspan="1" colspan="1">Purpose</th>
+  <th class="content" rowspan="1" colspan="1">Type of value</th>
+<th class="content" rowspan="1" colspan="1">Default value</th>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">translet-name</td>
+  <td class="content" rowspan="1" colspan="1">Specifies the name of the translet</td>
+  <td class="content" rowspan="1" colspan="1">String</td>
+  <td class="content" rowspan="1" colspan="1">"GregorSamsa"</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">destination-directory</td>
+  <td class="content" rowspan="1" colspan="1">Specifies where to save translet class files</td>
+  <td class="content" rowspan="1" colspan="1">String</td>
+  <td class="content" rowspan="1" colspan="1">null</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">package-name</td>
+  <td class="content" rowspan="1" colspan="1">Specifies which package translet class files will be in</td>
+  <td class="content" rowspan="1" colspan="1">String</td>
+  <td class="content" rowspan="1" colspan="1">null</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">jar-name</td>
+  <td class="content" rowspan="1" colspan="1">Specifies the name of a jar file in which translets should be saved</td>
+  <td class="content" rowspan="1" colspan="1">String</td>
+  <td class="content" rowspan="1" colspan="1">null</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">generate-translet</td>
+  <td class="content" rowspan="1" colspan="1">Specifies whether translet class files should be generated</td>
+  <td class="content" rowspan="1" colspan="1">Boolean</td>
+  <td class="content" rowspan="1" colspan="1">Boolean.FALSE</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">auto-translet</td>
+  <td class="content" rowspan="1" colspan="1">Specifies that time-stamp of translet file, if any, should be compared with that of stylesheet to decide whether to recompile the stylesheet</td>
+  <td class="content" rowspan="1" colspan="1">Boolean</td>
+  <td class="content" rowspan="1" colspan="1">Boolean.FALSE</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">use-classpath</td>
+  <td class="content" rowspan="1" colspan="1">Specifies that precompiled translet classes should be looked up from the classpath when a new transformer or templates is created</td>
+  <td class="content" rowspan="1" colspan="1">Boolean</td>
+  <td class="content" rowspan="1" colspan="1">Boolean.FALSE</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">enable-inlining</td>
+  <td class="content" rowspan="1" colspan="1">Specifies whether methods that represent templates should be inlined.  See <a href="#constraints">Usage constraints</a>
+</td>
+  <td class="content" rowspan="1" colspan="1">Boolean</td>
+  <td class="content" rowspan="1" colspan="1">Boolean.FALSE</td>
+</tr>
+<tr>
+  <td class="content" rowspan="1" colspan="1">debug</td>
+  <td class="content" rowspan="1" colspan="1">Enables debugging messages</td>
+  <td class="content" rowspan="1" colspan="1">Boolean</td>
+  <td class="content" rowspan="1" colspan="1">Boolean.FALSE</td>
+</tr>
+</table>
+<p>The <code>translet-name</code>, <code>destination-directory</code>,
+<code>package-name</code> and <code>jar-name</code> attributes are transient.
+They only apply to the next invocation of either the <code>newTemplates</code>
+or the <code>newTransformer</code> method on that
+<code>TransformerFactory</code>.</p>
+<table class="note">
+<tr>
+<td class="noteImg">
+<img src="resources/note.gif" alt="note" />
+</td>
+<td class="noteTxt">The translet name is the same as the name of the Java class that
+implements the translet.  If the value specified for the
+<code>translet-name</code> attribute contains characters that are not
+permitted in a Java class name, any such character will be replaced with an
+underscore.  For example, if the translet name specified was
+<code>my-stylesheet</code>, the translet will actually be named
+<code>my_stylesheet</code>.</td>
+</tr>
+</table>
+
+
+<a name="api-examples">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h4>Examples</h4>
+<p>
+<b>Example 1:</b> Using a translet/Templates object for multiple
+concurrent transformations</p>
+<blockquote class="source">
+<pre>import java.util.Properties;
+import javax.xml.transform.Transformer;
+import java.io.FileOutputStream;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.Templates;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.stream.StreamResult;
+...
+// Set the TransformerFactory system property.
+// Note: For more flexibility, load properties from a properties file.
+String key = "javax.xml.transform.TransformerFactory";
+String value = "org.apache.xalan.xsltc.trax.TransformerFactoryImpl";
+Properties props = System.getProperties();
+props.put(key, value);
+System.setProperties(props);
+...
+String xslInURI;
+// Instantiate the TransformerFactory, and use it with a StreamSource
+// XSL stylesheet to create a translet as a Templates object.
+TransformerFactory tFactory = TransformerFactory.newInstance();
+Templates translet = tFactory.newTemplates(new StreamSource(xslInURI));
+...
+String xmlInURI;
+String htmlOutURI;
+String xmlInURI2;
+String htmlOutURI2;
+...
+// For each thread, instantiate a new Transformer, and perform the
+// transformations on that thread from a StreamSource to a StreamResult;
+Transformer transformer = translet.newTransformer();
+transformer.transform(new StreamSource(xmlInURI),
+                  new StreamResult(new FileOutputStream(htmlOutURI)));
+transformer.transform(new StreamSource(xmlInURI2),
+                  new StreamResult(new FileOutputStream(htmlOutURI2)));
+...</pre>
+</blockquote>
+<p>For a working sample that illustrates this usage pattern, see <a href="samples.html#xsltc1">JAXPTransletOneTransformation</a>.</p>
+<p>
+<b>Example 2:</b> Compiling a translet/Templates object for a single transformation</p>
+<blockquote class="source">
+<pre>import java.util.Properties;
+import javax.xml.transform.TransformerFactory;
+import java.io.FileOutputStream;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.stream.StreamResult;
+...
+// Set the TransformerFactory system property.
+// Note: For more flexibility, load properties from a properties file.
+String key = "javax.xml.transform.TransformerFactory";
+String value = "org.apache.xalan.xsltc.trax.TransformerFactoryImpl";
+Properties props = System.getProperties();
+props.put(key, value);
+System.setProperties(props);
+...
+String xslInURI;
+String xmlInURI;
+String xmlInURI2;
+String htmlOutURI;
+String htmlOutURI2;
+// Instantiate the TransformerFactory, and use it along with a StreamSource
+// XSL stylesheet to create a Transformer.
+TransformerFactory tFactory = TransformerFactory.newInstance();
+Transformer transformer =
+                 tFactory.newTransformer(new StreamSource(xslInURI));
+// Perform the transformation from a StreamSource to a StreamResult;
+transformer.transform(new StreamSource(xmlInURI),
+                  new StreamResult(new FileOutputStream(htmlOutURI)));
+// Re-use the same transformer for a second transformation
+transformer.transform(new StreamSource(xmlInURI2),
+                  new StreamResult(new FileOutputStream(htmlOutURI2)));</pre>
+</blockquote>
+<p>For a working sample that illustrates this usage pattern, see <a href="samples.html#xsltc2">JAXPTransletMultipleTransformations</a>.</p>
+
+
+
+<a name="xsltcsmart">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Smart Transformer Switch</h3>
+<p>As part of the JAXP API, a "Smart Transformer Switch" enables automatic switching 
+between Xalan-Java Interpretive and XSLTC processors within your application. It uses Xalan-Java Interpretive 
+processor to create your <code>Transformer</code> objects, and uses XSLTC to create your 
+<code>Templates</code> objects.</p>
+<p>To use the switch, you set the JAXP system property,
+<code>javax.xml.transform.TransformerFactory</code>, to
+<code>org.apache.xalan.xsltc.trax.SmartTransformerFactoryImpl</code>. 
+For one-time transformations or transformations that require extensions
+supported by Xalan-Java Interpretive, and not XSLTC, you would use the
+<code>SmartTransformerFactoryImpl</code> to create <code>Transformer</code>
+objects. For a repeated transformation where performance is critical, you would
+create a <code>Templates</code> object from which you would create your
+<code>Transformer</code> objects.</p> 
+
+
+<a name="native_api">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Calling XSLTC with the native API</h3>
+<p>The XSLTC Native API is no longer supported.  Instead, you should always
+use XSLTC with the JAXP Transform API.</p>
+
+
+<a name="constraints">‌</a>
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+<h3>Usage constraints</h3>
+<ul>
+  <li>The default for template inlining has been changed. Previously,
+    by default, inlining (putting all the templates into one big method) was on and 
+    the <code>"-n"</code> option to the compile command line disabled inlining. 
+    With inlining on, XSLTC can generate methods that are too long (<b>&gt; 64K length</b>) 
+    to run, or contain jump offsets that are too large for the JVM to handle. 
+    Now the default is not to inline templates. Instead, compilation creates separate 
+    methods for each template. Inlining was thought to improve performance, 
+    but with recent hotspot technology in the Java 1.4.x JVM, performance is better with 
+    inlining off. From the command line, you would use <code>"-n"</code> 
+    to turn on inlining, or with JAXP set the "enable-inlining" attribute to the TransformerFactory. 
+    For example, 
+      <blockquote class="source">
+<pre>TransformerFactory tfac = new TransformerFactory(); 
+tfac.setAttribute("enable-inlining", Boolean.TRUE);</pre>
+</blockquote>
+<br />
+</li>
+  <li>XSLTC tries to determine the order in which global variables are initialized 
+    by tracking the dependencies between them. In some cases, the value of a variable 
+    may depend on a template, e.g., if <code>xsl:call-template</code> is used to initialized
+    a variable whose type is RTF. If this happens, a
+    <code>NullPointerException</code> may be thrown at run-time 
+    when the translet attempts to access a variable that has not been properly 
+    initialized. In most cases, this problem can be avoided by reordering the 
+    variable declarations.<br />
+</li>
+</ul>
+<p>To check on the open bugs in the current Apache xml-xalan/java repository, 
+  follow the instructions below:</p>
+<ol>
+  <li>Go to <a href="http://issues.apache.org/jira">http://issues.apache.org/jira</a>.</li>
+  <li>Select project <b>XalanJ2</b>.</li>
+  <li>Select <b>XSLTC</b> from the Components list.</li> 
+</ol>
+
+<p align="right" size="2">
+<a href="#content">(top)</a>
+</p>
+</div>
+<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
+</div>
+</body>
+</html>