New Branch - WebSite - for prototypes
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 (p