You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by gg...@apache.org on 2019/04/20 23:32:50 UTC

[xalan-java] annotated tag xalan-j_2_2_D05 created (now c1789aa)

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a change to annotated tag xalan-j_2_2_D05
in repository https://gitbox.apache.org/repos/asf/xalan-java.git.


      at c1789aa  (tag)
 tagging 7a079a0c5f400c92a369c2acde0c4b90119da9fa (commit)
      by No Author
      on Fri Jun 29 18:04:28 2001 +0000

- Log -----------------------------------------------------------------
This commit was manufactured by cvs2svn to create tag \'xalan-j_2_2_D05\'.
-----------------------------------------------------------------------

This annotated tag includes the following new commits:

     new 7a079a0  This commit was manufactured by cvs2svn to create tag 'xalan-j_2_2_D05'.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xalan.apache.org
For additional commands, e-mail: dev-help@xalan.apache.org


[xalan-java] 01/01: This commit was manufactured by cvs2svn to create tag 'xalan-j_2_2_D05'.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag xalan-j_2_2_D05
in repository https://gitbox.apache.org/repos/asf/xalan-java.git

commit 7a079a0c5f400c92a369c2acde0c4b90119da9fa
Author: No Author <de...@apache.org>
AuthorDate: Fri Jun 29 18:04:28 2001 +0000

    This commit was manufactured by cvs2svn to create tag
    'xalan-j_2_2_D05'.
---
 src/org/apache/xalan/xsltc/trax/TrAXFilter.java    |  81 ---
 .../xalan/xsltc/trax/TransformerFactoryImpl.java   | 335 ----------
 .../apache/xalan/xsltc/trax/TransletTemplates.java | 180 ------
 src/org/w3c/dom/ranges/DocumentRange.java          |  33 -
 src/org/w3c/dom/ranges/Range.java                  | 399 ------------
 src/org/w3c/dom/ranges/RangeException.java         |  39 --
 src/org/w3c/dom/ranges/package.html                |   8 -
 src/trax/trax.properties                           |  11 -
 xdocs/sources/xsltc/DOMInterface.gif               | Bin 10110 -> 0 bytes
 xdocs/sources/xsltc/DOMLocking.gif                 | Bin 3530 -> 0 bytes
 xdocs/sources/xsltc/README                         | 246 --------
 xdocs/sources/xsltc/README.APACHE                  |  86 ---
 xdocs/sources/xsltc/README.api                     | 422 -------------
 xdocs/sources/xsltc/README.xslt                    |  97 ---
 xdocs/sources/xsltc/README.xsltc                   | 116 ----
 xdocs/sources/xsltc/README2                        |  86 ---
 xdocs/sources/xsltc/all_namespaces.gif             | Bin 3853 -> 0 bytes
 xdocs/sources/xsltc/cast_expression.gif            | Bin 2263 -> 0 bytes
 xdocs/sources/xsltc/compiler_AST.gif               | Bin 2969 -> 0 bytes
 xdocs/sources/xsltc/compiler_DOM.gif               | Bin 2413 -> 0 bytes
 xdocs/sources/xsltc/compiler_architecture.gif      | Bin 4642 -> 0 bytes
 xdocs/sources/xsltc/dom_namespace1.gif             | Bin 2969 -> 0 bytes
 xdocs/sources/xsltc/dom_namespace2.gif             | Bin 3805 -> 0 bytes
 xdocs/sources/xsltc/dom_namespace3.gif             | Bin 4670 -> 0 bytes
 xdocs/sources/xsltc/index.xml                      | 118 ----
 xdocs/sources/xsltc/key_relations.gif              | Bin 5667 -> 0 bytes
 xdocs/sources/xsltc/match_namespace1.gif           | Bin 6487 -> 0 bytes
 xdocs/sources/xsltc/match_namespace2.gif           | Bin 9034 -> 0 bytes
 xdocs/sources/xsltc/namespace_stack.gif            | Bin 3319 -> 0 bytes
 xdocs/sources/xsltc/output_namespaces1.gif         | Bin 3483 -> 0 bytes
 xdocs/sources/xsltc/output_namespaces2.gif         | Bin 3360 -> 0 bytes
 xdocs/sources/xsltc/pattern_objects.gif            | Bin 5206 -> 0 bytes
 xdocs/sources/xsltc/runtime_architecture.gif       | Bin 5536 -> 0 bytes
 xdocs/sources/xsltc/runtime_type_mapping.gif       | Bin 9446 -> 0 bytes
 xdocs/sources/xsltc/sort_objects.gif               | Bin 3175 -> 0 bytes
 xdocs/sources/xsltc/type_mapping.gif               | Bin 3368 -> 0 bytes
 xdocs/sources/xsltc/type_mappings.gif              | Bin 3807 -> 0 bytes
 xdocs/sources/xsltc/typecast.gif                   | Bin 1950 -> 0 bytes
 xdocs/sources/xsltc/xsl_comment_design.xml         | 111 ----
 xdocs/sources/xsltc/xsl_key_design.xml             | 214 -------
 xdocs/sources/xsltc/xsl_lang_design.xml            | 115 ----
 xdocs/sources/xsltc/xsl_sort_design.xml            | 211 -------
 xdocs/sources/xsltc/xsl_unparsed_design.xml        |  98 ---
 xdocs/sources/xsltc/xsl_whitespace_design.xml      | 342 ----------
 xdocs/sources/xsltc/xsltc_compiler.xml             | 270 --------
 xdocs/sources/xsltc/xsltc_dom.xml                  | 483 --------------
 xdocs/sources/xsltc/xsltc_namespace.xml            | 606 ------------------
 xdocs/sources/xsltc/xsltc_runtime.xml              | 415 -------------
 xdocs/sources/xsltc/xsltc_trax.xml                 | 691 ---------------------
 xdocs/sources/xsltc/xsltover.xml                   |  67 --
 50 files changed, 5880 deletions(-)

diff --git a/src/org/apache/xalan/xsltc/trax/TrAXFilter.java b/src/org/apache/xalan/xsltc/trax/TrAXFilter.java
deleted file mode 100644
index f721208..0000000
--- a/src/org/apache/xalan/xsltc/trax/TrAXFilter.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * @(#)$Id$
- *
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * @author G. Todd Miller 
- *
- */
-
-
-package org.apache.xalan.xsltc.trax;
-
-import org.xml.sax.XMLFilter;
-import org.xml.sax.helpers.XMLFilterImpl;
-import javax.xml.transform.Templates;
-import javax.xml.transform.TransformerConfigurationException;
-
-
-/**
- * skeleton extension of XMLFilterImpl for now.  
- */
-public class TrAXFilter extends XMLFilterImpl {
-    public TrAXFilter(Templates templates)  throws 
-	TransformerConfigurationException
-    {
-	/* nothing yet */ 
-    }
-}
diff --git a/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java b/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java
deleted file mode 100644
index 46b9564..0000000
--- a/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * @(#)$Id$
- *
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * @author G. Todd Miller 
- *
- */
-
-
-package org.apache.xalan.xsltc.trax;
-
-import javax.xml.transform.Templates; 
-import javax.xml.transform.Transformer; 
-import javax.xml.transform.TransformerException; 
-import javax.xml.transform.ErrorListener; 
-import javax.xml.transform.Source; 
-import javax.xml.transform.stream.StreamSource; 
-import javax.xml.transform.stream.StreamResult; 
-import javax.xml.transform.URIResolver; 
-import javax.xml.transform.TransformerConfigurationException; 
-import javax.xml.transform.sax.SAXTransformerFactory; 
-import javax.xml.transform.sax.TemplatesHandler;
-import javax.xml.transform.sax.TransformerHandler;
-
-import org.xml.sax.XMLFilter;
-
-import org.apache.xalan.xsltc.Translet;
-import org.apache.xalan.xsltc.compiler.XSLTC;
-import org.apache.xalan.xsltc.compiler.CompilerException;
-import org.apache.xalan.xsltc.compiler.util.Util;
-import org.apache.xalan.xsltc.runtime.AbstractTranslet;
-
-import java.io.File;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.MalformedURLException;
-
-
-/**
- * Implementation of a JAXP1.1 SAXTransformerFactory for Translets.
- */
-public class TransformerFactoryImpl extends SAXTransformerFactory {
-    public TransformerFactoryImpl() { /* nothing yet */ }
-
-    ////////////////////////////////////////////////////// 
-    // SAXTransformerFactory (subclass of TransformerFactory)
-    //
-    public TemplatesHandler newTemplatesHandler() 
-	throws TransformerConfigurationException 
-    { 
-	/*TBD*/
-	throw new TransformerConfigurationException(
-	    "TransformerFactoryImpl:newTemplatesHandler() " +
-	    "not implemented yet."); 
-	//return null; 
-    }
-    public TransformerHandler newTransformerHandler() 
-	throws TransformerConfigurationException 
-    {
-	/*TBD*/ 
-        throw new TransformerConfigurationException(
-            "TransformerFactoryImpl:newTransformerHandler() " +
-            "not implemented yet."); 
-	// return null; 
-    }
-    public TransformerHandler newTransformerHandler(Source src) 
-	throws TransformerConfigurationException 
-    { 
-        /*TBD*/ 
-        throw new TransformerConfigurationException(
-            "TransformerFactoryImpl:newTransformerHandler(Source) " +
-            "not implemented yet."); 
-	// return null; 
-    }
-    public TransformerHandler newTransformerHandler(Templates templates) 
-	throws TransformerConfigurationException 
-    { 
-        /*TBD*/ 
-        throw new TransformerConfigurationException(
-            "TransformerFactoryImpl:newTransformerHandler(Templates) " +
-            "not implemented yet."); 
-	//return null; 
-    }
-
-
-  /**
-   * Create an XMLFilter that uses the given source as the
-   * transformation instructions.
-   *
-   * @param src The source of the transformation instructions.
-   *
-   * @return An XMLFilter object, or null if this feature is not supported.
-   *
-   * @throws TransformerConfigurationException
-   */
-    public XMLFilter newXMLFilter(Source src) 
-	throws TransformerConfigurationException 
-    {
-	Templates templates = newTemplates(src);
-	if (templates == null ) {
-	    return null; 
-	}
-	return newXMLFilter(templates);
-    }
-
-    public XMLFilter newXMLFilter(Templates templates) 
-	throws TransformerConfigurationException 
-    {
-	try {
-      	    return new org.apache.xalan.xsltc.trax.TrAXFilter(templates);
-    	} catch( TransformerConfigurationException ex ) {
-      	    if( _errorListener != null) {
-                try {
-          	    _errorListener.fatalError( ex );
-          	    return null;
-        	} catch( TransformerException ex1 ) {
-          	    new TransformerConfigurationException(ex1);
-        	}
-      	    }
-      	    throw ex;
-    	}
-    }
-    //
-    // End SAXTransformerFactory methods 
-    ////////////////////////////////////////////////////// 
-
-    ////////////////////////////////////////////////////// 
-    // TransformerFactory
-    //
-    public ErrorListener getErrorListener() { 
-	return _errorListener;
-    }
-
-    public void setErrorListener(ErrorListener listener) 
-	throws IllegalArgumentException
-    {
-	if (listener == null) {
-            throw new IllegalArgumentException(
-               "Error: setErrorListener() call where ErrorListener is null");
-	}
-	_errorListener = listener;
-    }
-
-    public Object getAttribute(String name) 
-	throws IllegalArgumentException
-    { 
-	/*TBD*/ 
-        throw new IllegalArgumentException(
-            "TransformerFactoryImpl:getAttribute(String) " +
-            "not implemented yet.");
-	//return null; 
-    }
-    public void setAttribute(String name, Object value) 
-	throws IllegalArgumentException
-    { 
-	/*TBD*/  
-        throw new IllegalArgumentException(
-            "TransformerFactoryImpl:getAttribute(String) " +
-            "not implemented yet.");
-    }
-    public boolean getFeature(String name) { 
-	if ((StreamSource.FEATURE == name) ||
-	    (StreamResult.FEATURE == name) ||
-	    (SAXTransformerFactory.FEATURE == name)) {
-	    return true;
-	} else if ((StreamSource.FEATURE.equals(name))
-		|| (StreamResult.FEATURE.equals(name))
-		|| (SAXTransformerFactory.FEATURE.equals(name))) {
-	    return true;
-	} else {
- 	    return false; 
-	}
-    } 
-    public URIResolver getURIResolver() { /*TBD*/ return null; } 
-    public void setURIResolver(URIResolver resolver) {/*TBD*/   } 
-    public Source getAssociatedStylesheet(Source src, String media,
-	String title, String charset)  throws TransformerConfigurationException
-    { 
-	/*TBD*/ 
-        throw new TransformerConfigurationException(
-            "TransformerFactoryImpl:getAssociatedStylesheet(Source,String," +
-            "String, String) not implemented yet.");
-	//return null; 
-    }
-    public Transformer newTransformer() throws
-	TransformerConfigurationException 
-    { 
-	/*TBD*/ 
-        throw new TransformerConfigurationException(
-            "TransformerFactoryImpl:newTransformer() " +
-            " not implemented yet.");
-	//return null; 
-    }
-    //
-    // End TransformerFactory methods 
-    ////////////////////////////////////////////////////// 
-
-
-    public Transformer newTransformer(Source stylesheet) throws
-	TransformerConfigurationException
-    {
-	XSLTC xsltc = new XSLTC();
-	xsltc.init();
-
-	// check if destination has been set with system property
-	String transletDestDir = System.getProperty("transletPool");
-	if (transletDestDir != null) {
-	    try {
-	        xsltc.setDestDirectory(transletDestDir);
-	    } catch(CompilerException e)  {
-		throw new TransformerConfigurationException(
-		    "System property 'transletPool' was set to  " + 
-		    transletDestDir + ", " + e );
-	    }
- 	}
-
-        // compile stylesheet
-        boolean isSuccessful = true;
-        StreamSource strmsrc = (StreamSource)stylesheet;
-        InputStream inputStream = strmsrc.getInputStream();
-        String stylesheetName = stylesheet.getSystemId();
-        String transletName = "no_name";
-        if (inputStream != null) {
-            isSuccessful = xsltc.compile(inputStream, transletName);
-        } else if (stylesheetName != null ){
-            transletName = Util.toJavaName(Util.noExtName(
-		Util.baseName(stylesheetName)));
-            try {
-		if (stylesheetName.startsWith("file:/")) {
-                    isSuccessful = xsltc.compile(new URL(stylesheetName));
-		} else {
-                    File file = new File(stylesheetName);
-                    URL url = file.toURL();
-                    isSuccessful = xsltc.compile(url);
-		}
-            } catch (MalformedURLException e) {
-                throw new TransformerConfigurationException(
-                    "URL for stylesheet '" + stylesheetName +
-                    "' can not be formed.");
-            }
-        } else {
-           throw new TransformerConfigurationException(
-                "Stylesheet must have a system id or be an InputStream.");
-        }
-
-	if (!isSuccessful) {
-	    throw new TransformerConfigurationException(
-		"Compilation of stylesheet '" + stylesheetName + "' failed.");
-	}
-
-	Translet translet = null;
-	try {
-	    Class clazz = Class.forName(transletName);
-	    translet = (Translet)clazz.newInstance();
-	    ((AbstractTranslet)translet).setTransletName(transletName);
-	    // GTM
-	    if (_errorListener != null) {
-	        ((AbstractTranslet)translet).setErrorListener(_errorListener);
-	    }
-	} catch (ClassNotFoundException e) {
-	    throw new TransformerConfigurationException(
-		"Translet class '" + transletName + "' not found.");
-	} catch (InstantiationException e) {
-	    throw new TransformerConfigurationException(
-		"Translet class '" + transletName + 
-		"' could not be instantiated");
-	} catch (IllegalAccessException  e) {
-	    throw new TransformerConfigurationException(
-		"Translet class '" + transletName + "' could not be accessed.");
-	}
-	return (AbstractTranslet)translet;
-    }
-
-    public Templates newTemplates(Source stylesheet) throws
-       TransformerConfigurationException 
-    {
-	return new TransletTemplates(stylesheet);
-    }
-
-    private ErrorListener _errorListener = null; 
-}
diff --git a/src/org/apache/xalan/xsltc/trax/TransletTemplates.java b/src/org/apache/xalan/xsltc/trax/TransletTemplates.java
deleted file mode 100644
index 354072c..0000000
--- a/src/org/apache/xalan/xsltc/trax/TransletTemplates.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * @(#)$Id$
- *
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * @author G. Todd Miller 
- *
- */
-package org.apache.xalan.xsltc.trax;
-
-import javax.xml.transform.Templates;
-import javax.xml.transform.Source; 
-import javax.xml.transform.stream.StreamSource; 
-import javax.xml.transform.Transformer; 
-import javax.xml.transform.TransformerConfigurationException; 
-import javax.xml.transform.sax.SAXTransformerFactory; 
-
-import org.apache.xalan.xsltc.runtime.AbstractTranslet;
-import org.apache.xalan.xsltc.compiler.XSLTC;
-import org.apache.xalan.xsltc.compiler.CompilerException;
-import org.apache.xalan.xsltc.compiler.util.Util;
-import org.apache.xalan.xsltc.Translet;
-import java.util.Properties;
-
-import java.io.File;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.MalformedURLException;
-
-/**
- * Implementation of a JAXP1.1 Templates object for Translets.
- */ 
-public class TransletTemplates implements Templates {
-    private Source _stylesheet;
-
-    public TransletTemplates(Source stylesheet) {
-	_stylesheet = stylesheet;
-    }
-
-    public Transformer newTransformer() throws 
-	TransformerConfigurationException
-    {
-        XSLTC xsltc = new XSLTC();
-        xsltc.init();
-
-        // check if destination has been set with system property
-        String transletDestDir = System.getProperty("transletPool");
-        if (transletDestDir != null) {
-            try {
-                xsltc.setDestDirectory(transletDestDir);
-            } catch(CompilerException e)  {
-                throw new TransformerConfigurationException(
-                    "System property 'transletPool' was set to  " +
-                    transletDestDir + ", " + e );
-            }
-        }
-
-
-	// compile stylesheet
-	boolean isSuccessful = true;
-	StreamSource strmsrc = (StreamSource)_stylesheet;
-	InputStream inputStream = strmsrc.getInputStream();
-	String stylesheetName = _stylesheet.getSystemId();
-	String transletName = "no_name";
-	if (inputStream != null) {
-	    isSuccessful = xsltc.compile(inputStream, transletName);
-	} else if (stylesheetName != null ){
-/******************
-	    int index = stylesheetName.indexOf('.');
-	    if (index > 0) { 
-                transletName = stylesheetName.substring(0,index);
-            }
-            else {
-                // indexOf returns -1 if '.' is not present
-                transletName = stylesheetName;
-            }   
-********************/
-	    transletName = Util.toJavaName(Util.noExtName(
-                Util.baseName(stylesheetName)));
-            try {
-                if (stylesheetName.startsWith("file:/")) {
-                    isSuccessful = xsltc.compile(new URL(stylesheetName));
-                } else {
-                    File file = new File(stylesheetName);
-                    URL url = file.toURL();
-                    isSuccessful = xsltc.compile(url);
-                }
-            } catch (MalformedURLException e) {
-                throw new TransformerConfigurationException(
-                    "URL for stylesheet '" + stylesheetName +
-                    "' can not be formed.");
-	    }
-        } else {
-	   throw new TransformerConfigurationException(
-		"Stylesheet must have a system id or be an InputStream."); 
-	}
-
-        if (!isSuccessful) {
-            throw new TransformerConfigurationException(
-                "Compilation of stylesheet '" + stylesheetName + "' failed.");
-        }
-
-        Translet translet = null;
-        try {
-            Class clazz = Class.forName(transletName);
-            translet = (Translet)clazz.newInstance();
-            ((AbstractTranslet)translet).setTransletName(transletName);
-        } catch (ClassNotFoundException e) {
-            throw new TransformerConfigurationException(
-                "Translet class '" + transletName + "' not found.");
-        } catch (InstantiationException e) {
-            throw new TransformerConfigurationException(
-                "Translet class '" + transletName +
-                "' could not be instantiated");
-        } catch (IllegalAccessException  e) {
-            throw new TransformerConfigurationException(
-                "Translet class '" + transletName + "' could not be accessed.");
-        }
-        return (AbstractTranslet)translet;
-    }
-
-    public Properties getOutputProperties() { 
-	/*TBD*/ 
-	return new Properties(); 
-    }
-
-}
diff --git a/src/org/w3c/dom/ranges/DocumentRange.java b/src/org/w3c/dom/ranges/DocumentRange.java
deleted file mode 100644
index 6b52267..0000000
--- a/src/org/w3c/dom/ranges/DocumentRange.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program is distributed in the
- * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
- * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.
- * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.ranges;
-
-/**
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
- * @since DOM Level 2
- */
-public interface DocumentRange {
-    /**
-     * This interface can be obtained from the object implementing the 
-     * <code>Document</code> interface using binding-specific casting 
-     * methods.
-     * @return The initial state of the Range returned from this method is 
-     *   such that both of its boundary-points are positioned at the 
-     *   beginning of the corresponding Document, before any content. The 
-     *   Range returned can only be used to select content associated with 
-     *   this Document, or with DocumentFragments and Attrs for which this 
-     *   Document is the <code>ownerDocument</code>.
-     */
-    public Range createRange();
-
-}
diff --git a/src/org/w3c/dom/ranges/Range.java b/src/org/w3c/dom/ranges/Range.java
deleted file mode 100644
index 7743abe..0000000
--- a/src/org/w3c/dom/ranges/Range.java
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program is distributed in the
- * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
- * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.
- * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.ranges;
-
-import org.w3c.dom.Node;
-import org.w3c.dom.DocumentFragment;
-import org.w3c.dom.DOMException;
-
-/**
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
- * @since DOM Level 2
- */
-public interface Range {
-    /**
-     * Node within which the Range begins 
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public Node getStartContainer()
-                       throws DOMException;
-
-    /**
-     * Offset within the starting node of the Range. 
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public int getStartOffset()
-                       throws DOMException;
-
-    /**
-     * Node within which the Range ends 
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public Node getEndContainer()
-                       throws DOMException;
-
-    /**
-     * Offset within the ending node of the Range. 
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public int getEndOffset()
-                       throws DOMException;
-
-    /**
-     * TRUE if the Range is collapsed 
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public boolean getCollapsed()
-                       throws DOMException;
-
-    /**
-     * The deepest common ancestor container of the Range's two 
-     * boundary-points.
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public Node getCommonAncestorContainer()
-                       throws DOMException;
-
-    /**
-     * Sets the attributes describing the start of the Range. 
-     * @param refNodeThe <code>refNode</code> value. This parameter must be 
-     *   different from <code>null</code>.
-     * @param offsetThe <code>startOffset</code> value. 
-     * @exception RangeException
-     *   INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor 
-     *   of <code>refNode</code> is an Entity, Notation, or DocumentType 
-     *   node.
-     * @exception DOMException
-     *   INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater 
-     *   than the number of child units in <code>refNode</code>. Child units 
-     *   are 16-bit units if <code>refNode</code> is a type of CharacterData 
-     *   node (e.g., a Text or Comment node) or a ProcessingInstruction 
-     *   node. Child units are Nodes in all other cases.
-     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
-     *   been invoked on this object.
-     */
-    public void setStart(Node refNode, 
-                         int offset)
-                         throws RangeException, DOMException;
-
-    /**
-     * Sets the attributes describing the end of a Range.
-     * @param refNodeThe <code>refNode</code> value. This parameter must be 
-     *   different from <code>null</code>.
-     * @param offsetThe <code>endOffset</code> value. 
-     * @exception RangeException
-     *   INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor 
-     *   of <code>refNode</code> is an Entity, Notation, or DocumentType 
-     *   node.
-     * @exception DOMException
-     *   INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater 
-     *   than the number of child units in <code>refNode</code>. Child units 
-     *   are 16-bit units if <code>refNode</code> is a type of CharacterData 
-     *   node (e.g., a Text or Comment node) or a ProcessingInstruction 
-     *   node. Child units are Nodes in all other cases.
-     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
-     *   been invoked on this object.
-     */
-    public void setEnd(Node refNode, 
-                       int offset)
-                       throws RangeException, DOMException;
-
-    /**
-     * Sets the start position to be before a node
-     * @param refNodeRange starts before <code>refNode</code> 
-     * @exception RangeException
-     *   INVALID_NODE_TYPE_ERR: Raised if the root container of 
-     *   <code>refNode</code> is not an Attr, Document, or DocumentFragment 
-     *   node or if <code>refNode</code> is a Document, DocumentFragment, 
-     *   Attr, Entity, or Notation node.
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public void setStartBefore(Node refNode)
-                               throws RangeException, DOMException;
-
-    /**
-     * Sets the start position to be after a node
-     * @param refNodeRange starts after <code>refNode</code> 
-     * @exception RangeException
-     *   INVALID_NODE_TYPE_ERR: Raised if the root container of 
-     *   <code>refNode</code> is not an Attr, Document, or DocumentFragment 
-     *   node or if <code>refNode</code> is a Document, DocumentFragment, 
-     *   Attr, Entity, or Notation node.
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public void setStartAfter(Node refNode)
-                              throws RangeException, DOMException;
-
-    /**
-     * Sets the end position to be before a node. 
-     * @param refNodeRange ends before <code>refNode</code> 
-     * @exception RangeException
-     *   INVALID_NODE_TYPE_ERR: Raised if the root container of 
-     *   <code>refNode</code> is not an Attr, Document, or DocumentFragment 
-     *   node or if <code>refNode</code> is a Document, DocumentFragment, 
-     *   Attr, Entity, or Notation node.
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public void setEndBefore(Node refNode)
-                             throws RangeException, DOMException;
-
-    /**
-     * Sets the end of a Range to be after a node 
-     * @param refNodeRange ends after <code>refNode</code>. 
-     * @exception RangeException
-     *   INVALID_NODE_TYPE_ERR: Raised if the root container of 
-     *   <code>refNode</code> is not an Attr, Document or DocumentFragment 
-     *   node or if <code>refNode</code> is a Document, DocumentFragment, 
-     *   Attr, Entity, or Notation node.
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public void setEndAfter(Node refNode)
-                            throws RangeException, DOMException;
-
-    /**
-     * Collapse a Range onto one of its boundary-points 
-     * @param toStartIf TRUE, collapses the Range onto its start; if FALSE, 
-     *   collapses it onto its end. 
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public void collapse(boolean toStart)
-                         throws DOMException;
-
-    /**
-     * Select a node and its contents 
-     * @param refNodeThe node to select. 
-     * @exception RangeException
-     *   INVALID_NODE_TYPE_ERR: Raised if an ancestor of <code>refNode</code> 
-     *   is an Entity, Notation or DocumentType node or if 
-     *   <code>refNode</code> is a Document, DocumentFragment, Attr, Entity, 
-     *   or Notation node.
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public void selectNode(Node refNode)
-                           throws RangeException, DOMException;
-
-    /**
-     * Select the contents within a node 
-     * @param refNodeNode to select from 
-     * @exception RangeException
-     *   INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor 
-     *   of <code>refNode</code> is an Entity, Notation or DocumentType node.
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public void selectNodeContents(Node refNode)
-                                   throws RangeException, DOMException;
-
-    // CompareHow
-    /**
-     * Compare start boundary-point of <code>sourceRange</code> to start 
-     * boundary-point of Range on which <code>compareBoundaryPoints</code> 
-     * is invoked.
-     */
-    public static final short START_TO_START            = 0;
-    /**
-     * Compare start boundary-point of <code>sourceRange</code> to end 
-     * boundary-point of Range on which <code>compareBoundaryPoints</code> 
-     * is invoked.
-     */
-    public static final short START_TO_END              = 1;
-    /**
-     * Compare end boundary-point of <code>sourceRange</code> to end 
-     * boundary-point of Range on which <code>compareBoundaryPoints</code> 
-     * is invoked.
-     */
-    public static final short END_TO_END                = 2;
-    /**
-     * Compare end boundary-point of <code>sourceRange</code> to start 
-     * boundary-point of Range on which <code>compareBoundaryPoints</code> 
-     * is invoked.
-     */
-    public static final short END_TO_START              = 3;
-
-    /**
-     * Compare the boundary-points of two Ranges in a document.
-     * @param howA code representing the type of comparison, as defined above.
-     * @param sourceRangeThe <code>Range</code> on which this current 
-     *   <code>Range</code> is compared to.
-     * @return  -1, 0 or 1 depending on whether the corresponding 
-     *   boundary-point of the Range is respectively before, equal to, or 
-     *   after the corresponding boundary-point of <code>sourceRange</code>. 
-     * @exception DOMException
-     *   WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same 
-     *   Document or DocumentFragment.
-     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
-     *   been invoked on this object.
-     */
-    public short compareBoundaryPoints(short how, 
-                                       Range sourceRange)
-                                       throws DOMException;
-
-    /**
-     * Removes the contents of a Range from the containing document or 
-     * document fragment without returning a reference to the removed 
-     * content.  
-     * @exception DOMException
-     *   NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of 
-     *   the Range is read-only or any of the nodes that contain any of the 
-     *   content of the Range are read-only.
-     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
-     *   been invoked on this object.
-     */
-    public void deleteContents()
-                               throws DOMException;
-
-    /**
-     * Moves the contents of a Range from the containing document or document 
-     * fragment to a new DocumentFragment. 
-     * @return A DocumentFragment containing the extracted contents. 
-     * @exception DOMException
-     *   NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of 
-     *   the Range is read-only or any of the nodes which contain any of the 
-     *   content of the Range are read-only.
-     *   <br>HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be 
-     *   extracted into the new DocumentFragment.
-     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
-     *   been invoked on this object.
-     */
-    public DocumentFragment extractContents()
-                                            throws DOMException;
-
-    /**
-     * Duplicates the contents of a Range 
-     * @return A DocumentFragment that contains content equivalent to this 
-     *   Range.
-     * @exception DOMException
-     *   HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be 
-     *   extracted into the new DocumentFragment.
-     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
-     *   been invoked on this object.
-     */
-    public DocumentFragment cloneContents()
-                                          throws DOMException;
-
-    /**
-     * Inserts a node into the Document or DocumentFragment at the start of 
-     * the Range. If the container is a Text node, this will be split at the 
-     * start of the Range (as if the Text node's splitText method was 
-     * performed at the insertion point) and the insertion will occur 
-     * between the two resulting Text nodes. Adjacent Text nodes will not be 
-     * automatically merged. If the node to be inserted is a 
-     * DocumentFragment node, the children will be inserted rather than the 
-     * DocumentFragment node itself.
-     * @param newNodeThe node to insert at the start of the Range 
-     * @exception DOMException
-     *   NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of the 
-     *   start of the Range is read-only.
-     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newNode</code> and the 
-     *   container of the start of the Range were not created from the same 
-     *   document.
-     *   <br>HIERARCHY_REQUEST_ERR: Raised if the container of the start of 
-     *   the Range is of a type that does not allow children of the type of 
-     *   <code>newNode</code> or if <code>newNode</code> is an ancestor of 
-     *   the container.
-     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
-     *   been invoked on this object.
-     * @exception RangeException
-     *   INVALID_NODE_TYPE_ERR: Raised if <code>newNode</code> is an Attr, 
-     *   Entity, Notation, or Document node.
-     */
-    public void insertNode(Node newNode)
-                           throws DOMException, RangeException;
-
-    /**
-     * Reparents the contents of the Range to the given node and inserts the 
-     * node at the position of the start of the Range. 
-     * @param newParentThe node to surround the contents with. 
-     * @exception DOMException
-     *   NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of 
-     *   either boundary-point of the Range is read-only.
-     *   <br>WRONG_DOCUMENT_ERR: Raised if <code> newParent</code> and the 
-     *   container of the start of the Range were not created from the same 
-     *   document.
-     *   <br>HIERARCHY_REQUEST_ERR: Raised if the container of the start of 
-     *   the Range is of a type that does not allow children of the type of 
-     *   <code>newParent</code> or if <code>newParent</code> is an ancestor 
-     *   of the container or if <code>node</code> would end up with a child 
-     *   node of a type not allowed by the type of <code>node</code>.
-     *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
-     *   been invoked on this object.
-     * @exception RangeException
-     *   BAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a 
-     *   non-text node.
-     *   <br>INVALID_NODE_TYPE_ERR: Raised if <code> node</code> is an Attr, 
-     *   Entity, DocumentType, Notation, Document, or DocumentFragment node.
-     */
-    public void surroundContents(Node newParent)
-                                 throws DOMException, RangeException;
-
-    /**
-     * Produces a new Range whose boundary-points are equal to the 
-     * boundary-points of the Range. 
-     * @return The duplicated Range. 
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public Range cloneRange()
-                            throws DOMException;
-
-    /**
-     * Returns the contents of a Range as a string. This string contains only 
-     * the data characters, not any markup. 
-     * @return The contents of the Range.
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public String toString()
-                           throws DOMException;
-
-    /**
-     * Called to indicate that the Range is no longer in use and that the 
-     * implementation may relinquish any resources associated with this 
-     * Range. Subsequent calls to any methods or attribute getters on this 
-     * Range will result in a <code>DOMException</code> being thrown with an 
-     * error code of <code>INVALID_STATE_ERR</code>.
-     * @exception DOMException
-     *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
-     *   invoked on this object.
-     */
-    public void detach()
-                       throws DOMException;
-
-}
diff --git a/src/org/w3c/dom/ranges/RangeException.java b/src/org/w3c/dom/ranges/RangeException.java
deleted file mode 100644
index 551008e..0000000
--- a/src/org/w3c/dom/ranges/RangeException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2000 World Wide Web Consortium,
- * (Massachusetts Institute of Technology, Institut National de
- * Recherche en Informatique et en Automatique, Keio University). All
- * Rights Reserved. This program is distributed under the W3C's Software
- * Intellectual Property License. This program is distributed in the
- * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
- * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.
- * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
- */
-
-package org.w3c.dom.ranges;
-
-/**
- * Range operations may throw a <code>RangeException</code> as specified in 
- * their method descriptions.
- * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
- * @since DOM Level 2
- */
-public class RangeException extends RuntimeException {
-    public RangeException(short code, String message) {
-       super(message);
-       this.code = code;
-    }
-    public short   code;
-    // RangeExceptionCode
-    /**
-     * If the boundary-points of a Range do not meet specific requirements.
-     */
-    public static final short BAD_BOUNDARYPOINTS_ERR    = 1;
-    /**
-     * If the container of an boundary-point of a Range is being set to either 
-     * a node of an invalid type or a node with an ancestor of an invalid 
-     * type.
-     */
-    public static final short INVALID_NODE_TYPE_ERR     = 2;
-
-}
diff --git a/src/org/w3c/dom/ranges/package.html b/src/org/w3c/dom/ranges/package.html
deleted file mode 100644
index 8b9d80f..0000000
--- a/src/org/w3c/dom/ranges/package.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-  <title>org.w3c.dom.ranges Package</title>
-  <body>
-    <p>DOM level 2 range interfaces.<p>
- </body>
-</html>
-
-
diff --git a/src/trax/trax.properties b/src/trax/trax.properties
deleted file mode 100644
index e593c39..0000000
--- a/src/trax/trax.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-# $Revision$ $Date$
-#
-# Note: This properties file is provided for illustrative purposes
-#       only and is not part of the interface definition.
-#       This properties file is located in the implementation JAR
-#       and different implementations will specify different
-#       implementation classes and output methods.
-#
-
-# The TRaX Stylesheet processor
-trax.processor.xslt=org.apache.xalan.processor.StylesheetProcessor
diff --git a/xdocs/sources/xsltc/DOMInterface.gif b/xdocs/sources/xsltc/DOMInterface.gif
deleted file mode 100644
index 8f8919e..0000000
Binary files a/xdocs/sources/xsltc/DOMInterface.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/DOMLocking.gif b/xdocs/sources/xsltc/DOMLocking.gif
deleted file mode 100644
index cae33b4..0000000
Binary files a/xdocs/sources/xsltc/DOMLocking.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/README b/xdocs/sources/xsltc/README
deleted file mode 100644
index e7b498e..0000000
--- a/xdocs/sources/xsltc/README
+++ /dev/null
@@ -1,246 +0,0 @@
-=======================================================================
-         README FILE FOR THE SUN XSLT COMPILER
-                 Preview Version 6 
-                    April, 2001
-           Copyright (c) Sun Microsystems, 2001
-=======================================================================
-
-The Sun XSLT Compiler (XSLTC) is a Java-based tool for compiling XSL 
-stylesheets into extremely lightweight and portable Java byte code. 
-The Sun XSLTC Java Runtime environment can then process XML files 
-against these compiled stylesheets (Translets) to generate any manner 
-of output per the style-sheet instructions.
-
-This preview version of the XSLT Compiler can be run on any 
-platform -- including UNIX, Windows, NT, Mac -- that supports 
-Java2 or later. The Translets (compiled stylesheets) can be run on any 
-Java platform including a Palm Pilot with J2ME CLDC 
-(Java 2 Micro Edition, Connected Limited Device Configuration). 
-While the compiler itself requires Java2,translets are designed to run 
-anywhere Java is available.
-
-Almost all functions of the XLST 1.0 language are implemented; 
-more than enough to show you how this new approach to XSLT works 
-and its advantages! Using the samples provided, you will be able 
-to see for yourself. Also, demos for the Palm Pilot, Applets, and 
-Servlets are provided.
-
------------------------------------------------------------------------
-ATTRIBUTIONS
------------------------------------------------------------------------
-The XSLT Compiler program uses the CUP Parser Generator
-for Java, Copyright 1996-1999 by Scott Hudson, Frank Flannery,
-C. Scott Ananian.  For more details, please see:
-http://www.cs.princeton.edu/~appel/modern/java/CUP/
-
-The XSLT Compiler program also uses a modified version of the
-Byte Code Engineering Library (BCEL), formerly known as 
-(JavaClass API), Copyright 2000 Markus Dahm.
-
-** Please note that this additional package, BCEL, is
-** needed in order to generate the class files from the compiler.
-** Without the BCEL package, this preview version of the
-** compiler WILL NOT WORK.  BCEL is freely available for
-** download as described below.
-
------------------------------------------------------------------------
-REQUIRED PACKAGE
------------------------------------------------------------------------
-BCEL (formerly JavaClass) by Markus Dahm has been 
-used to automatically create class files from the XSLT compiler output.  
-You must obtain the BCEL.jar file and install it before using the 
-XSLT compiler.
-
-The simplest way to download the BCEL.jar file from 
-
-    http://bcel.sourceforge.net/downloads.html
-
-is to use the "JAR file (without docs)" link.
-
-You may want to obtain the precompiled class files and documentation.
-To download them to a Unix system:
-
-    1) Choose the "latest version (Precompiled + docs)" 
-       Gzipped Tar-File or ZIP-File link.
-
-    2) Unpack and expand the downloaded BCEL files in your 
-       download directory (e.g., /usr/local).
-
-    3) Change directory to BCEL.
-
-    4) Create the jar file BCEL.jar.
-    
-       From within the BCEL directory, you can either use the 
-       included GNUmakefile or create the jar yourself.
-       
-       To use the GNUmakefile, type the command 'make jar'.
-       
-       To create the jar yourself, type the command:
-       
-         jar cvf BCEL.jar `find de gnu -name \*.class` listclass.class
-
-To download the precompiled class files and documentation 
-to a Windows system:
-
-    1) Choose the "latest version (Precompiled + docs)" 
-       ZIP-File link.
-
-    2) Unzip the downloaded BCEL files in your 
-       download directory.
-
-    3) Change directory to BCEL and from a DOS command line,
-       type the command:
-
-         jar -cvf BCEL.jar de\fub\bytecode\classfile\*.class
-           gnu\regexp\*.class listclass.class
-
-To complete the BCEL setup:
-
-    1) Install XSLTC, as described in the section below,
-       "HOW TO INSTALL XSLTC AND RUN THE SAMPLES."
-
-    2) Copy the BCEL.jar file into the "lib" directory
-       under your "xsltc" directory.
-
-       You are now set to run the XSLT compiler.
-
-------------------------------------------------------------
-ADDITIONS FROM VERSION 5 (of the PREVIEW COMPILER)
-------------------------------------------------------------
-
-Support for 
-
-	- Simplified Stylesheets
-	- id() and key() in match patterns
-
-------------------------------------------------------------
-XSLT 1.0 Features Not Suported in PREVIEW VERSION 6
-------------------------------------------------------------
-
-The following XSLT 1.0 features are not yet supported:
-
-    * Nonstatic external Java methods. 
-      You may call static Java functions
-      using a namespace prefix matching the class name that is 
-      associated with the following URL:
-      
-        http://www.sun.com/xsltc/java/YourJavaClass
-      
-    * Namespace axis
-
-------------------------------------------------------------
-LIST OF FILES
-------------------------------------------------------------
-
-The files included in this preview package are as follows:
-
-xsltc-1_0-alpha5-bin.zip
-   <install dir>/xsltc
-      LICENSE.txt           (license file)
-      XSLTCprn_lg.txt       (copyright notice)
-      README                (this file)
-      README.api            (describes Translet API)
-      README.xslt           (describes runtime command line interface)
-      README.xsltc          (describes compiler command line interface)
-      bin 
-         xslt               (runtime for Unix)
-         xsltc              (compiler for Unix)
-
-         xslt.bat           (runtime for DOS)
-         xsltc.bat          (compiler for DOS)
-      demo
-         README
-         TransletDemo.prc (Palm Pilot install file)
-      lib
-         xml.jar
-         xsltc.jar
-         xsltcrt.jar               ('rt' = runtime)
-         [BCEL.jar goes here] (see REQUIRED PACKAGE above)
-      samples
-         set of xml and xsl files for you to try
-      src
-         subset of the runtime package to complement README.api
-         plus an Applet demo and a servlet demo
-         com/sun/xslt/demo/servlet
-             README.servlet        (describes Servlet demo)
-         com/sun/xslt/demo/applet
-             README.applet         (describes Applet demo)
-
-------------------------------------------------------------
-HOW TO INSTALL XSLTC AND RUN THE SAMPLES
-------------------------------------------------------------
-
-1. Unzip the files in a directory of your choice, for example
-   from the user directory '/home/user1', the distribution
-   zip file can be unzipped using the jar command as:
-
-   jar xvf xsltc-1_0-alpha5-bin.zip 
-
-   The subdirectory 'xslt' will be created in '/home/user1'.
-
-2. Set the XSLT environment variable to point to your installation
-   directory. Set your PATH environment variable to include
-   the bin directory of XSLT. 
-
-   For example, in the bash shell:
- 
-      export XSLT=/home/user1/xslt
-      export PATH=$XSLT/bin:$PATH
-
-3. Compile the stylesheet to produce a Java class file.
-
-   For example, on the Unix platform, to compile the play1.xsl
-   stylesheet for the play.xml document:
-
-      cd /home/user1/xsltc/samples
-      xsltc play1.xsl
-
-   The compiled stylesheet will be in the main Java class file 
-   'play1.class'
-
-   NOTE: The 'xlstc' shell script adds the required jars to your CLASSPATH
-
-   For example, on the Windows platform, to compile the play1.xsl
-   stylesheet for the play.xml document:
-   
-      set classpath=c:\xsltc\samples;c:\xsltc\lib\xsltc.jar;
-      c:\xsltc\lib\xsltcrt.jar;c:\xsltc\lib\xml.jar;
-      c:\xsltc\lib\BCEL.jar;.
-      cd c:\xsltc\samples
-      java com.sun.xslt.compiler.XSLTC play1.xsl
-
-4. Use the compiled Java class file (play1.class) to transform 
-   the example XML document.
-
-   For example, on the Unix platform:
-
-      xslt play.xml play1
-
-   For example, on the Windows platform:
-
-      java com.sun.xslt.runtime.DefaultRun play.xml play1
-
-   The result is sent to standard output.
-
-   NOTE: When running the compiled stylesheet, you 
-         just specify the name of its Java class, not its
-         file name (e.g., play1, not play1.class).
-         You do not include the ".class" extension, nor
-         the path to the class. The class is found by means 
-         of the Java CLASSPATH variable. If you run
-         the translet from a directory other
-         than the directory in which the compiled
-         stylesheet class is located, you need to add 
-         that directory to your Java CLASSPATH. Also, you
-         need to remove directories from your CLASSPATH 
-         for prior installations of XSLTC and any references 
-         to Sun's project X parser (com.sun.xml.tree)
-         installed from some other XML application/tool.
- 
-   NOTE: The javadocToHtml sample calls external Java methods
-         from the JavadocFormatter class. Before compiling the
-         javadocToHtml.xsl stylesheet, compile the 
-         JavadocFormatter class using 'javac'.
-
-------------------------------------------------------------
-END OF README
diff --git a/xdocs/sources/xsltc/README.APACHE b/xdocs/sources/xsltc/README.APACHE
deleted file mode 100644
index c7cd61f..0000000
--- a/xdocs/sources/xsltc/README.APACHE
+++ /dev/null
@@ -1,86 +0,0 @@
-README.APACHE
-=====================================================================
-Entire source tree and support packages are located in the single jar
-file 'apache.jar'. 
-
-
-Installation
--------------
-
-(1) create directory [Root], unpack 'apache.jar' there.
-	ex) % cd /tmp; mkdir xsltc_apache 
-	    % cd xsltc_apache
-        copy apache.jar to xsltc_apache directory
-	    % jar xvf apache.jar 
-	cleanup
-	    % rm -rf META-INF apache.jar
-
-    Unpacking the jar file will result in the following tree:
-
-	[Root]
-	  External/
-	    BCEL/                ... contains BCEL.jar
-	    JLex/                ... contains JLex.jar
-	    java_cup/            ... contains java_cup.jar, runtime/runtime.jar
-	    xml-tr2/             ... contains xml.jar
-	  bin/
-	    xslt
-	    xsltc
-	  doc/
-	    api/                 ... contains javadoc for api
-	  src/
-	    GNUmakefile
-	    GNUmakefile.allinc
-	    docs/
-	      LICENSE.txt
-	      Message.txt
-	      README
-	      README.api
-	      README.xslt
-	      README.xsltc
-	      XSLTCprn_lg.txt*
-	      xsltcA3.txt
-	    org/
-	      apache/
-		xalan/
-		  xsltc/
-		     (src tree)  ... all the source code files
-
-
-    The 'src tree' is a hierarchy of the following packages:
-	org.apache.xalan.xsltc
-	org.apache.xalan.xsltc.compiler
-	org.apache.xalan.xsltc.compiler.util
-	org.apache.xalan.xsltc.dom
-	org.apache.xalan.xsltc.runtime
-	org.apache.xalan.xsltc.util
-	org.apache.xalan.xsltc.util.getopt
-
-
-(2) make bin programs executable
-	    % chmod +x bin/*
-
-(3) set env variable to point to top of directory [Root]
-	ex) % setenv XSLT /tmp/xsltc_apache
-
-(4) compile sources (uses gnu make and the provides 'GNUmakefile'). This
-    will create java classes in [Root]/classes, e.g. /tmp/xsltc_apache/classes.
-    (No need to set your CLASSPATH variable.)
-    
-	ex) % cd src; gmake again
-
-    Note: the 'again' target forces everything to be built from scratch,
-    including the java_cup source files. Subsequent builds can be done
-    using the 'classes' target. 
-
-(5) make the javadoc
-	ex) % gmake jdoc
-
-(6) add bin directory to your executable path, 
-	ex) % set path=($XSLT/bin $path)
-
-(7) test distribution, given a stylesheet (test.xsl) and an input xml doc
-    (test.xml), and be sure current working directory (.) is in your
-    CLASSPATH.
- 	% xsltc test.xsl		... creates translet, test.class
-	% xslt test.xml test		... runs translet on xml input	
diff --git a/xdocs/sources/xsltc/README.api b/xdocs/sources/xsltc/README.api
deleted file mode 100644
index 601b092..0000000
--- a/xdocs/sources/xsltc/README.api
+++ /dev/null
@@ -1,422 +0,0 @@
-============================================================
-         README FILE FOR THE SUN XSLT COMPILER API
-                  Preview Version 5 
-                    February, 2001
-           Copyright (c) Sun Microsystems, 2001
-============================================================
-
-The Sun XSLT Compiler (XSLTC) is a Java-based tool for 
-compiling XSL stylesheets into extremely lightweight and 
-portable Java byte code. The Sun XSLTC Java Runtime environment 
-can then process XML files against these compiled stylesheets 
-(Translets) to generate any manner of output per the style-
-sheet instructions.
-
-CONTENTS OF THIS DOCUMENT:
-	1. HOW TO INCLUDE TRANSLETS IN YOUR APPLICATIONS
-	2. FULL CODE EXAMPLE 1, (uses a SAX DocumentHandler).
-	3. COMPILING AND RUNNING THE EXAMPLE 
-	4. FULL CODE EXAMPLE 2, (uses DefaultSAXOutputHandler). 
-	5. APPENDIX (TextOut and DefaultSAXOutputHandler)
-
-
-
-
-1. HOW TO INCLUDE TRANSLETS IN YOUR APPLICATIONS
----------------------------------------------------------------------
-
-Translets implement the interface com.sun.xslt.Translet
-that you will find in the src directory.
-
-public interface Translet {
-    public void transform(DOM document, TransletOutputHandler handler)
-	throws TransletException;
-
-    public void transform(DOM document, TransletOutputHandler[] handlers)
-	throws TransletException;
-
-    public void transform(DOM document, NodeIterator iterator,
-                          TransletOutputHandler handler) throws 
-			  TransletException;
-
-    public Object addParameter(String name, Object value);
-
-    public void buildKeys(DOM document, NodeIterator iterator,
-                          TransletOutputHandler handler, int root) throws 
-			  TransletException;
-
-    public String getOutputEncoding();
-}
-
-The Translet takes a DOMImpl object (created from an input XML document),
-as input and transforms it. The results of the transformation are 
-sent to an  event-based output handler that implements the 
-com.sun.xslt.TransletOutputHandler interface :
-
-
-public interface com.sun.xslt.TransletOutputHandler {
-    public void startDocument() throws TransletException;
-    public void endDocument() throws TransletException;
-    public void characters(char[] characters, int offset, int length)
-        throws TransletException;
-    public void startElement(String elementName) throws TransletException;
-    public void endElement(String elementName) throws TransletException;
-    public void attribute(String attributeName, String attributeValue)
-        throws TransletException;
-    public void comment(String comment) throws TransletException;
-    public void processingInstruction(String target, String data)
-        throws TransletException;
-    public void setType(int type);
-    public void setIndent(boolean indent);
-    public boolean setEscaping(boolean escape) throws TransletException;
-    public void insertCdataElement(String elementName);
-}
-
-
-You create an instance of the class that implements the Translet interface
-using Java reflection:
-
-  Class clazz = Class.forName("classname");
-  Translet translet = (Translet) clazz.newInstance();
-
-where "classname" is the name of the class generated by XSLTC.
-In order to execute a transformation, both a document and a SAX-like
-handler (TransletOutputHandler) are needed.
-A document instance can be created with the aid of SAX-complaint XML parser.
-For example, using Sun's parser you would write,
-
-  import com.sun.xslt.dom.DOMImpl;
-  import com.sun.xml.parser.Parser;
-  import com.sun.xml.parser.Resolver;
-
-  // Create new instances of DOM and Parser
-  DOMImpl dom = new DOMImpl();
-  Parser parser = new Parser();
-
-  // Set a SAX handler to build a DOM tree
-  parser.setDocumentHandler(dom.getBuilder());
-
-  // Parse the document and build a DOM tree
-  InputSource input = new InputSource(
-                          new FileReader("xmlfile.xml"));
-  parser.parse(input);
-  
-In this example a document is parsed from a file, but it is also 
-possible to parse a document from a URI by writing,
-
-  parser.parse("http://.../xmlfile.xml");
-
-To transform the input XML document, a call is made to the translet's
-transform() method. In order to do its work, the transform() method
-takes two arguments, (1) the DOMImpl object created from parsing
-the input XML document, and (2) an output handler. The output handler
-must implement the org.xml.sax.DocumentHandler interface.  You 
-have the option of: (1) writing your own class that implements 
-DocumentHandler, or (2) using our default class
-'com.sun.xslt.runtime.DefaultSAXOutputHandler' instead.  
-The source code for our DefaultSAXOutputHandler is included
-in this package in the com/sun/xslt/runtime directory. 
-This is a change from the previous releases of
-our compiler API. If you  wanted to create your own 
-output handler in previous releases, you would have write a class that 
-implemented the interface TransletOutputHandler. This change was made
-so that users could more easily plug in any SAX compliant output
-handler. To plug in the SAX compliant output handler,
-(whether it is a user written class or our DefaultSAXOutputHandler)
-into the transform() method, it must be wrapped in a
-TextOutput object first. 
-
-The Translet.transform() method may also take an array of output handlers. 
-In this case the transformation will be able to select which handler 
-to send output to by using the extension element <translet:output port="n"> 
-where 'n' is a 0-based index in the array of output handlers.
-
-Lets take a look at the code needed to carry out both of the options
-for passing the SAX output handler to the translet's transform() method:
-
-   (1) You would write your own output handler that implements
-       the org.xml.sax.DocumentHandler interface, pass this class
-       into our com.sun.xslt.runtime.TextOutput class which itself
-       implements the TransletOutputHandler interface.
-
-   (2) You would create an instance of the default SAX output handler,
-       com.sun.xslt.runtime.DefaultSAXOutputHandler, pass this
-       instance into our com.sun.xslt.runtime.TextOutput class which
-       itself implements the TransletOutputHandler interface.
-
-
-In option (1), we want to use a SAX compliant output handler that we write
-ourselves. In this case we create our Handler class, which implements 
-org.xml.sax.DocumentHandler:
-
-import org.xml.sax.DocumentHandler;
-
-// user supplied SAX Handler:
-class Handler implements DocumentHandler {
-    public void startDocument() throws SAXException {}
-
-    public void endDocument() throws SAXException {}
-
-    public void characters(char[] characters, int offset, int length)
-        throws SAXException
-    {
-        System.out.println(new String(characters, offset, length));
-    }
-    public void startElement(String elementName, AttributeList attrs)
-        throws SAXException {}
-    public void endElement(String elementName) throws SAXException {}
-    public void setDocumentLocator(Locator loc) {}
-    public void ignorableWhitespace(char[] characters, int offset, int length)
-        throws SAXException {}
-    public void processingInstruction(String target, String data)
-        throws SAXException {}
-}
-
-Now before we pass our handler to the transform() method, we wrap it
-in a TextOutput object (which implements the TransletOutputHandler
-interface for us).  Then given the instantiated translet class, 
-the transform method could be called as:
-
-	import com.sun.xslt.runtime.TextOutput;
-
-	DOMImpl dom;
-        ...
-        Handler saxHandler;
-        TextOutput textOutput;
-        try {
-            saxHandler = new Handler();
-            textOutput = new TextOutput(saxHandler);
-            translet.transform(dom, textOutput);
-        } catch (TransletException  e){
-	    ...
-        } catch (IOException  e){
-	    ...
-        }
-
-
-By using the TextOutput wrapper class, one can also control the character
-encoding. The TextOutput class has an additional constructor that takes
-the DocumentHandler and a String that describes the encoding, for example
-'textOutput' could have been created as:
-
-	textOutput = new TextOutput(saxHandler, "utf-8");
-
-Finally, option (2) is much like option (1) except you do not have
-to write your own DocumentHandler. We provide one by default. To use the
-default one, instantiate 'com.sun.xslt.runtime.DefaultSAXOutputHandler'
-rather than instantiating your own class (such as Handler above):
-
-	import com.sun.xslt.runtime.DefaultSAXOutputHandler;
-	import com.sun.xslt.runtime.TextOutput;
-
-	DefaultSAXOutputHandler defhandlr;
-	try {
-            defhandlr = new DefaultSAXOutputHandler(System.out, "utf-8");
-            translet.transform(dom, new TextOutput(defhandlr));
-        } catch (TransletException  e){
-	    ...
-        } catch (IOException  e){
-	    ...
-        }
-
-For a quick reference to the TextOutput and DefaultSAXOutputHandler
-constructors available, see the Appendix. 
-
-In the following sections, full code examples are shown.
-	
-Finally, if you want the transformation results in the DOM form:
-
-DOM result = new DOM();
-translet.transform(dom, result.getOutputDomBuilder());
-
-If the compiled stylesheet requires the values of global 
-parameters to be set, you should call addParameter() before 
-calling the transform() method.
-
- 
-2. FULL CODE EXAMPLE 1, XsltApp.java, uses a SAX DocumentHandler.
-	This example corresponds to option (1) in discussion above.
-------------------------------------------------------------------
-import java.io.FileReader;
-import java.io.IOException;
-import com.sun.xslt.dom.DOMImpl;
-import com.sun.xslt.runtime.TextOutput;
-import com.sun.xslt.Translet;
-import com.sun.xslt.TransletException;
-import com.sun.xml.parser.Parser;
-import org.xml.sax.AttributeList;
-import org.xml.sax.DocumentHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-
-
-// Create a SAX Output Handler
-class Handler implements DocumentHandler {
-    public void startDocument() throws SAXException {}
-
-    public void endDocument() throws SAXException {}
-
-    public void characters(char[] characters, int offset, int length)
-        throws SAXException
-    {
-        System.out.println(new String(characters, offset, length));
-    }
-
-    public void startElement(String elementName, AttributeList attrs)
-        throws SAXException {}
-
-    public void endElement(String elementName) throws SAXException {}
-
-    public void setDocumentLocator(Locator loc) {}
-
-    public void ignorableWhitespace(char[] characters, int offset, int length)
-        throws SAXException {}
-
-    public void processingInstruction(String target, String data)
-        throws SAXException {}
-
-}
-
-public class XsltApp {
-   public static void main(String[] args){
-        XsltApp app = new XsltApp();
-        app.run(args);
-   }
-
-   public void run(String[] args){
-        if(args.length != 2){
-                usage();
-        }
-        String inputFileName = args[0];
-        String transletName = args[1];
-
-        DOMImpl dom = new DOMImpl();
-        Parser parser = new Parser();
-        parser.setDocumentHandler(dom.getBuilder());
-        InputSource input = null;
-        try {
-            input = new InputSource(new FileReader(inputFileName));
-        } catch( java.io.FileNotFoundException e){
-            System.err.println("File " + inputFileName + " not found");
-            System.exit(1);
-        }
-
-        try {
-            parser.parse(input);
-        } catch (org.xml.sax.SAXException e){
-            System.err.println("Error: " + e);
-            System.exit(1);
-        } catch (IOException e){
-            System.err.println("Error: " + e);
-            System.exit(1);
-        }
-
-        Class transletPluggable = null;
-        try {
-            transletPluggable = Class.forName(transletName);
-        } catch (java.lang.ClassNotFoundException e){
-            System.err.println("Error: " + e);
-            System.exit(1);
-        }
-
-        Translet translet = null;
-        try {
-            translet = (Translet)transletPluggable.newInstance();
-        } catch (java.lang.Exception e){
-            System.err.println("Error instantiating pluggable translet");
-            System.exit(1);
-        }
-
-        Handler saxHandler;
-        TextOutput textOutput;
-        try {
-            saxHandler = new Handler();
-            textOutput = new TextOutput(saxHandler, "utf-8");
-            translet.transform(dom, textOutput);
-        } catch (TransletException  e){
-            System.err.println("Error: " + e);
-            System.exit(1);
-        } catch (IOException  e){
-            System.err.println("Error: " + e);
-            System.exit(1);
-        }
-   }
-
-   public void usage(){
-        System.out.println("Usage: \n" +
-                "     xsltapp <xml_file> <translet_name>\n\n" +
-                "     where <file> is xml source (e.g. play.xml). \n" +
-                "     and  <translet_name> is java class (e.g. play1). \n"
-        );
-        System.exit(1);
-   }
-}
-
-
-
-3. COMPILING AND RUNNING THE EXAMPLE:
----------------------------------------------------------------------
-
-To compile the example above, assuming you unpacked the code
-into the directory /tmp:
-
-javac -classpath "/tmp/xsltc/lib/xml.jar:/tmp/xsltc/lib/BCEL.jar:/tmp/xsltc
-/lib/xsltcrt.jar" XsltApp.java
-
-To run the example on xml document 'play.xml' and stylesheet 'play1.xsl':
-
-(1) compile the stylesheet:
-        xsltc play1.xsl
- 
-    this will produce the translet 'play1.class'.
-
-(2) run the translet with the XsltApp demo:
-
-java -classpath /tmp/xsltc/lib/xsltcrt.jar:/tmp/xsltc/lib/xml.jar:. XsltApp play
-.xml play1
-
-
- 
-4. FULL CODE EXAMPLE 2, DefaultRun.java
-	This example corresponds to option (2) in the discussion above.
-------------------------------------------------------------------
-See the source file for the class 'com.sun.xslt.runtime.DefaultRun',
-which is included in the src directory. It uses the 
-'DefaultSAXOutputHandler' approach.
-
-
-
-
-5. APPENDIX
-------------------------------------------------------------------
-
-TextOutput
-----------
-
-package com.sun.xslt.runtime;
-
-public final class TextOutput implements TransletOutputHandler {
-	public TextOutput(DocumentHandler handler) throws IOException;
-	public TextOutput(DocumentHandler handler, String encoding) throws
-		IOException;
-}
-
-
-DefaultSAXOutputHandler
------------------------
-package com.sun.xslt.runtime;
-
-public class DefaultSAXOutputHandler implements DocumentHandler{
-	public DefaultSAXOutputHandler(Writer writer) throws IOException;
-	public DefaultSAXOutputHandler(OutputStream out, String encoding)
-	    throws IOException;
-	public DefaultSAXOutputHandler(String filename, String encoding)
-            throws IOException;
-	...
-}
-
-
-
-------------------------------------------------------------
-END OF README
diff --git a/xdocs/sources/xsltc/README.xslt b/xdocs/sources/xsltc/README.xslt
deleted file mode 100644
index 3c0cbe8..0000000
--- a/xdocs/sources/xsltc/README.xslt
+++ /dev/null
@@ -1,97 +0,0 @@
-NAME
-	xslt - Sun XSLT runtime processor. 
-
-
-SYNOPSIS
-	xslt [-j <jarfile>] {-u <document_url> | <document>} <class> 
-             [<name1>=<value1> ...]
-
-
-DESCRIPTION
-	The Sun XSLT runtime processor is a Java-based tool for 
-	transforming XML document files using a translet (compiled 
-	stylesheet). 
-
-	The XSLT processor can be run on any platform including UNIX,
-	Windows, NT, Mac that supports Java, including a Palm Pilot
-	with J2ME CLDC (Java 2 Micro Edition, Connected Limited Device
-	Configuration).
-
-OPTIONS
-
-	The following options are supported:
-
-	-j <jarfile>
-		gets the translet <class> from the specified <jarfile>
-		instead of from the user's CLASSPATH.	
-
-	-u
-		Specifies that the XML <document> location will be a URI
-		such as 'http://myserver/hamlet.xml'.		
-
-
-OPERANDS
-
-	The following operands are supported:
-
-	<document>     		An XML document to be processed. 
-	<document_url>     	An XML document to be processed, specified
-				as a URL (See -u option above). 
-
-	<class>			The translet that will do the processing.
-				The translet may optionally take a set of 
-				global parameters specified as name-value 
-				pairs. A name-value pair uses the format
-				<name>=<value>.
-
-EXAMPLES
-	Example 1:  Processing an XML document.
-
-	example%  xslt hamlet.xml hamlet 
-
-	where the current working directory contains an XML document
-	'hamlet.xml' to be processed by the translet class 'hamlet'.
-	The translet would have been created initially using
-	xsltc to compile a XSLT stylesheet named 'hamlet.xsl'. 
-
-	Example 2:  Loading translet from a jar file. 
-
-	example%  xslt -j hamlet.jar hamlet.xml hamlet
-
-	In this case the translet class 'hamlet' is loaded from the
-	specified jar file, 'hamlet.jar' instead of from the user's
-	CLASSPATH.
-
-	Example 3: If the translet defined global parameters, then 
-	these can be passed on the command line to the runtime processor
-	as a space separated list of name-value pairs using the format
-	<name>=<value>. For example,
-
-	example%  xslt hamlet.xml hamlet speaker=HAMLET 'scene=SCENE IV'
-
-	Notice that the second name-value pair had to be quoted due to 
-	the intervening space in the value "SCENE IV".
-
-	example% xslt -u http://zarya.east/test.xml hamlet
-
-	where the xml document 'test.xml' can be specified as a URL.
-
-FILES
-	file.xml		input XML document to be processed. 
-	file.class		byte code file.
-	file.jar		java archive file.
-	
-SEE ALSO
-	xsltc, jar.
-
-BUGS
-	Refer to the top-level README included in this release.
-
-AUTHORS
-	Jacek Ambroziak,                       jacek.ambroziak@East.Sun.COM
-	Santiago Pericas-Geertsen,    santiago.pericasgeertsen@East.Sun.COM 
-
-	Contributors:
-
-	Morten Jorgensen		   morten.jorgensen@Ireland.Sun.COM
-	G. Todd Miller,                            todd.miller@East.Sun.COM
diff --git a/xdocs/sources/xsltc/README.xsltc b/xdocs/sources/xsltc/README.xsltc
deleted file mode 100644
index 50c77d4..0000000
--- a/xdocs/sources/xsltc/README.xsltc
+++ /dev/null
@@ -1,116 +0,0 @@
-NAME
-	xsltc - Sun XSLT Compiler 
-
-
-SYNOPSIS
-	xsltc [-o <output>] [-d <directory>] [-j <jarfile>] 
-	      [-p <package name>]
-              [-u] <stylesheet>... 
-
-
-DESCRIPTION
-	The Sun XSLT Compiler is a Java-based tool for compiling XSLT
-	stylesheets into lightweight and portable Java byte codes 
-	called translets.  
-
-	The XSLT Compiler can be run on any platform including UNIX,
-	Windows, NT, Mac that supports Java 1.2.x or later. The generated
-	translets can be run on any platform that supports a Java
-	Runtime Environment, including a Palm Pilot with J2ME CLDC 
-	(Java 2 Micro Edition, Connected Limited Device Configuration).
-
-OPTIONS
-
-	The following options are supported:
-
-	-o <output>
-		Changes the name of the generated translet class.
-		By default, the translet class would be named
-		<stylesheet>, if -o <output> is set, then the 
-		translet class would be named <output>. Translet
-		class files are written as .class files.
-
-	-d <directory>
-		Changes the destination directory. By default, any
-		translet class files generated would be placed in 
-		the current working directory. If -d <directory> 
-		is specified, the files would be output to <directory>.
-
-	-j <jarfile>
-		Outputs all generated translet class files into a 
-		jar file named <jarfile>.jar. When this option is 
-		used only a jar file will be output.
-
-	-p <package name>
-		Specify a package name for all generated translet
-		classes.		
-
-	-u
-		Specifies that <stylesheet> location will be a URI
-		such as 'http://myserver/stylesheet1.xsl'.		
-
-
-OPERANDS
-
-	The following operand is supported:
-
-	<stylesheet>    A path name of an input stylesheet file. 
-
-
-EXAMPLES
-	Example 1:  Creating a translet from stylesheet 'hamlet.xsl'.
-
-	example%  xsltc hamlet.xsl
-
-	would produce a set of class files such as 'hamlet.class',
-	'hamlet$0.class', 'hamlet$1.class'.
-
-	Example 2:  Outputting all classes into a jar file.
-
-	example%  xsltc -j hamlet.jar hamlet.xsl
-
-	would produce a single jar file output, 'hamlet.jar' which would
-	contain all the generated .class files for the hamlet translet.
-
-	Example 3: Naming the class file.  
-
-	example%  xsltc -o newhamlet hamlet.xsl
-
-	would produce a set of class files such as 'newhamlet.class',
-	'newhamlet$0.class', etc rather than the default which would 
-	be 'hamlet.class', 'hamlet$0.class', etc.	
-
-	Example 4: Multiple stylesheets. 
-
-	example%  xsltc hamlet1.xsl hamlet2.xsl hamlet3.xsl
-
-	would produce a set of class files derived from the three
-	stylesheets. 
-
-	Example 5: Package Specification.
-
-	example% xsltc -p com.mycompany.translets hamlet.xsl
-
-	would produce a set of class files such as 
-	'com/mycompany/translets/hamlet.class',
-	'com/mycompany/translets/hamlet$0.class', etc.
-
-FILES
-	file.xsl		input XSLT stylesheet
-	file.class		byte code file
-	file.jar		java archive file
-	
-SEE ALSO
-	xslt, jar.
-
-BUGS
-	Refer to the top-level README included in this release.
-
-AUTHORS
-	Jacek Ambroziak,                       jacek.ambroziak@East.Sun.COM
-	Santiago Pericas-Geertsen,    santiago.pericasgeertsen@East.Sun.COM 
-
-	Contributors:
-
-	Morten Jorgensen		   morten.jorgensen@Ireland.Sun.COM
-	G. Todd Miller,                            todd.miller@East.Sun.COM
diff --git a/xdocs/sources/xsltc/README2 b/xdocs/sources/xsltc/README2
deleted file mode 100644
index c7cd61f..0000000
--- a/xdocs/sources/xsltc/README2
+++ /dev/null
@@ -1,86 +0,0 @@
-README.APACHE
-=====================================================================
-Entire source tree and support packages are located in the single jar
-file 'apache.jar'. 
-
-
-Installation
--------------
-
-(1) create directory [Root], unpack 'apache.jar' there.
-	ex) % cd /tmp; mkdir xsltc_apache 
-	    % cd xsltc_apache
-        copy apache.jar to xsltc_apache directory
-	    % jar xvf apache.jar 
-	cleanup
-	    % rm -rf META-INF apache.jar
-
-    Unpacking the jar file will result in the following tree:
-
-	[Root]
-	  External/
-	    BCEL/                ... contains BCEL.jar
-	    JLex/                ... contains JLex.jar
-	    java_cup/            ... contains java_cup.jar, runtime/runtime.jar
-	    xml-tr2/             ... contains xml.jar
-	  bin/
-	    xslt
-	    xsltc
-	  doc/
-	    api/                 ... contains javadoc for api
-	  src/
-	    GNUmakefile
-	    GNUmakefile.allinc
-	    docs/
-	      LICENSE.txt
-	      Message.txt
-	      README
-	      README.api
-	      README.xslt
-	      README.xsltc
-	      XSLTCprn_lg.txt*
-	      xsltcA3.txt
-	    org/
-	      apache/
-		xalan/
-		  xsltc/
-		     (src tree)  ... all the source code files
-
-
-    The 'src tree' is a hierarchy of the following packages:
-	org.apache.xalan.xsltc
-	org.apache.xalan.xsltc.compiler
-	org.apache.xalan.xsltc.compiler.util
-	org.apache.xalan.xsltc.dom
-	org.apache.xalan.xsltc.runtime
-	org.apache.xalan.xsltc.util
-	org.apache.xalan.xsltc.util.getopt
-
-
-(2) make bin programs executable
-	    % chmod +x bin/*
-
-(3) set env variable to point to top of directory [Root]
-	ex) % setenv XSLT /tmp/xsltc_apache
-
-(4) compile sources (uses gnu make and the provides 'GNUmakefile'). This
-    will create java classes in [Root]/classes, e.g. /tmp/xsltc_apache/classes.
-    (No need to set your CLASSPATH variable.)
-    
-	ex) % cd src; gmake again
-
-    Note: the 'again' target forces everything to be built from scratch,
-    including the java_cup source files. Subsequent builds can be done
-    using the 'classes' target. 
-
-(5) make the javadoc
-	ex) % gmake jdoc
-
-(6) add bin directory to your executable path, 
-	ex) % set path=($XSLT/bin $path)
-
-(7) test distribution, given a stylesheet (test.xsl) and an input xml doc
-    (test.xml), and be sure current working directory (.) is in your
-    CLASSPATH.
- 	% xsltc test.xsl		... creates translet, test.class
-	% xslt test.xml test		... runs translet on xml input	
diff --git a/xdocs/sources/xsltc/all_namespaces.gif b/xdocs/sources/xsltc/all_namespaces.gif
deleted file mode 100644
index 38034b7..0000000
Binary files a/xdocs/sources/xsltc/all_namespaces.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/cast_expression.gif b/xdocs/sources/xsltc/cast_expression.gif
deleted file mode 100644
index 9bb0090..0000000
Binary files a/xdocs/sources/xsltc/cast_expression.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/compiler_AST.gif b/xdocs/sources/xsltc/compiler_AST.gif
deleted file mode 100644
index 69871b6..0000000
Binary files a/xdocs/sources/xsltc/compiler_AST.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/compiler_DOM.gif b/xdocs/sources/xsltc/compiler_DOM.gif
deleted file mode 100644
index a056cbb..0000000
Binary files a/xdocs/sources/xsltc/compiler_DOM.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/compiler_architecture.gif b/xdocs/sources/xsltc/compiler_architecture.gif
deleted file mode 100644
index e57d661..0000000
Binary files a/xdocs/sources/xsltc/compiler_architecture.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/dom_namespace1.gif b/xdocs/sources/xsltc/dom_namespace1.gif
deleted file mode 100644
index 2b9418e..0000000
Binary files a/xdocs/sources/xsltc/dom_namespace1.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/dom_namespace2.gif b/xdocs/sources/xsltc/dom_namespace2.gif
deleted file mode 100644
index 7fce24d..0000000
Binary files a/xdocs/sources/xsltc/dom_namespace2.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/dom_namespace3.gif b/xdocs/sources/xsltc/dom_namespace3.gif
deleted file mode 100644
index d62b9b8..0000000
Binary files a/xdocs/sources/xsltc/dom_namespace3.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/index.xml b/xdocs/sources/xsltc/index.xml
deleted file mode 100644
index cbe1878..0000000
--- a/xdocs/sources/xsltc/index.xml
+++ /dev/null
@@ -1,118 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-<s1 title="Introduction to XSLTC">
-    <p><ref>Design documents by <jump href="mailto:morten@xml.apache.org">Morten J&oslash;rgensen</jump> 
-    - updated 06.03.2001</ref></p>
-<ul>
-  <li><link anchor="compiler">Compiler design</link></li>
-  <li><link anchor="runtime">Runtime library/DOM design</link></li>
-  <li><link idref="xsltc_trax">Integration of the Translet API and TrAX</link> (by G Todd Miller)</li> 
-   
-</ul>
-<p>See also <jump href="../xsltc_usage.html">Using XSLTC</jump>.</p>
-<anchor name="compiler"/>
- <s2 title="Compiler design">
-  <p><link idref="xsltc_compiler"><img src="compiler_architecture.gif" alt="compiler_architecture.gif"/></link></p>
-  <p><ref>Figure 1: Compiler architecture overview</ref></p>
-  <p>Click on the picture to jump to the overall design document for the compiler.</p>
-    <p>Each XSL element/function and XPath expression/pattern is represented by
-  its own class in the Abstract Syntax Tree (AST). Some of these classes have
-  their own design documents (I am working on the rest of them):</p>
-    <s3 title="XSL elements">
-        <ul>
-          <li>
-            <link idref="xsl_whitespace_design">&lt;xsl:preserve-space&gt;/&lt;xsl:strip-space&gt;</link>
-          </li>
-          <li>
-            <link idref="xsl_sort_design">&lt;xsl:sort&gt;</link>
-          </li>
-          <li>
-            <link idref="xsl_key_design">&lt;xsl:key&gt;</link>
-          </li>
-          <li>
-            <link idref="xsl_comment_design">&lt;xsl:comment&gt;/&lt;xsl:message&gt;</link>
-          </li>
-        </ul>
-        </s3>
-        <s3 title="XSL functions">
-        <ul>
-          <li>
-            <link idref="xsl_key_design">key()</link>
-          </li>
-          <li>
-            <link idref="xsl_lang_design">lang()</link>
-          </li>
-          <li>
-            <link idref="xsl_unparsed_design">unparsed-entity-uri()</link>
-          </li>
-        </ul>
-  </s3>
-  </s2><anchor name="runtime"/>
-  <s2 title="Runtime library/DOM design">
-  <p><link idref="xsltc_runtime"><img src="runtime_architecture.gif" alt="runtime_architecture.gif"/></link></p>
-  <p><ref>Figure 2: Runtime library architecture overview</ref></p>
-  <p>Click on the picture to jump to the overall design document for the XSLTC
-  runtime library. This document describes the structure of the compiled
-  translet as well as the translet runtime library.</p> 
-  <p>The <link idref="xsltc_dom">Internal DOM</link> describes the components and structure of the internal DOM,
-   support for DOM2 navigation, the DOM adapter, DOM multiplexer, and DOM builder.</p>
-    <p><link idref="xsltc_namespace">Namespaces</link> explains how XSLTC (including the compiler) handles
-     namespaces.</p>   
-  </s2>
-</s1>
\ No newline at end of file
diff --git a/xdocs/sources/xsltc/key_relations.gif b/xdocs/sources/xsltc/key_relations.gif
deleted file mode 100644
index 946d4dc..0000000
Binary files a/xdocs/sources/xsltc/key_relations.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/match_namespace1.gif b/xdocs/sources/xsltc/match_namespace1.gif
deleted file mode 100644
index 4d0056d..0000000
Binary files a/xdocs/sources/xsltc/match_namespace1.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/match_namespace2.gif b/xdocs/sources/xsltc/match_namespace2.gif
deleted file mode 100644
index db10277..0000000
Binary files a/xdocs/sources/xsltc/match_namespace2.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/namespace_stack.gif b/xdocs/sources/xsltc/namespace_stack.gif
deleted file mode 100644
index a469d23..0000000
Binary files a/xdocs/sources/xsltc/namespace_stack.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/output_namespaces1.gif b/xdocs/sources/xsltc/output_namespaces1.gif
deleted file mode 100644
index 5068fc2..0000000
Binary files a/xdocs/sources/xsltc/output_namespaces1.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/output_namespaces2.gif b/xdocs/sources/xsltc/output_namespaces2.gif
deleted file mode 100644
index aaf7cf7..0000000
Binary files a/xdocs/sources/xsltc/output_namespaces2.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/pattern_objects.gif b/xdocs/sources/xsltc/pattern_objects.gif
deleted file mode 100644
index ea07393..0000000
Binary files a/xdocs/sources/xsltc/pattern_objects.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/runtime_architecture.gif b/xdocs/sources/xsltc/runtime_architecture.gif
deleted file mode 100644
index 9c8e2e7..0000000
Binary files a/xdocs/sources/xsltc/runtime_architecture.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/runtime_type_mapping.gif b/xdocs/sources/xsltc/runtime_type_mapping.gif
deleted file mode 100644
index 769a993..0000000
Binary files a/xdocs/sources/xsltc/runtime_type_mapping.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/sort_objects.gif b/xdocs/sources/xsltc/sort_objects.gif
deleted file mode 100644
index 0ec7cbb..0000000
Binary files a/xdocs/sources/xsltc/sort_objects.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/type_mapping.gif b/xdocs/sources/xsltc/type_mapping.gif
deleted file mode 100644
index bb3cbb9..0000000
Binary files a/xdocs/sources/xsltc/type_mapping.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/type_mappings.gif b/xdocs/sources/xsltc/type_mappings.gif
deleted file mode 100644
index 31f888c..0000000
Binary files a/xdocs/sources/xsltc/type_mappings.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/typecast.gif b/xdocs/sources/xsltc/typecast.gif
deleted file mode 100644
index 2a9c168..0000000
Binary files a/xdocs/sources/xsltc/typecast.gif and /dev/null differ
diff --git a/xdocs/sources/xsltc/xsl_comment_design.xml b/xdocs/sources/xsltc/xsl_comment_design.xml
deleted file mode 100644
index fcc0fef..0000000
--- a/xdocs/sources/xsltc/xsl_comment_design.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-  <s1 title="&lt;xsl:comment&gt; / &lt;xsl:message&gt;">
-  <ul>
-  <li><link anchor="functionality">Functionality</link></li>
-  <li><link anchor="implementation">Implementation</link></li>  
-  </ul>
-<anchor name="functionality"/>
-<s2 title="Functionality">
-
-  <p>The <code>&lt;xsl:comment&gt;</code> element is used to insert XML comments
-  into the result document. The comment is inserted as follows in the XSL
-  stylesheet:</p>
-
-  <source>    &lt;element&gt;
-      &lt;xsl:comment&gt;This is a comment!&lt;/xsl:comment&gt;
-    &lt;/element&gt;</source>
-
-  <p>and it will be output in the result document as follows:</p>
-
-  <source>    &lt;element&gt;
-      &lt;!-- This is a comment! --&gt;
-    &lt;/element&gt;</source>
-
-  <p>The <code>&lt;xsl:message&gt;</code> element is used to send messages to
-  who/whatever is performing the transformation. The message can be displayed
-  in a terminal, a dialog box, etc. The  <code>&lt;xsl:message&gt;</code> element
-  is used in the same way as the <code>&lt;xsl:comment&gt;</code> element,
-  however the message is <em>not</em> output in the result document.</p>
-
-  <p>The <code>&lt;xsl:message&gt;</code> element has an attribute
-  <code>"terminate"</code> which can be used to terminate the transformation at any
-  given stage. This is useful when using message to give information about
-  illegal values in the input document.</p>
-</s2><anchor name="implementation"/>
-<s2 title="Implementation">
-
-  <p>The output handler class has a method for outputting comments in the
-  output document and messages to the operator. The code compiled for a
-  comment gathers all text that goes into the comment in a StringValueHandler
-  object, retrieves the full text string from this handler, and then finally
-  sends it to the output handler. Similarly the code compiled for a message
-  will simply send the message to the output handler in use.</p>
-
-  <p>Messages will be output to the terminal (stdout) when a transformation
-  is run in a terminal. The message will be output before the beginning of the
-  output document. Messages will be shown in a dialog box if a transformation
-  is run in an applet.</p>
-
-  <p><code>&lt;xsl:message&gt;</code> elements that use the <code>"terminate"</code>
-  attribute to abort transformations cause an exception to be thrown. A
-  RuntimeException is used for this, and the exception text is:</p>
-  <p><code>Termination forced by an xsl:message instruction</code></p>
-  </s2>
-</s1>  
\ No newline at end of file
diff --git a/xdocs/sources/xsltc/xsl_key_design.xml b/xdocs/sources/xsltc/xsl_key_design.xml
deleted file mode 100644
index aa137f6..0000000
--- a/xdocs/sources/xsltc/xsl_key_design.xml
+++ /dev/null
@@ -1,214 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-  <s1 title="&lt;xsl:key&gt; / key() / KeyPattern">
-  <ul>
-    <li><link anchor="functionality">Functionality</link></li>
-    <li><link anchor="implementation">Implementation</link></li>    
-  </ul>
-  <anchor name="functionality"/>
-  <s2 title="Functionality">
-
-  <p>The <code>&lt;xsl:key&gt;</code> element is a top-level element that can be
-  used to define a named index of nodes from the source XML tree(s). The
-  element has three attributes:</p>
-
-  <ul>
-    <li>
-      <code>name</code> - the name of the index
-    </li>
-    <li>
-      <code>match</code> - a pattern that defines the nodeset we want
-      indexed
-    </li>
-    <li>
-      <code>use</code> - an expression that defines the value to be used
-      as the index key value.
-    </li>
-  </ul>
-
-  <p>A named index can be accessed using either the <code>key()</code> function or
-  a KeyPattern. Both these methods address the index using its defined name
-  (the "name" attribute above) and a parameter defining one or more lookup
-  values for the index. The function or pattern returns a node set containing
-  all nodes in the index whose key value match the parameter's value(s):</p>
-
-  <source>
-    &lt;xsl:key name="book-author" match="book" use="author"/&gt;
-    :
-    :
-    &lt;xsl:for-each select="key('book-author', 'Mikhail Bulgakov')"&gt;
-      &lt;xsl:value-of select="author"/&gt;
-      &lt;xsl:text&gt;: &lt;/xsl:text&gt;
-      &lt;xsl:value-of select="author"/&gt;
-      &lt;xsl:text&gt;&amp;#xa;&lt;/xsl:text&gt;
-    &lt;/xsl:for-each&gt;
-  </source>
-
-  <p>The KeyPattern can be used within an index definition to create unions
-  and intersections of node sets:</p>
-
-<source>
-    &lt;xsl:key name="cultcies" match="farmer | fisherman" use="name"/&gt;
-</source>
-
-  <p>This could of course be done using regular <code>&lt;xsl:for-each&gt;</code>
-  and <code>&lt;xsl:select&gt;</code> elements. However, if your stylesheet
-  accesses the same selection of nodes over and over again, the transformation
-  will be much more efficient using pre-indexed keys as shown above.</p>
- </s2><anchor name="implementation"/>
- <s2 title="Implementation">
-
-  <p>AbstractTranslet has a global hashtable that holds an index for each named
-  key in the stylesheet (hashing on the "name" attribute of xsl:key).
-  AbstractTranslet has a couple of public methods for inserting and retrieving
-  data from this hashtable:</p>
-
-<source>
-    public void buildKeyIndex(String name, int nodeID, String value);
-    public KeyIndex KeyIndex getKeyIndex(String name);
-</source>
-
-  <p>The Key class compiles code that traverses the input DOM and extracts
-  nodes that match some given parameters (the <code>"match"</code> attribute of the
-  <code>&lt;xsl:key&gt;</code> element). A new element is inserted into the named
-  key's index. The nodes' DOM index and the value translated from the 
-  <code>"use"</code> attribute of the <code>&lt;xsl:key&gt;</code> element are stored
-  in the new entry in the index.</p>
-
-  <p>The index itself is implemented in the <code>KeyIndex</code> class.
-  The index has an hashtable with all the values from the matching nodes (the
-  part of the node used to generate this value is the one specified in the
-  <code>"use"</code> attribute). For every matching value there is a Vector
-  holding a list of all node indexes for which this value gives a match:</p>
-
-  <p><img src="key_relations.gif" alt="key_relations.gif"/></p>
-  <p><ref>Figure 1: Indexing tables</ref></p>
-
-  <p>The <code>KeyIndex</code> class implements the <code>NodeIterator</code>
-  interface, so that it can be returned directly by the implementation of the
-  <code>key()</code> function. This is how the index generated by
-  <code>&lt;xsl:key&gt;</code> and the node-set returned by the <code>key()</code> and
-  KeyPattern are tied together. You can see how this is done in the
-  <code>translate()</code> method of the <code>KeyCall</code> class.</p>
-
-  <p>The <code>key()</code> function can be called in two ways:</p>
-
-<source>
-    key('key-name','value')
-    key('key-name','node-set')
-</source>
-
-  <p>The first parameter is always the name of the key. We use this value to
-  lookup our index from the _keyIndexes hashtable in AbstractTranslet:</p>
-
-<source>
-    il.append(classGen.aloadThis());
-    _name.translate(classGen, methodGen);
-    il.append(new INVOKEVIRTUAL(getKeyIndex));
-</source>
-
-  <p>This compiles into a call to
-  <code>AbstractTranslet.getKeyIndex(String name)</code>, and it leaves a
-  <code>KeyIndex</code> object on the stack. What we then need to do it to
-  initialise the <code>KeyIndex</code> to give us nodes with the requested value.
-  This is done by leaving the <code>KeyIndex</code> object on the stack and pushing
-  the <code>"value"</code> parameter to <code>key()</code>, before calling
-  <code>lookup()</code> on the index:</p>
-
-<source>
-    il.append(DUP);  // duplicate the KeyIndex obejct before return
-    _value.translate(classGen, methodGen);
-    il.append(new INVOKEVIRTUAL(lookup));
-</source>
-
-  <p>This compiles into a call to <code>KeyIndex.lookup(String value)</code>. This
-  will initialise the <code>KeyIndex</code> object to return nodes that match the
-  given value, so the <code>KeyIndex</code> object can be left on the stack when
-  we return. This because the <code>KeyIndex</code> object implements the
-  <code>NodeIterator</code> interface.</p>
-
-  <p>This matter is a bit more complex when the second parameter of
-  <code>key()</code> is a node-set. In this case we need to traverse the nodes in
-  the set and do a lookup for each node in the set. What I do is this:</p>
-
-  <ul>
-    <li>
-      construct a <code>KeyIndex</code> object that will hold the return node-set
-    </li>
-    <li>
-      find the named <code>KeyIndex</code> object from the hashtable in
-      AbstractTranslet
-    </li>
-    <li>
-      get an iterator for the node-set and do the folowing loop:</li>
-      <ul>
-        <li>get string value for current node</li>
-        <li>do lookup in KeyIndex object for the named index</li>
-        <li>merge the resulting node-set into the return node-set</li>
-      </ul>
-    <li>
-      leave the return node-set on stack when done
-    </li>
-  </ul>
-
-  <p>The only work that remains is to update the <code>merge()</code> method of
-  the <code>KeyIndex</code> class so that it eliminates duplicate nodes in the
-  resulting node-set.</p>
-  </s2>
-</s1>
diff --git a/xdocs/sources/xsltc/xsl_lang_design.xml b/xdocs/sources/xsltc/xsl_lang_design.xml
deleted file mode 100644
index b8c0bf0..0000000
--- a/xdocs/sources/xsltc/xsl_lang_design.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-  <s1 title="lang() function">
-  <ul>
-    <li><link anchor="functionality">Functionality</link></li>
-    <li><link anchor="implementation">Implementation</link></li>    
-  </ul>
-  <anchor name="functionality"/>
-  <s2 title="Functionality">
-
-  <p>The <code>xml:lang</code> can be used to determine the language for a node or
-  a node-set. The attribute can be used to store language-specific data in an
-  XML document:</p>
-
-  <source>
-    &lt;phrases&gt;
-      &lt;greeting xml:lang="en"&gt;Hello!&lt;/greeting&gt;
-      &lt;greeting xml:lang="no"&gt;Hei!&lt;/greeting&gt;
-      &lt;greeting xml:lang="fr"&gt;Salut!&lt;/greeting&gt;
-      &lt;greeting xml:lang="es"&gt;Hola!&lt;/greeting&gt;
-      &lt;greeting xml:lang="de"&gt;Sweinhund!&lt;/greeting&gt;
-    &lt;/phrases&gt;
-  </source>
-
-  <p>The XSL stylesheet can use the <code>lang()</code> function to select the
-  element with the desired language:</p>
-
-  <source>
-    &lt;xsl:template match="greeting"&gt;
-      &lt;xsl:if test="lang("de")&gt;
-        &lt;xsl:value-of select="."/&gt;
-        &lt;xsl:text&gt; Grossglucklicher wunche!&lt;/xsl:text&gt;
-      &lt;/xsl:if&gt;
-    &lt;/xsl:template&gt;
-  </source>
-</s2> <anchor name="implementation"/>
-<s2 title="Implementation">
-
-  <p>The DOM interface has been given a method that returns the language for
-  a given node. The language is returned as a string (on whatever format is
-  used in the XML document - should be iso), and may be null if no language is
-  defined.</p>
-
-  <source>
-    public String DOM.getLanguage(int node);
-  </source>
-
-  <p>The BasisLibrary class has a static method that will compare the language
-  of the context node with some other language and return the result as a
-  boolean.</p>
-
-  <source>
-    public static boolean BasisLibrary.testLanguage(String language, DOM dom, int node);
-  </source>
-
-  <p>The compiled code for the <code>lang()</code> method calls this method in the
-  BasisLibrary and leaves the result on the stack for the calling element.</p>
-  </s2>
-</s1>
diff --git a/xdocs/sources/xsltc/xsl_sort_design.xml b/xdocs/sources/xsltc/xsl_sort_design.xml
deleted file mode 100644
index 6dda3a4..0000000
--- a/xdocs/sources/xsltc/xsl_sort_design.xml
+++ /dev/null
@@ -1,211 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-  <s1 title="&lt;xsl:sort&gt;">
-  <ul>
-    <li><link anchor="functionality">Functionality</link></li>
-    <li><link anchor="sort-class">The Sort class</link></li>
-    <li><link anchor="sortingiterator-class">The SortingIterator class</link></li>
-    <li><link anchor="nodesortrecord-class">The NodeSortRecord class</link></li>    
-    <li><link anchor="nodesortrecordfactory-class">The NodeSortRecordFactory class</link></li>
-  </ul>
-  
-  <anchor name="functionality"/>
-  <s2 title="Functionality">
-
-  <p>The <code>&lt;xsl:sort&gt;</code> element is used to define a sort key which
-  specifies the order in which nodes selected by either
-  <code>&lt;xsl:apply-templates&gt;</code> or <code>&lt;xsl:for-each&gt;</code> are
-  processed. The nodes can be sorted either in numerical or alphabetic order,
-  and the alphabetic order may vary depeinding on the language in use. The
-  nodes can be sorted either in ascending or descending order.</p>
-
-  </s2><anchor name="sort-class"/>
-  <s2 title="The Sort class">
-
-  <p>Static methods of the Sort class is responsible for generating the
-  necessary code for invoking SortingIterators under
-  <code>&lt;xsl:apply-templates&gt;</code> and <code>&lt;xsl:for-each&gt;</code>
-  elements. Both these elements can have several <code>&lt;xsl:sort&gt;</code>
-  child nodes defining primary, secondary, teriary, etc. keys. The code for
-  <code>&lt;xsl:apply-templates&gt;</code> and <code>&lt;xsl:for-each&gt;</code>
-  create  vectors containg a Sort object for each sort key. The object methods
-  of the Sort object encapsulate a container for key-specific data (such as the
-  sort key itself, sort order, sort type, and such) while the static methods
-  take a vector of Sort objects and generate the actual code.</p>
-
-  <p>The <code>translate()</code> method of the Sort object is never called. The
-  vectors containing the Sort objects for a <code>&lt;xsl:apply-templates&gt;</code>
-  or <code>&lt;xsl:for-each&gt;</code> element are instead passed to the static
-  <code>translateSortIterator()</code> method. This method compiles code that
-  instanciates a SortingIterator object that will pass on a node-set in a
-  specific order to the code handling the <code>&lt;xsl:apply-templates&gt;</code>
-  or <code>&lt;xsl:for-each&gt;</code> element.</p>
-
-  </s2><anchor name="sortingiterator-class"/>
-  <s2 title="The SortingIterator class">
-
-  <p>The SortingIterator class is responsible for sorting nodes encapsulated in
-  sort obects. These sort objects must be of a class inheriting from
-  NodeSortRecord, a the SortingIterator object needs a factory object providing
-  it with the correct type of objects:</p>
-
-  <p><img src="sort_objects.gif" alt="sort_objects.gif"/></p>
-  <p><ref>Figure 1: SortingIterator</ref></p>
-
-  <p>The SortingIterator class is fairly dumb and leaves much of the work to the
-  NodeSortRecord class. The iterator gets the NodeSortRecords from the factory
-  object and sorts them using quicksort and calling <code>compareTo()</code> on
-  pairs of NodeSortRecord objects.</p>
-
-  </s2><anchor name="nodesortrecord-class"/>
-  <s2 title="The NodeSortRecord class">
-
-  <p>The static methods in the Sort class generates a class inheriting from
-  NodeSortRecord, with the following overloaded methods:</p>
-
-  <ul>
-    <li><em>Class Constructor</em></li>
-      <ul><li>The class constructor is overloaded to create sort-key global
-      tables, such as an array containing the sort order for all the sort keys
-      and another array containg all the sort types. Different sort order/types
-      can be specified for the different levels of sort keys, but we assume that
-      the same language is used for all levels.</li></ul>
-      
-    <li><code>extractValueFromDOM(int level)</code></li>
-      <ul><li>This method is called by the SortingIterator object to extract the
-      value for a specific sort key for a node. The SortingIterator will only
-      use this method once and will cache the returned value for later use. The
-      method will only be called if absultely necessary.</li></ul>
-
-    <li><code>compareType(int level)</code></li>
-      <ul><li>This method returns the sort type for one sort key level. Returns
-      either <code>COMPARE_STRING</code> or <code>COMPARE_NUMERIC</code>.</li></ul>
-    
-    <li><code>sortOrder(int level)</code></li>
-      <ul><li>This method returns the sort order for one sort key level. Returns
-      either <code>COMPARE_ASCENDING</code> or <code>COMPARE_DESCENDING</code></li></ul>
-    
-    <li><code>getCollator(int level)</code></li>
-      <ul><li>This method returns a Collator object for language-specific
-      string comparisons. The same Collator is used for all levels of the key.
-      </li></ul> 
-  </ul>
-
-  <p>The <code>compareTo()</code> method of the NodeSortRecord base class deserves
-  a bit of attention. It takes its own node (from the this pointer) and another
-  node and compares, if necessary, the values for all sort keys:</p>
-
-  <source>
-    /**
-     * Compare this sort element to another. The first level is checked first,
-     * and we proceed to the next level only if the first level keys are
-     * identical (and so the key values may not even be extracted from the DOM)
-     */
-    public int compareTo(NodeSortRecord other) {
-	int cmp;
-    
-	for (int level=0; level&lt;_levels; level++) {
-	    
-	    // Compare the two nodes either as numeric or text values
-	    if (compareType(level) == COMPARE_NUMERIC) {
-		final Double our = numericValue(level);
-		final Double their = other.numericValue(level);
-		if (our == null) return(-1);
-		if (their == null) return(1);
-		cmp = our.compareTo(their);
-	    }
-	    else {
-		String our = stringValue(level);
-		String their = other.stringValue(level);
-		if (our == null) return(-1);
-		if (their == null) return(1);
-		cmp = getCollator().compare(our,their);
-	    }
-	    
-	    // Return inverse compare value if inverse sort order
-	    if (cmp != 0) {
-		if (sortOrder(level) == COMPARE_DESCENDING)
-		    return(0 - cmp);
-		else
-		    return(cmp);
-	    }
-	    
-	}
-	return(0);
-    }
-  </source>
-
-  <p>The two methods <code>stringValue(int level)</code> and 
-  <code>numericValue(int level)</code> return values for one level of the sort key
-  of a node. These methods cache these values after they are first read so that
-  the <code>DOM.getNodeValue()</code> is only called once. Also, the algorithm
-  used for these two methods assure that <code>DOM.getNodeValue()</code> is only
-  called when needed. The value for a node's secondary sort key is never
-  retrieved if the node can be uniquely identified by its primary key.</p>
-
-  </s2><anchor name="nodesortrecordfactory-class"/>
-  <s2 title="The NodeSortRecordFactory class">
-
-  <p>After the static methods of the Sort class has generated the new class for
-  sort objects it generates code that instanciates a new NodeSortRecordFactory
-  object. This object is passed as a parameter to SortingIterators constructor
-  and is used by the iterator to generate the necessary sort objects.</p>
-
-  </s2>
-</s1>
diff --git a/xdocs/sources/xsltc/xsl_unparsed_design.xml b/xdocs/sources/xsltc/xsl_unparsed_design.xml
deleted file mode 100644
index c74d749..0000000
--- a/xdocs/sources/xsltc/xsl_unparsed_design.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-  <s1 title="unparsed-entity-uri()">
-  <ul>
-    <li><link anchor="functionality">Functionality</link></li>
-    <li><link anchor="implementation">Implementation</link></li>
-  </ul>
-  
-  <anchor name="functionality"/>
-  <s2 title="Functionality">
-
-
-  <p>The <code>unparsed-entity-uri()</code> function gives access to declarations
-  of unparsed entities in the DTD of the source document. If the DTD contains
-  the declaration:</p>
-
-  <source>
-    &lt;!ENTITY mom-picture SYSTEM "http://www.home.com/mom.jpg" NDATA JPEG&gt;
-  </source>
-
-  <p>the expression <code>unparsed-entity-uri('mom-picture')</code> returns an
-  URI for the file <code>mom.jpg</code>.</p>
-
-  </s2><anchor name="implementation"/>
-  <s2 title="Implementation">
-
-  <p>Unparsed entities must be gathered from the XML input document at the time
-  when the DOM is built. To achieve this our parser must parse the document DTD
-  (if any) and store all data of type NDATA (not XML data) in a
-  hashtable in the AbstractTranslet object. All the compiled code for this
-  function needs to do is call a method in the translet for retrieving the
-  value for the requested element:</p>
-
-  <source>
-    public String AbstractTranslet.getUnparsedEntity(String entityName);
-  </source>
-
-  <p>The translet will use the supplied <code>entityName</code> to look up the
-  value in the hashtable and then leave the string value on the stack for the
-  element that called <code>lang()</code>.</p>
-  </s2>
-</s1>
diff --git a/xdocs/sources/xsltc/xsl_whitespace_design.xml b/xdocs/sources/xsltc/xsl_whitespace_design.xml
deleted file mode 100644
index 83b29db..0000000
--- a/xdocs/sources/xsltc/xsl_whitespace_design.xml
+++ /dev/null
@@ -1,342 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-  <s1 title="&lt;xsl:strip/preserve-space&gt;">
-  <ul>
-    <li><link anchor="functionality">Functionality</link></li>
-    <li><link anchor="identify">Identifying strippable whitespace nodes</link></li>
-    <li><link anchor="which">Determining which nodes to strip</link></li>
-    <li><link anchor="strip">Stripping nodes</link></li>
-    <li><link anchor="filter">Filtering whitespace nodes</link></li>
-  </ul>
-  
-  <anchor name="functionality"/>
-  <s2 title="Functionality">
-
-  <p>The <code>&lt;xsl:strip-space&gt;</code> and <code>&lt;xsl:preserve-space&gt;</code>
-  elements are used to control the way whitespace nodes in the source XML
-  document are handled. These elements have no impact on whitespace in the XSLT
-  stylesheet. Both elements can occur only as top-level elements, possible more
-  than once, and the elements are always empty</p>
- 
-  <p>Both elements take one attribute &quot;elements&quot; which contains a
-  whitespace separated list of named nodes which should be or preserved
-  stripped from the source document. These names can be on one of these three
-  formats (NameTest format):</p>
-
-  <ul>
-    <li>
-      All whitespace nodes:
-      <code>elements=&quot;*&quot;</code>
-    </li>
-    <li>
-      All whitespace nodes with a namespace:
-      <code>elements=&quot;&lt;namespace&gt;:*&quot;</code>
-    </li>
-    <li>
-      Specific whitespace nodes: <code>elements=&quot;&lt;qname&gt;&quot;</code>
-    </li>
-  </ul>
-
-  </s2><anchor name="identify"/>
-  <s2 title="Identifying strippable whitespace nodes">
-
-  <p>The DOM detects all text nodes and assigns them the type <code>TEXT</code>.
-  All text nodes are scanned to detect whitespace-only nodes. A text-node is
-  considered a whitespace node only if it consist entirely of characters from
-  the set { 0x09, 0x0a, 0x0d, 0x20 }. The DOM implementation class has a static
-  method used to detect such nodes:</p>
-
-<source>
-    private static final boolean isWhitespaceChar(char c) {
-        return c == 0x20 || c == 0x0A || c == 0x0D || c == 0x09;
-    }
-</source>
-
-  <p>The characters are checked in probable order.</p>
-
-  <p> The DOM has a bit-array that is used to  tag text-nodes as strippable
-  whitespace nodes:</p>
-
-  <source>private int[] _whitespace;</source>
-
-  <p>There are two methods in the DOM implementation class for accessing this
-  bit-array: <code>markWhitespace(node)</code> and <code>isWhitespace(node)</code>.
-  The array is resized together with all other arrays in the DOM by the
-  <code>DOM.resizeArrays()</code> method. The bits in the array are set in the
-  <code>DOM.maybeCreateTextNode()</code> method. This method must know whether
-  the current node is a located under an element with an
-  <code>xml:space=&quot;&lt;value&gt;&quot;</code> attribute in the DOM, in which
-  case it is not a strippable whitespace node.</p>
-
-  <p>An auxillary class, WhitespaceHandler, is used for this purpose. The class
-  works in a way as a stack, where you "push" a new strip/preserve setting
-  together with the node in which this setting was determined. This means that
-  for every time the DOM builder encounters an <code>xml:space</code> attribute
-  it will invoke a method on an instance of the WhitespaceHandler class to
-  signal that a new preserve/strip setting has been encountered. This is done
-  in the <code>makeAttributeNode()</code> method. The whitespace handler stores the
-  new setting and pushes the current element node on its stack. When the
-  DOM builder closes up an element (in <code>endElement()</code>), it invokes
-  another method of the whitespace handler to check if the strip/preserve
-  setting is still valid. If the setting is now invalid (we're closing the
-  element whose node id is on the top of the stack) the handler inverts the
-  setting and pops the element node id off the stack. The previous
-  strip/preserve setting is then valid, and the id of node where this setting
-  was defined is on the top of the stack.</p>
-
-  </s2><anchor name="which"/>
-  <s2 title="Determining which nodes to strip">
-
-  <p>A text node is never stripped unless it contains only whitespace
-  characters (Unicode characters 0x09, 0x0A, 0x0D and 0x20). Stripping a text
-  node means that the node disappears from the DOM; so that it is never
-  included in the output and that it is ignored by all functions such as
-  <code>count()</code>. A text node is preserved if any of the following apply:</p>
-
-  <ul>
-    <li>
-      the element name of the parent of the text node is in the set of
-      elements listed in <code>&lt;xsl:preserve-space&gt;</code>
-    </li>
-    <li>
-      the text node contains at least one non-whitespace character
-    </li>
-    <li>
-      an ancenstor of the whitespace text node has an attribute of
-      <code>xsl:space=&quot;preserve&quot;</code>, and no close ancestor has and
-      attribute of <code>xsl:space=&quot;default&quot;</code>.
-    </li>
-  </ul>
-
-  <p>Otherwise, the text node is stripped. Initially the set of 
-  whitespace-preserving element names contains all element names, so the
-  default behaviour is to preserve all whitespace text nodes.</p>
-
-  <p>This seems simple enough, but resolving conflicts between matching
-  <code>&lt;xsl:strip-space&gt;</code> and <code>&lt;xsl:preserve-space&gt;</code>
-  elements requires a lot of thought. Our first consideration is import
-  precedence; the match with the highest import precedence is always chosen.
-  Import precedence is determined by the order in which the compared elements
-  are visited. (In this case those elements are the top-level
-  <code>&lt;xsl:strip-space&gt;</code> and <code>&lt;xsl:preserve-space&gt;</code>
-  elements.) This example is taken from the XSLT recommendation:</p>
-
-  <ul>
-    <li>stylesheet A imports stylesheets B and C in that order;</li>
-    <li>stylesheet B imports stylesheet D;</li>
-    <li>stylesheet C imports stylesheet E.</li>
-  </ul>
-
-  <p>Then the order of import precedence (lowest first) is D, B, E, C, A.</p>
-
-  <p>Our next consideration is the priority of NameTests (XPath spec):</p>
-  <ul>
-    <li>
-      <code>elements=&quot;&lt;qname&gt;&quot;</code> has priority 0
-    </li>
-    <li>
-      <code>elements=&quot;&lt;namespace&gt;:*&quot;</code> has priority -0.25
-    </li>
-    <li>
-      <code>elements=&quot;*&quot;</code> has priority -0.5
-    </li>
-  </ul>
-
-  <p>It is considered an error if the desicion is still ambiguous after this,
-  and it is up to the implementors to decide what the apropriate action is.</p>
-
-  <p>With all this complexity, the normal usage for these elements is quite
-  smiple; either preserve all whitespace nodes but one type:</p>
-
-  <source>&lt;xsl:strip-space elements="foo"/&gt;</source>
-
-  <p>or strip all whitespace nodes but one type:</p>
-
-  <source>
-    &lt;xsl:strip-space elements="*"/&gt;
-    &lt;xsl:preserve-space elements="foo"/&gt;</source>
-
-  </s2><anchor name="strip"/>
-  <s2 title="Stripping nodes">
-
-  <p>The ultimate goal of our design would be to totally screen all stripped
-  nodes from the translet; to either physically remove them from the DOM or to
-  make it appear as if they are not there. The first approach will cause
-  problems in cases where multiple translets access the same DOM. In the future
-  we wish to let translets run within servlets / JSPs with a common DOM cache.
-  This DOM cache will keep copies of DOMs in memory to prevent the same XML
-  file from being downloaded and parsed several times. This is a scenarios we
-  might see:</p>
-
-    <p><img src="DOMInterface.gif" alt="DOMInterface.gif"/></p>
-    <p><ref>Figure 1: Multiple translets accessing a common pool of DOMs</ref></p>
-
-  <p>The three translets running on this host access a common pool of 4 DOMs.
-  The DOMs are accessed through a common DOM interface. Translets accessing
-  a single DOM will have a DOMAdapter and a single DOMImpl object behind this
-  interface, while translets accessing several DOMs will be given a MultiDOM
-  and a set of DOMImpl objects.</p>
-
-  <p>The translet to the left may want to strip some nodes from the shared DOM
-  in the cache, while the other translets may want to preserve all whitespace
-  nodes. Our initial thought then is to keep the DOM as it is and somehow
-  screen the left-hand translet of all the whitespace nodes it does not want to
-  process. There are a few ways in which we can accomplish this:</p>
-
-  <ul>
-    <li>
-      The translet can, prior to starting to traverse the DOM, send a reference
-      to the tables containing information on which nodes we want stripped to
-      the DOM interface. The DOM interface is then responsible for hiding all
-      stripped whitespace nodes from the iterators and the translet. A problem
-      with this approach is that we want to omit the DOM interface layer if
-      the translet is only accessing a single DOM. The DOM interface layer will
-      only be instanciated by the translet if the stylesheet contained a call
-      to the <code>document()</code> function.<br/><br/>
-    </li>
-    <li>
-      The translet can provide its iterators with information on which nodes it
-      does not want to see. The translet is still shielded from unwanted
-      whitespace nodes, but it has the hassle of passing extra information over
-      to most iterators it ever instanciates. Note that all iterators do not
-      need be aware of whitepspace nodes in this case. If you have a look at
-      the figure again you will see that only the first level iterator (that is
-      the one closest to the DOM or DOM interface) will have to strip off
-      whitespace nodes. But, there may be several iterators that operate
-      directly on the DOM ( invoked by code handling XSL functions such as
-      <code>count()</code>) and every single one of those will need to be told
-      which whitespace nodes the translet does not want to see.<br/><br/>
-    </li>
-    <li>
-      The third approach will take advantage of the fact that not all
-      translets will want to strip whitespace nodes. The most effective way of
-      removing unwanted whitespace nodes is to do it once and for all, before
-      the actual traversal of the DOM starts. This can be done by making a
-      clone of the DOM with exlusive-access rights for this translet only. We
-      still gain performance from the cache because we do not have to pay the
-      cost of the delay caused by downloading and parsing the XML source file.
-      The cost we have to pay is the time needed for the actual cloning and the
-      extra memory we use.<br/><br/>
-      Normally one would imagine the translet (or the wrapper class that
-      invokes the translet) calls the DOM cache with just an URL and receives
-      a reference to an instanciated DOM. The cache will either have built
-      this DOM on-demand or just passed back a reference to an existing tree.
-      In this case the DOM would need an extra call that a translet would use
-      to clone a DOM, passing the existing DOM reference to the cache and
-      recieving a new reference to the cloned DOM. The translet can then do
-      whatever it wants with this DOM (the cache need not even keep a reference
-      to this tree).
-    </li>
-  </ul>
-  
-  <p>We are lucky enough to be able to combine the first two approaches. All
-  iterators that directly access the DOM (axis iterators) are instanciated by
-  calls to the DOM interface layer (the DOM class). The actual iterators are
-  created in the DOM implementation layer (the DOMImpl class). So, we can pass
-  references to the preserve/strip whitespace tables to the DOM, and the DOM
-  will make sure that all axis iterators return node sets with respect to these
-  tables.</p>
-  </s2><anchor name="filter"/> 
-  <s2 title="Filtering whitespace nodes">
-
-  <p>For each axis iterator and for <code>DOM.makeStringValue()</code> and
-  <code>DOM.stringValueAux()</code> we must apply a filter for eliminating all
-  unwanted whitespace nodes. To achive this we must build a very efficient
-  predicate for determining if the current node should be stripped or not. This
-  predicate is built by <code>Whitespace.compilePredicate()</code>. This method is
-  static and builds a predicate for a vector of WhitespaceRule objects. (The
-  WhitespaceRule class is defined within the Whitespace class.) Each
-  WhitespaceRule object contains information for a single element listed
-  in an <code>&lt;xsl:strip/preserve-space&gt;</code> element, and is broken down
-  into the following information:</p>
-
-  <ul>
-    <li>the namespace (can be the default namespace)</li>
-    <li>the element name or "<code>*</code>"</li>
-    <li>the type of rule; NS:EL, NS:<code>*</code> or <code>*</code></li>
-    <li>the priority of the rule (based on import precedence and type)</li>
-    <li>the action; either strip or preserver</li>
-  </ul>
-
-  <p>The Vector of WhitespaceRules is arranged in order of priority and
-  redundant rules are removed. A predicate method is then compiled into the
-  translet as:</p>
-
-<source>
-    public boolean stripSpace(int node);
-</source>
-
-  <p>Unfortunately this method cannot be declared static.</p>
-
-  <p>When the Stylesheet objectcompiles the <code>topLevel()</code> method of the
-  translet it checks for the existance of the <code>stripSpace()</code> method. If
-  this method exists the <code>topLevel()</code> will be compiled to pass the
-  translet to the DOM as a StripWhitespaceFilter (the translet implements this
-  interface when the <code>stripSpace()</code> method is compiled).</p>
-
-  <p>All axis iterators and the <code>DOM.makeStringValue()</code> and
-  <code>DOM.stringValueAux()</code> methods check for the existance of this filter
-  (it is kept in a global variable in the DOM implementation class) and takes
-  the appropriate actions. The methods in the DOM for returning axis iterators
-  will place a StrippingIterator on top of the axis iterator if the filter is
-  present, and the two methods just mentioned will return empty strings for
-  whitespace nodes that should be stripped.</p>
- 
-  </s2>
-</s1>
diff --git a/xdocs/sources/xsltc/xsltc_compiler.xml b/xdocs/sources/xsltc/xsltc_compiler.xml
deleted file mode 100644
index ae4d69d..0000000
--- a/xdocs/sources/xsltc/xsltc_compiler.xml
+++ /dev/null
@@ -1,270 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-  <s1 title="XSLTC Compiler Design">
-    <ul>  
-     <li><link anchor="overview">Compiler Overview</link></li>
-     <li><link anchor="ast">Building an Abstract Syntax Tree</link></li>
-     <li><link anchor="typecheck">Type-check and Cast Expressions</link></li>
-     <li><link anchor="compile">Code generation</link></li>
-    </ul>
-
-    <anchor name="overview"/>
-    <s2 title="Compiler overview">
-
-    <p>The input stylesheet is parsed using the SAX 1-based parser from Sun's
-    Project X:</p>   
-    <ul>
-      <li><code>com.sun.xml.parser.Parser</code></li>
-    </ul>
-
-    <p>This parser builds a DOM from the stylesheet document, and hands this
-    DOM over to the compiler. The compiler uses its own specialised parser to
-    parse XPath expressions and patterns:</p>
-    <ul>
-      <li><code>com.sun.xslt.compiler.XPathParser</code></li>
-    </ul>
-    <p>Both parsers are encapsulated in XSLTC's parser class:</p>
-    <ul>
-      <li><code>com.sun.xslt.compiler.Parser</code></li>
-    </ul>
-
-    </s2><anchor name="ast"/>
-    <s2 title="Building an Abstract Syntax Tree">
-    <ul>
-      <li><link anchor="mapping">Mapping stylesheet elements to Java classes</link></li>
-      <li><link anchor="domxsl">Building a DOM tree from the input XSL file</link></li>      
-    </ul>
-    <p>The SAX parser builds a standard W3C DOM from the source stylesheet.
-    This DOM does not contain all the information needed to represent the
-    whole stylesheet. ( Remember that XSL is two languages; XML and XPath.
-    The DOM only covers XML. ) The compiler uses the DOM to build an
-    abstract syntax tree (AST) that contains all the nodes from the DOM, plus
-    additional nodes for the XPath expressions.</p>
-    <anchor name="mapping"/>
-    <s3 title="Mapping stylesheets elements to Java classes">
-    <p>Each XSL element is represented by a class in the
-    <code>com.sun.xslt.compiler</code> package. The Parser class contains a
-    Hashtable that that maps XSL instructions to classes that inherit from a
-    common parent class 'Instruction' (which again inherits from
-    'SyntaxTreeNode'). This mapping is set up in the <code>initClasses()</code> method:</p>
-<source>    private void initStdClasses() {
-	try {
-	    initStdClass("template",    "Template");
-	    initStdClass("param",       "Param");
-	    initStdClass("with-param",  "WithParam");
-	    initStdClass("variable",    "Variable");
-	    initStdClass("output",      "Output");
-	    :
-	    :
-	    :
-	}
-    }
-
-    private void initClass(String elementName, String className)
-	throws ClassNotFoundException {
-	_classes.put(elementName,
-		     Class.forName(COMPILER_PACKAGE + '.' + className));
-    }</source>
-    </s3><anchor name="domxsl"/>
-    <s3 title="Building a DOM tree from the input XSL file">
-    <p>The parser instanciates a DOM that holds the input XSL stylesheet. The
-    DOM can only handle XML files and will not break up and identify XPath
-    patterns/expressions (these are stored as attributes to the various
-    nodes in the tree) or calls to XSL functions(). Each XSL instruction gets
-    its own node in the DOM, and the XPath patterns/expressions are stored as
-    attributes of these nodes. A stylesheet looking like this:</p>
-<source>
-    &lt;xsl:stylesheet .......&gt;
-      &lt;xsl:template match="chapter"&gt;
-        &lt;xsl:text&gt;Chapter&lt;/xsl:text&gt;
-        &lt;xslvalue-of select="."&gt;
-      &lt;/xsl:template&gt;
-    &lt;/xsl&gt;stylesheet&gt;
-</source>
-    <p>will be stored in the DOM as indicated in the following picture:</p>
-    <p><img src="compiler_DOM.gif" alt="compiler_DOM.gif"/></p>
-    <p><ref>Figure 1: DOM containing XSL stylesheet</ref></p>
-    <p>The pattern '<code>match="chapter"</code>' and the expression
-    '<code>select="."</code>' are stored as attributes for the nodes
-    '<code>xsl:template</code>' and '<code>xsl:value-of</code>' respectively.
-    These attributes are accessible through the DOM interface.</p>
-    </s3>
-     <s3 title="Creating the Abstract Syntax Tree from the DOM">
-    <p>What we have to do next is to create a tree that also holds the XSL
-    specific elements; XPath expressions and patterns (with possible filters)
-    and calls to XSL functions. This is done by parsing the DOM and creating an
-    instance of a subclass of 'SyntaxTreeNode' for each node in the DOM. A node
-    in the DOM containing an XSL instruction (for example, "xsl:template") results in an
-    instance of the correspoding class derived from the HashTable created by
-    the parser (in this case in instance of the 'Template' class).</p>
-
-    <p>Each class that inherits SyntaxTreeNode has a vector called
-    '<code>_contents</code>' that holds references to all the children of the node
-    (if any). Each node has a method called '<code>parseContents()</code>'. It is
-    the responsibility of this method to parse any XPath expressions/patterns
-    that are expected and found in the node's attributes. The XPath patterns
-    and instructions are tokenised using the auto-generated class 'XPathParser'
-    (generated using JavaCup and JLex). The tokenised expressions/patterns
-    will result in a small sub-tree owned by the syntax tree node.</p>
-
-    <p>XSL nodes holding expressions has a pointer called '<code>_select</code>' that
-    points to a sub-tree representing the expression. This can be seen for
-    instance in the 'Template' class:</p>
-    <p><img src="compiler_AST.gif" alt="compiler_AST.gif"/></p>
-    <p><ref>Fiugre 2: Sample Abstract Syntax Tree</ref></p>
-    <p>In this example _select only points to a single node. In more complex
-    expressions the pointer will point to an whole sub-tree.</p>
-     </s3>
-     </s2><anchor name="typecheck"/>
-    <s2 title="Type-check and Cast Expressions">
-    <p>In many cases we will need to typecast the top node in the expression
-    sub-tree to suit the expected result-type of the expression, or to typecast
-    child nodes to suit the allowed types for the various operators in the
-    expression. This is done by calling 'typeCheck()' on the root-node in the
-    XSL tree. Each SyntaxTree node is responsible for its own type checking
-    (ie. the <code>typeCheck()</code> method must be overridden). Let us say that
-    our pattern was:</p>
-    <p><code>&lt;xsl:value-of select=&quot;1+2.73&quot;/&gt;</code></p>
-    <p><img src="typecast.gif" alt="typecast.gif"/></p>
-    <p><ref>Figure 3: XPath expression type conflict</ref></p>
-    <p>The number 1 is an integer, and the number 2.73 is a real number, so the
-    1 has to be promoted to a real. This is done ny inserting a new node between
-    the [1] and the [+]. This node will convert the 1 to a real number:</p>
-    <p><img src="cast_expression.gif" alt="cast_expression.gif"/></p>
-    <p><ref>Figure 4: Type casting</ref></p>
-
-    <p>The inserted node is an object of the class CastExpr. The SymbolTable
-    that was instanciated in (1) is used to determine what casts are needed for
-    the various operators and what return types the various expressions will
-    have.</p>
-
-    </s2><anchor name="compile"/>
-    <s2 title="Code generation">
-    <ul>
-      <li><link anchor="toplevelelem">Compiling top-level elements</link></li>
-      <li><link anchor="templatecode">Compiling template code</link></li>
-      <li><link anchor="instrfunc">Compiling XSL instructions and functions</link></li>            
-    </ul>
-    <p>A general rule is that all classes that represent elements in the XSL
-    tree/document, i.e., classes that inherit from SyntaxTreeNode, output
-    bytecode in the 'translate()' method.</p>
-    <anchor name="toplevelelem"/>
-    <s3 title="Compiling top-level elements">
-    <p>The bytecode that handles top-level elements must be generated before any
-    other code. The '<code>translate()</code>' method in these classes are mainly
-    called from these methods in the Stylesheet class:</p>
-
-<source>    private String compileBuildKeys(ClassGenerator classGen);
-    private String compileTopLevel(ClassGenerator classGen, Enumeration elements);
-    private void compileConstructor(ClassGenerator classGen, Output output);</source>
-
-    <p>These methods handle most top-level elements, such as global variables
-    and parameters, <code>&lt;xsl:output&gt;</code> and
-    <code>&lt;xsl:decimal-format&gt;</code> instructions.</p>
-    </s3><anchor name="templatecode"/>
-    <s3 title="Compiling template code">
-    <p>All XPath patterns in <code>&lt;xsl:apply-template&gt;</code> instructions
-    are converted into numeric values (known as the pattern's kernel 'type').
-    All templates with identical pattern kernel types are grouped together and
-    inserted into a table with its assigned type. (This table is found in the
-    Mode class. There will be one such table for each mode that is used in the
-    stylesheet). This table is used to build a big <code>switch()</code> statement
-    in the translet's <code>applyTemplates()</code> method. This method is initially
-    called with the root node of the input document.</p>
-    <p>The <code>applyTemplates()</code> method determines the node's type and passes
-    this type to the <code>switch()</code> statement to look up the matching
-    template.</p>
-
-    <p>There may be several templates that share the same pattern kernel type.
-    Here are a few examples of templates with patterns that all have the same
-    kernel type:</p>
-
-<source>    &lt;xsl:template match=&quot;A/C&quot;&gt;
-    &lt;xsl:template match=&quot;A/B/C&quot;&gt;
-    &lt;xsl:template match=&quot;A | C&quot;&gt;</source>
-
-    <p>All these templates will be grouped under the type for <code>&lt;C&gt;</code>
-    and will all get the same kernel type (the type for <code>"C"</code>). The last
-    template will be grouped both under <code>"C"</code> and <code>"A"</code>. If the
-    type identifier for <code>"C"</code> in this case is 8, all these templates will
-    be put under <code>case 8:</code> in <code>applyTemplates()</code>'s big
-    <code>switch()</code> statement. The Mode class will insert extra code to choose
-    which template code to invoke.</p>
-    </s3><anchor name="instrfunc"/>
-    <s3 title="Compiling XSL instructions and functions">
-
-    <p>The template code is generated by calling <code>translate()</code> on each
-    Template object in the abstract syntax tree. This call will be propagated
-    down the tree and every element will output the bytecodes necessary to
-    complete its task.</p>
-
-    <p>Each node will call 'translate()' on its children, and possibly on
-    objects representing the node's XPath expressions, before outputting its
-    own bytecode. In that way the correct sequence of instructions is generated.
-    Each one of the child nodes is responsible of creating code that leaves the
-    node's output value (if any) on the stack. The typical procedure for the
-    parent node is to create code that consumes these values off the stack and
-    then leave its own output on the stack for its parent.</p>
-
-    <p>The tree-structure of the stylesheet is in this way closely tied with
-    the stack-based JVM. The design does not offer any obvious way of extending
-    the compiler to output code for other VMs or processors.</p>
-   </s3>
-  </s2>
-</s1>
\ No newline at end of file
diff --git a/xdocs/sources/xsltc/xsltc_dom.xml b/xdocs/sources/xsltc/xsltc_dom.xml
deleted file mode 100644
index 93557dd..0000000
--- a/xdocs/sources/xsltc/xsltc_dom.xml
+++ /dev/null
@@ -1,483 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-<s1 title="XSLTC Internal DOM">
-  <ul>
-    <li><link anchor="functionality">General functionlaity</link></li>
-    <li><link anchor="components">Components of the internal DOM</link></li>
-    <li><link anchor="structure">Internal structure</link></li>
-    <li><link anchor="navigation">Tree navigation</link></li>
-    <li><link anchor="namespaces">Namespaces</link></li>
-    <li><link anchor="w3c">W3C DOM2 navigation support</link></li>
-    <li><link anchor="adapter">The DOM adapter - DOMAdapter</link></li>
-    <li><link anchor="multiplexer">The DOM multiplexer - MultiDOM</link></li>
-    <li><link anchor="builder">The DOM builder - DOMImpl$DOMBuilder</link></li>
-  </ul>
-
-  <anchor name="functionality"/>
-  <s2 title="General functionality">
-  <p>The internal DOM gives the translet access to the XML document(s) it has
-  to transform. The interface to the internal DOM is specified in the DOM.java
-  class. This is the interface that the translet uses to access the DOM. 
-  There is also an interface specified for DOM caches -- DOMCache.java</p>
-
-  </s2><anchor name="components"/>
-  <s2 title="Components of the internal DOM">
-
-  <p>This DOM interface is implemented by three classes:</p>
-  <ul>
-    <li><em>org.apache.xalan.xsltc.dom.DOMImpl</em><br/><br/>
-      This is the main DOM class. An instance of this class contains the nodes
-      of a <em>single</em> XML document.<br/>br/>
-    </li>
-    <li><em>org.apache.xalan.xsltc.dom.MultiDOM</em><br/><br/>
-      This class is best described as a DOM multiplexer. XSLTC was initially
-      designed to operate on a single XML document, and the initial DOM and
-      the DOM interface were designed and implemented without the
-      <code>document()</code> function in mind. This class will allow a translet
-      to access multiple DOMs through the original DOM interface.<br/><br/>
-    </li>
-    <li><em>org.apache.xalan.xsltc.dom.DOMAdapter</em><br/>br/>
-      The DOM adapter is a mediator between a DOMImpl or a MultiDOM object and
-      a single translet. A DOMAdapter object contains mappings and reverse
-      mappings between node  types in the DOM(s) and node types in the translet.
-      This mediator is needed to allow several translets access to a single DOM.
-      <br/>br/>
-    </li>
-    <li><em>org.apache.xalan.xsltc.dom.DocumentCache</em><br/>br/>
-      A sample DOM cache (implementing DOMCache) that is used with our sample
-      transformation applications.
-    </li>
-  </ul>
-
-  <p><img src="DOMInterface.gif" alt="DOMInterface.gif"/></p>
-  <p><ref>Figure 1: Main components of the internal DOM</ref></p>
-
-  <p>The figure above shows how several translets can access one or more
-  internal DOM from a shared pool of cached DOMs. A translet can also access a
-  DOM tree outside of a cache. The Stylesheet class that represents the XSL
-  stylesheet to compile contains a flag that indicates if the translet uses the
-  <code>document()</code> function. The code compiled into the translet will act
-  accordingly and instanciate a MultiDOM object if needed (this code is compiled
-   in the compiler's <code>Stylesheet.compileTransform()</code> method).</p>
-
-  </s2><anchor name="structure"/>
-  <s2 title="Internal Structure">
-  <ul>
-    <li><link anchor="node-id">Node identification</link></li>
-    <li><link anchor="element-nodes">Element nodes</link></li>
-    <li><link anchor="attribute-nodes">Attribute nodes</link></li>    
-    <li><link anchor="text-nodes">Text nodes</link></li>
-    <li><link anchor="comment-nodes">Comment nodes</link></li>    
-    <li><link anchor="pi"></link>Processing instructions</li>
-  </ul>
-  <anchor name="node-id"/>
-  <s3 title="Node identifation">
-
-  <p>Each node in the DOM is represented by an integer. This integer is an
-  index into a series of arrays that describes the node. Most important is
-  the <code>_type[]</code> array, which holds the (DOM internal) node type. There
-  are some general node types that are described in the DOM.java interface:</p>
-
-<source>
-    public final static int ROOT                   = 0;
-    public final static int TEXT                   = 1;
-    public final static int UNUSED                 = 2;
-    public final static int ELEMENT                = 3;
-    public final static int ATTRIBUTE              = 4;
-    public final static int PROCESSING_INSTRUCTION = 5;
-    public final static int COMMENT                = 6;
-    public final static int NTYPES                 = 7;
-</source>
-
-  <p>Element and attribute nodes will be assigned types based on their expanded
-  QNames. The <code>_type[]</code> array is used for this:</p>
-
-<source>
-    int    type      = _type[node];             // get node type
-</source>
-
-  <p>The node type can be used to look up the element/attribute name in the
-  element/attribute name array <code>_namesArray[]</code>:</p>
-
-<source>
-    String name      = _namesArray[type-NTYPES]; // get node element name
-</source>
-
-  <p>The resulting string contains the full, expanded QName of the element or
-  attribute. Retrieving the namespace URI of an element/attribute is done in a
-  very similar fashion:</p>
-
-<source>
-    int    nstype    = _namespace[type-NTYPES]; // get namespace type
-    String namespace = _nsNamesArray[nstype];   // get node namespace name
-</source>
-  </s3><anchor name="element-nodes"/>
-  <s3 title="Element nodes">
-
-  <p>The contents of an element node (child nodes) can be identified using
-  the <code>_offsetOrChild[]</code> and <code>_nextSibling[]</code> arrays. The
-  <code>_offsetOrChild[]</code> array will give you the first child of an element
-  node:</p>
-
-<source>
-    int    child     = _offsetOrChild[node];    // first child
-    child = _nextSibling[child];                // next child
-</source>
-
-  <p>The last child will have a &quot;<code>_nextSibling[]</code>&quot; of 0 (zero).
-  This value is OK since the root node (the 0 node) will not be a child of
-  any element.</p>
-
-  </s3><anchor name="attribute-nodes"/>
-  <s3 title="Attribute nodes">
-
-  <p>The first attribute node of an element is found by a lookup in the
-  <code>_lengthOrAttr[]</code> array using the node index:</p>
-
-<source>
-    int    attribute = _offsetOrChild[node];    // first attribute
-    attribute = _nextSibling[attribute];        // next attribute
-</source>
-
-  <p>The names of attributes are contained in the <code>_namesArray[]</code> just
-  like the names of element nodes. The value of attributes are store the same
-  way as text nodes:</p>
-
-<source>
-    int    offset    = _offsetOrChild[attribute]; // offset into character array
-    int    length    = _lengthOrAttr[attribute];  // length of attribute value
-    String value     = new String(_text, offset, length);
-</source>
-  </s3><anchor name="text-nodes"/>
-  <s3 title="Text nodes">
-
-  <p>Text nodes are stored identically to attribute values. See the previous
-  section on <link anchor="attribute-nodes">attribute nodes</link>.</p>
-  </s3><anchor name="comment-nodes"/>
-  <s3 title="Comment nodes">
-
-  <p>The internal DOM does currently <em>not</em> contain comment nodes. Yes, I
-  am quite aware that the DOM has a type assigned to comment nodes, but comments
-  are still not inserted into the DOM.</p>
-  </s3><anchor name="pi"/>
-  <s3 title="Processing instructions">
-
-  <p>Processing instructions are handled as text nodes. These nodes are stored
-  identically to attribute values. See the previous section on
-  <link anchor="attribute-nodes">attribute nodes</link>.</p>
-
-  </s3></s2><anchor name="navigation"/>
-  <s2 title="Tree navigation">
-
-  <p>The DOM implementation contains a series of iterator that implement the
-  XPath axis. All these iterators implement the NodeIterator interface and
-  extend the NodeIteratorBase base class. These iterators do the job of
-  navigating the tree using the <code>_offsetOrChild[]</code>, <code>_nextSibling</code>
-  and <code>_parent[]</code> arrays. All iterators that handles XPath axis are
-  implemented as a private inner class of DOMImpl. The translet uses a handful
-  of methods to instanciate these iterators:</p>
-
-<source>
-    public NodeIterator getIterator();
-    public NodeIterator getChildren(final int node);
-    public NodeIterator getTypedChildren(final int type);
-    public NodeIterator getAxisIterator(final int axis);
-    public NodeIterator getTypedAxisIterator(final int axis, final int type);
-    public NodeIterator getNthDescendant(int node, int n);
-    public NodeIterator getNamespaceAxisIterator(final int axis, final int ns);
-    public NodeIterator orderNodes(NodeIterator source, int node);
-</source>
-
-  <p>There are a few iterators in addition to these, such as sorting/ordering
-  iterators and filtering iterators. These iterators are implemented in
-  separate classes and can be instanciated directly by the translet.</p>
-
-  </s2><anchor name="namespaces"/>
-  <s2 title="Namespaces">
-
-  <p>Namespace support was added to the internal DOM at a late stage, and the
-  design and implementation of the DOM bears a few scars because of this. 
-  There is a separate <link idref="xsltc_namespace">design
-  document</link> that covers namespaces.</p>
-
-  </s2><anchor name="w3c"/>
-  <s2 title="W3C DOM2 navigation support">
-
-  <p>The DOM has a few methods that give basic W3C-type DOM navigation. These
-  methods are:</p>
-
-<source>
-    public Node makeNode(int index);
-    public Node makeNode(NodeIterator iter);
-    public NodeList makeNodeList(int index);
-    public NodeList makeNodeList(NodeIterator iter);
-</source>
-
-  <p>These methods return instances of inner classes of the DOM that implement
-  the W3C Node and NodeList interfaces.</p>
-
-  </s2><anchor name="adapter"/>
-  <s2 title="The DOM adapter - DOMAdapter">
-  <ul>
-    <li><link anchor="translet-dom">Translet/DOM type mapping</link></li>
-    <li><link anchor="whitespace">Whitespace text-node stripping</link></li>
-    <li><link anchor="method-mapping">Method mapping</link></li>
-  </ul>
-  <anchor name="translet-dom"/>
-  <s3 title="Translet/DOM type mapping">
-
-  <p>The DOMAdapter class performs the mappings between DOM and translet node
-  types, and vice versa. These mappings are necessary in order for the translet
-  to correctly identify an element/attribute in the DOM and for the DOM to
-  correctly identify the element/attribute type of a typed iterator requested
-  by the translet. Note that the DOMAdapter also maps translet namespace types
-  to DOM namespace types, and vice versa.</p>
-
-  <p>The DOMAdapter class has four global tables that hold the translet/DOM
-  type and namespace-type mappings. If the DOM knows an element as type
-  19, the DOMAdapter will translate this to some other integer using the
-  <code>_mapping[]</code> array:</p>
-
-<source>
-    int domType = _mapping[transletType];
-</source>
-
-  <p>This action will be performed when the DOM asks what type a specific node
-  is. The reverse is done then the translet wants an iterator for a specific
-  node type. The DOMAdapter must translate the translet-type to the type used
-  internally in the DOM by looking up the <code>_reverse[]</code> array:</p>
-
-<source>
-    int transletType = _mapping[domType];
-</source>
-
-  <p>There are two additional mapping tables: <code>_NSmapping[]</code> and
-  <code>_NSreverse[]</code> that do the same for namespace types.</p>
-  </s3><anchor name="whitespace"/>
-  <s3 title="Whitespace text-node stripping">
-
-  <p>The DOMAdapter class has the additional function of stripping whitespace
-  nodes in the DOM. This functionality had to be put in the DOMAdapter, as
-  different translets will have different preferences for node stripping.</p>
-  </s3><anchor name="method-mapping"/>
-  <s3 title="Method mapping">
-
-  <p>The DOMAdapter class implements the same <code>DOM</code> interface as the
-  DOMImpl class. A DOMAdapter object will look like a DOMImpl tree, but the
-  translet can access it directly without being concerned with type mapping
-  and whitespace stripping. The <code>getTypedChildren()</code> demonstrates very
-  well how this is done:</p>
-
-<source>
-    public NodeIterator getTypedChildren(int type) {
-        // Get the DOM type for the requested typed iterator
-        final int domType = _reverse[type];
-        // Now get the typed child iterator from the DOMImpl object
-        NodeIterator iterator = _domImpl.getTypedChildren(domType);
-        // Wrap the iterator in a WS stripping iterator if child-nodes are text nodes
-	if ((domType == DOM.TEXT) &amp;&amp; (_filter != null))
-	    iterator = _domImpl.strippingIterator(iterator,_mapping,_filter);
-	return(iterator);
-    }
-</source>
-
-  </s3></s2><anchor name="multiplexer"/>
-  <s2 title="The DOM multiplexer - MultiDOM">
-
-  <p>The DOM multiplexer class is only used when the compiled stylesheet uses
-  the <code>document()</code> function. An instance of the MultiDOM class also
-  implements the DOM interface, so that it can be accessed in the same way
-  as a DOMAdapter object.</p>
-
-  <p>A node in the DOM is identified by an integer. The first 8 bits of this
-  integer are used to identify the DOM in which the node belongs, while the
-  lower 24 bits are used to identify the node within the DOM:</p>
-    <table>
-      <tr>
-        <td>31-24</td>
-        <td>23-16</td>
-        <td>16-8</td>
-        <td>7-0</td>
-      </tr>
-      <tr>
-        <td>DOM id</td>
-        <td colspan="3">node id</td>
-      </tr>
-    </table>
-
-  <p>The DOM multiplexer has an array of DOMAdapter objects. The topmost 8
-  bits of the identifier is used to find the correct DOM from the array. Then
-  the lower 24 bits are used in calls to methods in the DOMAdapter object:</p>
-
-<source>
-    public int getParent(int node) {
-	return _adapters[node>>>24].getParent(node &amp; 0x00ffffff) | node &amp; 0xff000000;
-    }
-</source>
-
-  <p>Note that the node identifier returned by this method has the same upper 8
-  bits as the input node. This is why we <code>OR</code> the result from
-  <code>DOMAdapter.getParent()</code> with the top 8 bits of the input node.</p>
-
-  </s2><anchor name="builder"/>
-  <s2 title="The DOM builder - DOMImpl$DOMBuilder">
-  <ul>
-    <li><link anchor="startelement">startElement()</link></li>
-    <li><link anchor="endelement">endElement()</link></li>
-    <li><link anchor="startprefixmapping">startPrefixMapping()</link></li>
-    <li><link anchor="endprefixmapping">endPrefixMapping()</link></li>
-    <li><link anchor="characters">characters()</link></li>
-    <li><link anchor="startdocument">startDocument()</link></li>
-    <li><link anchor="enddocument">endDocument()</link></li>
-  </ul>
-
-  <p>The DOM builder is an inner class of the DOM implementation. The builder
-  implements the SAX2 <code>ContentHandler</code> interface and populates the DOM
-  by receiving SAX2 events from a SAX2 parser (presently xerces). An instance
-  of the DOM builder class can be retrieved from <code>DOMImpl.getBuilder()</code>
-  method, and this handler can be set as an XMLReader's content handler:</p>
-
-<source>
-    final SAXParserFactory factory = SAXParserFactory.newInstance();
-    final SAXParser parser = factory.newSAXParser();
-    final XMLReader reader = parser.getXMLReader();
-    final DOMImpl dom = new DOMImpl();
-    reader.setContentHandler(dom.getBuilder());
-</source>
-
-  <p>The DOM builder will start to populate the DOM once the XML parser starts
-  generating SAX2 events:</p>
-  <anchor name="startelement"/>
-  <s3 title="startElement()">
-
-  <p>This method can be called in one of two ways; either with the expanded
-  QName (the element's separate uri and local name are supplied) or as a
-  normal QName (one String on the format prefix:local-name). The DOM stores
-  elements as expanded QNames so it needs to know the element's namespace URI.
-  Since the URI is not supplied with this call, we have to keep track of
-  namespace prefix/uri mappings while we're building the DOM. See 
-  <code><link anchor="startprefixmapping">startPrefixMapping()</link></code> below for details on
-  namespace handling.</p>
-
-  <p>The <code>startElement()</code> inserts the element as a child of the current
-  parent element, creates attribute nodes for all attributes in the supplied
-  &quot;<code>Attributes</code>&quot; attribute list (by a series of calls to
-  <code>makeAttributeNode()</code>), and finally creates the actual element node
-  (by calling <code>internElement()</code>, which inserts a new entry in the
-  <code>_type[]</code> array).</p>
-  </s3><anchor name="endelement"/>
-  <s3 title="endElement()">
-
-  <p>This method does some cleanup after the <code>startElement()</code> method,
-  such as revering <code>xml:space</code> settings and linking the element's
-  child nodes.</p>
-  </s3><anchor name="startprefixmapping"/>
-  <s3 title="startPrefixMapping()">
-
-  <p>This method is called for each namespace declaration in the source
-  document. The parser should call this method before the prefix is referenced
-  in a QName that is passed to the <code>startElement()</code> call. Namespace
-  prefix/uri mappings are stored in a Hashtable structure. Namespace prefixes
-  are used as the keys in the Hashtable, and each key maps to a Stack that
-  contains the various URIs that the prefix maps to. The URI on top of the
-  stack is the URI that the prefix currently maps to.</p>
-
-  
-    <p><img src="namespace_stack.gif" alt="namespace_stack.gif"/></p>
-    <p><ref>Figure 2: Namespace handling in the DOM builder</ref></p>
-
-
-  <p>Each call to <code>startPrefixMapping()</code> results in a lookup in the
-  Hashtable (using the prefix), and a <code>push()</code> of the URI onto the
-  Stack that the prefix maps to.</p>
-  </s3><anchor name="endprefixmapping"/>
-  <s3 title="endPrefixMapping()">
-
-  <p>A namespace prefix/uri mapping is closed by locating the Stack for the
-  prefix, and then <code>pop()</code>'ing the topmost URI off this Stack.</p>
-  </s3><anchor name="characters"/>
-  <s3 title="characters()">
-
-  <p>Text nodes are stored as simple character sequences in the character array
-  <code>_text[]</code>. The start and lenght of a node's text can be determined by
-  using the node index to look up <code>_offsetOrChild[]</code> and
-  <code>_lengthOrAttribute[]</code>.</p>
-
-  <p>We want to re-use character sequences if two or more text nodes have
-  identical content. This can be achieved by having two different text node
-  indexes map to the same character sequence. The <code>maybeReuseText()</code>
-  method is always called before a new character string is stored in the
-  <code>_text[]</code> array. This method will locate the offset of an existing
-  instance of a character sequence.</p>
-  </s3><anchor name="startdocument"/>
-  <s3 title="startDocument()">
-
-  <p>This method initialises a bunch of data structures that are used by the
-  builder. It also pushes the default namespace on the namespace stack (so that
-  the &quot;&quot; prefix maps to the <code>null</code> namespace).</p>
-  </s3><anchor name="enddocument"/>
-  <s3 title="endDocument()">
-
-  <p>This method builds the <code>_namesArray[]</code>, <code>_namespace[]</code>
-  and <code>_nsNamesArray[]</code> structures from temporary datastructures used
-  in the DOM builder.</p>
-
-   </s3>
- </s2>
-</s1>   
\ No newline at end of file
diff --git a/xdocs/sources/xsltc/xsltc_namespace.xml b/xdocs/sources/xsltc/xsltc_namespace.xml
deleted file mode 100644
index a9ab323..0000000
--- a/xdocs/sources/xsltc/xsltc_namespace.xml
+++ /dev/null
@@ -1,606 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-  <s1 title="XSLTC and Namespaces">
-  <ul>
-    <li><link anchor="functionality">Functionality</link></li>
-    <li><link anchor="overview">Namespace overview</link></li>
-    <li><link anchor="NSA">The DOM &amp; namespaces</link></li>    
-    <li><link anchor="NSB">Namespaces in the XSL stylesheet</link></li>
-    <li><link anchor="NSC">Namespaces in the output document</link></li>
-  </ul>
-  <anchor name="functionality"/>
-  <s2 title="Functionality">
-
-    <p>Namespaces are used when an XML documents has elements have the same
-    name, but are from different contexts, and thus have different meanings
-    and interpretations. For instance, a <code>&lt;TITLE&gt;</code> element can
-    be a HTML title element in one part of the XML document, while it in other
-    parts of the document the <code>&lt;TITLE&gt;</code> element is used for
-    encapsulating the title of a play or a book. This sort of confusion is
-    very common when reading XML source from multiple documents, but can also
-    occur within a single document.</p>
-
-    <p>Namespaces have three very important properties: a name, a prefix (an
-    alias for its name) and a scope. Namespaces are declared as attributes of
-    almost any node in an XML document. The declaration looks like this:</p>
-
-<source>
-    &lt;element xmlns:prefix="http://some.site/spec"&gt;....&lt;/element&gt;
-</source>
-
-    <p>The <code>"xmlns"</code> tells that this is a namespace declaration. The
-    scope of the namespace declaration is the element in which it is defined
-    and all the children of that element.The prefix is the local alias we use
-    for referencing the namespace, and the URL (it can be anything, really) is
-    the name/definition of the namespace. Note that even though the namespace
-    definition is normally an URL, it does not have to point to anything. It
-    is recommended that it points to a page that describes the elements in the
-    namespace, but it does not have to. The prefix can be just about anything
-    - or nothing (in which case it is the default namespace). Any prefix,
-    including the empty prefix for the default namespace, can be redefined to
-    refer to a different namespace at any time in an XML document. This is
-    more likely to happen to the default namespace than any other prefix. Here
-    is an example of this:</p>
-
-    <anchor name="xml_sample_1"/>
-<source>
-    &lt;?xml version="1.0"?&gt;
-    
-    &lt;employees xmlns:postal="http://postal.ie/spec-1.0"
-               xmlns:email="http://www.w3c.org/some-spec-3.2"&gt;
-        &lt;employee&gt;
-            &lt;name&gt;Bob Worker&lt;/name&gt;
-            &lt;postal:address&gt;
-                &lt;postal:street&gt;Nassau Street&lt;/postal:street&gt;
-                &lt;postal:city&gt;Dublin 3&lt;/postal:city&gt;
-                &lt;postal:country&gt;Ireland&lt;/postal:country&gt;
-            &lt;/postal:address&gt;
-            &lt;email:address&gt;bob.worker@hisjob.ie&lt;/email:address&gt;
-        &lt;/employee&gt;
-    &lt;/employees&gt;
-</source>
-
-    <p>This short document has two namespace declarations, one with the prefix
-    <code>"postal"</code> and another with the prefix <code>"email"</code>. The
-    prefixes are used to distinguish between elements for e-mail addresses and
-    regular postal addresses. In addition to these two namespaces there is also
-    an initial (unnamed) default namespace being used for the
-    <code>&lt;name&gt;</code> and <code>&lt;employee&gt;</code> tags. The scope of the
-    default namespace is in this case the whole document, while the scope of
-    the other two declared namespaces is the <code>&lt;employees&gt;</code>
-    element and its children.</p>
-
-    <p>By changing the default namespace we could have made the document a
-    little bit simpler and more readable:</p>
-
-    <anchor name="xml_sample_2"/>
-<source>
-    &lt;?xml version="1.0"?&gt;
-    
-    &lt;employees xmlns:email="http://www.w3c.org/some-spec-3.2"&gt;
-        &lt;employee&gt;
-            &lt;name&gt;Bob Worker&lt;/name&gt;
-            &lt;address xmlns="http://postal.ie/spec-1.0"&gt;
-                &lt;street&gt;Nassau Street&lt;/street&gt;
-                &lt;city&gt;Dublin 3&lt;/city&gt;
-                &lt;country&gt;Ireland&lt;/country&gt;
-            &lt;/address&gt;
-            &lt;email:address&gt;bob.worker@hisjob.ie&lt;/email:address&gt;
-        &lt;/employee&gt;
-    &lt;/employees&gt;
-</source>
-
-    <p>The default namespace is redefined for the <code>&lt;address&gt;</code> node
-    and its children, so there is no need to specify the street as
-    <code>&lt;postal:street&gt;</code> - just plain <code>&lt;street&gt;</code> is
-    sufficient. Note that this also applies to the <code>&lt;address&gt;</code>
-    where the namespace is first defined. This is in effect a redefinition of
-    the default namespace.</p>
-  </s2><anchor name="overview"/>
-  <s2 title="Namespace overview">
-
-    <p>Namespaces will have to be handled in three separate parts of the XSLT
-    compiler:</p>
-
-    <anchor name="all_namespaces"/>
-      <p><img src="all_namespaces.gif" alt="all_namespaces.gif"/></p>
-      <p><ref>Figure 1: Namespace handlers in the XSLTC</ref></p>
-
-    <p>The most obvious is the namespaces in the source XML document
-    (marked <link anchor="NSA">"NS A"</link> in figure 1). These namespaces will be
-    handled by our DOM implementation class. The source XSL stylesheet also
-    has its own set of namespaces (<link idref="NSB">"NS B"</link>) - one of which
-    is the XSL namespace. These namespaces will be handled at run-time and
-    whatever information that is needed to process there should be compiled
-    into the translet. There is also a set of namespaces that will be used in
-    the resulting document (<link idref="NSC">"NS C"</link>). This is an
-    intersection of the first two. The output document should not contain any
-    more namespace declarations than necessary.</p>
-
-    </s2><anchor name="NSA"/>
-    <s2 title="The DOM &amp; namespaces">
-    <ul>
-      <li><link anchor="dom-namespace">DOM node types and namespace types</link></li>
-      <li><link anchor="assign">Assigning namespace types to DOM nodes</link></li>                
-    </ul>
-    <anchor name="dom-namespace"/>
-    <s3 title="DOM node types and namespace types">
-
-    <p>Refer to the XSLTC <link idref="xsltc_runtime">runtime
-    environment design</link> document for a description of node types before
-    proceeding. In short, each node in the our DOM implementation is
-    represented by a simple integer. By using this integer as an index into an
-    array called <code>_type[]</code> we can find the type of the node.</p>
-
-    <p>The type of the node is an integer representing the type of element the
-    node is. All elements <code>&lt;bob&gt;</code> will be given the same type,
-    all text nodes will be given the same type, and so on. By using the node
-    type as an index an array called <code>_namesArray[]</code> we can find the
-    name of the element type - in this case "bob". This code fragment shows
-    how you can, with our current implementation, find the name of a node:</p>
-
-<source>
-    int    node = iterator.getNext();  // get next node
-    int    type = _type[node];         // get node type
-    String name = _namesArray[type];   // get node name
-</source>
-
-    <p>We want to keep the one-type-per-node arrangement, since that lets us
-    produce fairly efficient code. One type in the DOM maps to one type in
-    the compiled translet. What we could do to represent the namespace for
-    each node in the DOM is to add a <code>_namespaceType[]</code> array that holds
-    namespace types. Each node type maps to a namespace type, and each
-    namespace type maps to a namespace name (and a prefix with a limited
-    scope):</p>
-
-    <anchor name="type_mappings"/>
-    <p><img src="type_mappings.gif" alt="type_mappings.gif"/></p>
-      <p><ref>Figure 2: Mapping between node types/names, namespace types/names</ref></p>
-
-    <p>This code fragment shows how we could get the namespace name for a node:</p>
-
-<source>
-    int    node      = iterator.getNext();    // get next node
-    int    type      = _type[node];           // get node type
-    int    nstype    = _namespace[type];      // get namespace type
-    String name      = _namesArray[type];     // get node element name
-    String namespace = _nsNamesArray[nstype]; // get node namespace name
-</source>
-
-    <p>Note that namespace prefixes are not included here. Namespace prefixes
-    are local to the XML document and will be expanded to the full namespace
-    names when the nodes are put into the DOM. This, however, is not a trivial
-    matter.</p>
-    </s3><anchor name="assign"/>
-    <s3 title="Assigning namespace types to DOM nodes">
-
-    <p>We cannot simply have a single namespace prefix array similar to the
-    <code>_namespaceArray[]</code> array for mapping a namespace type to a single
-    prefix. This because prefixes can refer to different namespaces depending
-    on where in the document the prefixes are being used. In our last example's
-    <link idref="xml_sample_2">XML fragment</link> the empty prefix <code>""</code>
-    initially referred to the default namespace (the one with no name - just
-    like a Clint Eastwood character). Later on in the document the empty
-    prefix is changed to refer to a namespace called 
-    <code>"http://postal.ie/spec-1.0"</code>.</p>
-
-    <p>Namespace prefixes are only relevant at the time when the XML document
-    is parsed and the DOM is built. Once we have the DOM completed we only need
-    a table that maps each node type to a namespace type, and another array of
-    all the names of the different namespaces. So what we want to end up with
-    is something like this:</p>
-
-     <p><img src="dom_namespace1.gif" alt="dom_namespace1.gif"/></p>
-     <p><ref>Figure 3: Each namespace references in the DOM gets one entry</ref></p>
-
-    <p>The namespace table has one entry for each namespace, nomatter how many
-    prefixes were used ro reference this namespace in the DOM. To build this
-    array we need a temporary data structure used by the DOM builder. This
-    structure is a hashtable - where the various prefixes are used for the
-    hash values. The contents of each entry in the table will be a small stack
-    where previous meanings of each prefix will be stored:</p>
-
-     <p><img src="dom_namespace2.gif" alt="dom_namespace2.gif"/></p>
-     <p><ref>Figure 4: Temporary data structure used by the DOM builder</ref></p>
-
-    <p>When the first node is encountered we define a new namespace
-    <code>"foo"</code> and assign this namespace type/index 1 (the default 
-    namespace <code>""</code> has index 0). At the same time we use the prefix
-    <code>"A"</code> for a lookup in the hashtable. This gives us
-    an integer stack used for the prefix <code>"A"</code>. We push the namespace
-    type 1 on this stack. From now on, until <code>"A"</code> is pop'ed off this
-    stack, the prefix <code>"A"</code> will map to namespace type 1, which
-    represents the namespace URI <code>"foo"</code>.</p>
-
-    <p>We then encounter the next node with a new namespace definition with
-    the same namespace prefix, we create a new namespace <code>"bar"</code> and
-    we put that in the namespace table under type 2. Again we use the prefix
-    <code>"A"</code> as an entry into the namespace prefix table and we get the
-    same integer stack. We now push namespace type 2 on the stack, so that
-    namespace prefix <code>"A"</code> maps to namespace URI <code>"bar"</code>. When
-    we have traversed this node's children we need to pop the integer off the
-    stack, so when we're back at the first node the prefix <code>"A"</code> again
-    will point to namespace type 0, which maps to <code>"foo"</code>. To keep
-    track of what nodes had what namespace declarations, we use a namespace
-    declaration stack:</p>
-
-    <p><img src="dom_namespace3.gif" alt="dom_namespace3.gif"/></p>
-     <p><ref>Figure 5: Namespace declaration stack</ref></p>
-     
-    <p>Every namespace declaration is pushed on the namespace declaration
-    stack. This stack holds the node index for where the namespace was
-    declared, and a reference to the prefix stack for this declaration.
-    The <code>endElement()</code> method of the DOMBuilder class will need to
-    remove namespace declaration for the node that is closed. This is done
-    by first checking the namespace declaration stack for any namespaces
-    declared by this node. If any declarations are found these are un-declared
-    by poping the namespace prefixes off the respective prefix stack(s), and
-    then poping the entry/entries for this node off the namespace declaration
-    stack.</p>
-
-    <p>The <code>endDocument()</code> method will build an array that contains
-    all namespaces used in the source XML document - <code>_nsNamesArray[]</code>
-    - which holds the URIs of all refered namespaces. This method also builds
-    an array that maps all DOM node types to namespace types. This two arrays
-    are accessed through two new methods in the DOM interface:</p>
-
-<source>
-    public String getNamespaceName(int node);
-    public int    getNamespaceType(int node);
-</source>
-
-  </s3></s2><anchor name="NSB"/>
-  <s2 title="Namespaces in the XSL stylesheet">
-  <ul>
-    <li><link anchor="store-access">Storing and accessing namespace information</link></li>
-    <li><link anchor="mapdom-stylesheet">Mapping DOM namespaces to stylesheet namespaces</link></li>
-    <li><link anchor="wildcards">Wildcards and namespaces</link></li>
-  </ul>
-    <anchor name="store-access"/>
-    <s3 title="Storing and accessing namespace information">
-    <p>The SymbolTable class has three datastructures that are used to hold
-    namespace information:</p>
-
-    <ul>
-      <li>
-        First there is the <code>_namespaces[]</code> Hashtable that maps the names
-        of in-scope namespace to their respective prefixes. Each key in the
-        Hashtable object has a stack. A new prefix is pushed on the stack for
-        each new declaration of a namespace.
-      </li>
-      <li>
-        Then there is the <code>_prefixes[]</code> Hashtable. This has the reverse
-        function of the <code>_namespaces[]</code> Hashtable - it maps from
-        prefixes to namespaces.
-      </li>
-      <li>
-        There is also a hashtable that is used for implementing the
-        <code>&lt;xsl:namespace-alias&gt;</code> element. The keys in this
-        hashtable is taken from the <code>stylesheet-prefix</code> attribute of
-        this element, and the resulting prefix (from the <code>result-prefix</code>
-        attribute) is used as the value for each key.
-      </li>
-    </ul>
-
-    <p>The SymbolTable class offers 4 methods for accessing these data
-    structures:</p>
-
-<source>
-    public void   pushNamespace(String prefix, String uri);
-    public void   popNamespace(String prefix);
-    public String lookupPrefix(String uri);
-    public String lookupNamespace(String prefix);
-</source>
-
-    <p>These methods are wrapped by two methods in the Parser class (a Parser
-    object alwas has a SymbolTable object):</p>
-<source>
-    // This method pushes all namespaces declared within a single element
-    public void pushNamespaces(ElementEx element);
-    // This method pops all namespaces declared within a single element
-    public void popNamespaces(ElementEx element);
-</source>
-
-    <p>The translet class has, just like the DOM, a <code>namesArray[]</code>
-    structure for holding the expanded QNames of all accessed elements. The
-    compiled translet fills this array in its constructor. When the translet
-    has built the DOM (a DOMImpl object), it passes the DOM to the a DOM
-    adapter (a DOMAdapter object) together with the names array. The DOM
-    adapter then maps the translet's types to the DOM's types.</p>
-   </s3><anchor name="mapdom-stylesheet"/>
-  <s3 title="Mapping DOM namespaces and stylesheet namespaces">
-
-    <p>Each entry in the DOM's <code>_namesArray[]</code> is expanded to contain
-    the full QName, so that instead of containing <code>prefix:localname</code> it
-    will now contain <code>namespace-uri:localname</code>. In this way the expanded
-    QName in the translet will match the exanded QName in the DOM. This assures
-    matches on full QNames, but does not do much for <code>match="A:*"</code> type
-    XPath patterns. This is where our main challenge lies.</p>
-    </s3><anchor name="wildcards"/>
-    <s3 title="Wildcards and namespaces">
-
-    <p>The original implementation of the XSLTC runtime environment would
-    only allow matches on "<code>*</code>" and "<code>@*</code>" patterns. This was
-    achieved by mapping all elements that could not be mapped to a translet
-    type to 3 (DOM.ELEMENT type), and similarly all unknown attributes to
-    type 4 (DOM.ATTRIBUTE type). The main <code>switch()</code> statement in
-    <code>applyTemplates()</code> would then have a separate "<code>case()</code>"
-    for each of these. (Under each <code>case()</code> you might have to check
-    for the node's parents in case you were matching on "<code>path/*</code>"-type
-    patterns.) This figure shows how that was done:</p>
-
-    <anchor name="match_namespace1"/>
-    <p><img src="match_namespace1.gif" alt="match_namespace1.gif"/></p>
-    <p><ref>Figure 6: Previous pattern matching</ref></p>
-
-    <p>The "Node test" box here represents the "<code>switch()</code>" statement.
-    The "Node parent test" box represent each "<code>case:</code>" for that 
-    <code>switch()</code> statement. There is one <code>case:</code> for each know
-    translet node type. For each node type we have to check for any parent
-    patterns - for instance, for the pattern "<code>/foo/bar/baz</code>", we will
-    get a match with <code>case "baz"</code>, and we have to check that the parent
-    node is "<code>bar</code>" and that the grandparent is "<code>foo</code>" before
-    we can say that we have a hit. The "Element parent test" is the test that
-    is done all DOM nodes that do not directly match any translet types. This
-    is the test for "<code>*</code>" or "<code>foo/*</code>". Similarly we have a
-    "<code>case:</code>" for match on attributes ("<code>@*</code>").</p>
-
-    <p>What we now want to achieve is to insert a check for patterns on the
-    format "<code>ns:*</code>", "<code>foo/ns:*</code>" or "<code>ns:@*</code>", which
-    this figure illustrates:</p>
-
-    <anchor name="match_namespace2"/>
-      <p><img src="match_namespace2.gif" alt="match_namespace2.gif"/></p>
-      <p><ref>Figure 7: Pattern matching with namespace tests</ref></p>
-
-
-    <p>Each node in the DOM needs a namespace type as well as the QName type.
-    With this type we can match wildcard rules to any specific namespace.
-    So after any checks have been done on the whole QName of a node (the type),
-    we can match on the namespace type of the node. The main dispatch
-    <code>switch()</code> in <code>applyTemplates()</code> must be changed from this:</p>
-
-    <source>
-        public void applyTemplates(DOM dom, NodeIterator iterator,
-                                   TransletOutputHandler handler) {
-
-            // Get next node from iterator
-            while ((node = iterator.next()) != END) {
-                // Get internal node type
-                final int type = DOM.getType(node);
-                switch(type) {
-                case DOM.ROOT:      // Match on "/" pattern
-                    handleRootNode();       
-                    break;
-                case DOM.TEXT:      // Handle text nodes
-                    handleText();
-                    break;
-                case DOM.ELEMENT:   // Match on "*" pattern
-                    handleWildcardElement();
-                    break;
-                case DOM.ATTRIBUTE: // Handle on "@*" pattern
-                    handleWildcardElement();
-                    break;
-                case nodeType1:     // Handle 1st known element type
-                    compiledCodeForType1();
-                    break;
-                    :
-                    :
-                    :
-                case nodeTypeN:   // Handle nth known element type
-                    compiledCodeForTypeN();
-                    break;
-                default:
-                   NodeIterator newIterator = DOM.getChildren(node);
-                   applyTemplates(DOM, newIterator, handler);
-                   break;
-                }
-            }
-            return;
-        }
-</source>
-
-    <p>To something like this:</p>
-
-    <source>
-        public void applyTemplates(DOM dom, NodeIterator iterator,
-                                   TransletOutputHandler handler) {
-
-            // Get next node from iterator
-            while ((node = iterator.next()) != END) {
-
-                // First run check on node type
-                final int type = DOM.getType(node);
-                switch(type) {
-                case DOM.ROOT:      // Match on "/" pattern
-                    handleRootNode();
-                    continue;
-                case DOM.TEXT:      // Handle text nodes
-                    handleText();
-                    continue;
-                case DOM.ELEMENT:   // Not handled here!!!
-                    break;
-                case DOM.ATTRIBUTE: // Not handled here!!!
-                    break;
-                case nodeType1:     // Handle 1st known element type
-                    if (compiledCodeForType1() == match) continue;
-                    break;
-                    :
-                    :
-                    :
-                case nodeTypeN:     // Handle nth known element type
-                    if (compiledCodeForTypeN() == match) continue;
-                    break;
-                default:
-                    break;
-                }
-
-                // Then run check on namespace type
-                final int namespace = DOM.getNamespace(type);
-                switch(namespace) {
-                case 0: // Handle nodes matching 1st known namespace
-                    if (handleThisNamespace() == match) continue;
-                    break;
-                case 1: // Handle nodes matching 2nd known namespace
-                    if (handleOtherNamespace() == match) continue;
-                    break;
-                }
-
-                // Finally check on element/attribute wildcard
-                if (type == DOM.ELEMENT) {
-                    if (handleWildcardElement() == match)
-                        continue;
-                    else {
-                       // The default action for elements
-                       NodeIterator newIterator = DOM.getChildren(node);
-                       applyTemplates(DOM, newIterator, handler);
-                    }
-                }
-                else if (type == DOM.ATTRIBUTE) {
-                    handleWildcardAttribute();
-                    continue; 
-                }
-            }
-        }
-</source>
-
-    <p>First note that the default action (iterate on children) does not hold for
-    attributes, since attribute nodes do not have children. Then note that the way
-    the three levels of tests are ordered is consistent with the way patterns
-    should be prioritised:</p>
-
-    <ul>
-
-      <li><em>Match on element/attribute types:</em></li>
-        <ul>
-          <li><code>match="/"</code> - match on the root node</li>
-          <li><code>match="B"</code> - match on any B element</li>
-          <li><code>match="A/B"</code> - match on B elements with A parent</li>
-          <li><code>match="A | B"</code> - match on B or A element</li>
-          <li><code>match="foo:B"</code> - match on B element within "foo" namespace</li>
-        </ul>
-        <li><em>Match on namespace:</em></li>
-        <ul>
-          <li><code>match="foo:*"</code> - match on any element within "foo" namespace</li>
-          <li><code>match="foo:@*"</code> - match on any attribute within "foo" namespace</li>
-          <li><code>match="A/foo:*"</code> - match on any element within "foo" namespace with A parent</li>
-          <li><code>match="A/foo:@*"</code> - match on any attribute within "foo" namespace with A parent</li>
-        </ul>      
-
-      <li><em>Match on wildcard:</em> </li>
-        <ul>
-          <li><code>match="*"</code> - match on any element</li>
-          <li><code>match="@*"</code> - match on any attribute</li>
-          <li><code>match="A/*"</code> - match on any element with A parent</li>
-          <li><code>match="A/@*"</code> - match on any attribute with A parent</li>
-        </ul>
-     
-    </ul>
-
-     </s3></s2><anchor name="NSC"/>
-     <s2 title="Namespaces in the output document">
-
-    <p>These are the categories of namespaces that end up in the output
-    document:</p>
-
-    <ul>
-      <li>
-        Namespaces used in literal elements/attributes in the stylesheet. These
-        namespaces should be declared <em>once</em> before use in the output
-        document. These elements are copied to the output document independent
-        of namespaces in the input XML document. However, the namespaces can
-        be declared using the same prefix, such that a namespace used by a
-        literal result element can overshadow a namespace from the DOM.
-      </li>
-      <li>
-        Namespaces from elements in the stylesheet that match elements in the
-        DOM. No namespaces from the DOM should be copied to the output document
-        unless they are actually referenced in the stylesheet. No namespaces
-        from the stylesheet should be copied to the output document unless the
-        elements in which they are references match elements in the DOM.
-      </li>
-    </ul>
-
-      <anchor name="output_namespaces1"/>
-      <p><img src="output_namespaces1.gif" alt="output_namespaces1.gif"/></p>
-      <p><ref>Figure 8: Namespace declaration in the output document</ref></p>    
-
-    <p>Any literal element that ends up in the output document must declare all
-    namespaces that were declared in the <code>&lt;xsl:stylesheet&lt;</code>
-    element. Exceptions are namespaces that are listed in this element's
-    <code>exclude-result-prefixes</code> or <code>extension-element-prefixes</code>
-    attributes. These namespaces should only be declared if they are referenced
-    in the output.</p>
-
-    <p>Literal elements should only declare namespaces when necessary. A
-    literal element should only declare a namespace in the case where it
-    references a namespace using prefix that is not in scope for this
-    namespace. The output handler will take care of this problem. All namespace
-    declarations are put in the output document using the output handler's
-    <code>declarenamespace()</code> method. This method will monitor all namespace
-    declarations and make sure that no unnecessary declarations are output.
-    The datastructures used for this are similar to those used to track
-    namespaces in the XSL stylesheet:</p>
-
-    <anchor name="output_namespaces2"/>
-    <p><img src="output_namespaces2.gif" alt="output_namespaces2.gif"/></p>
-      <p><ref>Figure 9: Handling Namespace declarations in the output document</ref></p>
-
- </s2>
-</s1>
diff --git a/xdocs/sources/xsltc/xsltc_runtime.xml b/xdocs/sources/xsltc/xsltc_runtime.xml
deleted file mode 100644
index dd0ba43..0000000
--- a/xdocs/sources/xsltc/xsltc_runtime.xml
+++ /dev/null
@@ -1,415 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-  <s1 title="XSLTC runtime environment">
-  <ul>
-    <li><link anchor="overview">Runtime overview</link></li>
-    <li><link anchor="translet">The compiled translet</link></li>
-    <li><link anchor="types">External/internal type mapping</link></li>    
-    <li><link anchor="mainloop">Main program loop</link></li>
-
-  </ul>
-  <anchor name="overview"/>
-  <s2 title="Runtime overview">
-    <p>The actual transformation of the input XML document is initiated by
-    one of these classes:</p>
-
-    <ul>
-      <li>
-        <code>com.sun.xslt.runtime.DefaultRun</code> (runs in a terminal)
-      </li>
-      <li>
-        <code>com.sun.xslt.demo.applet.TransformApplet</code> (runs in an applet)
-      </li>
-      <li>
-        <code>com.sun.xslt.demo.servlet.Translate</code> (runs in a servlet)
-      </li>
-    </ul>
-
-    <p>Any one of these classes will have to go through the folloing steps in
-    order to initiate a transformation:</p>
-
-    <ul>
-      <li>
-        Instanciate the translet object. The name of the translet (ie. class)
-        to use is passed to us as a string. We use this string as a parameter
-        to the static method <code>Class.forName(String name)</code> to get a
-        reference to a translet object.
-      </li>
-      <li>
-        Instanciate a <code>com.sun.xsl.parser.Parser</code> object to parse the
-        input XML file, and instanciate a DOM (we have our own DOM
-        implementation especially designed for XSLTC) where we store the
-        input document.
-      </li>
-      <li>
-        Pass any parameters to the translet (currently only possible when
-        running the transformation in a terminal using DefaultRun)
-      </li>
-      <li>
-        Instanciate a handler for the result document. This handler must be
-        extend the <code>TransletOutputHandler</code> class.
-      </li>
-      <li>
-        Invoke the <code>transform()</code> method on the translet, passing the
-        instanciated DOM and the output handler as parameters.
-      </li>
-    </ul>
-
-    </s2><anchor name="translet"/>
-    <s2 title="The compiled translet">
-
-    <p>A translet is always a subclass of <code>AbstractTranslet</code>. As well
-    as having access to the public/protected methods in this class, the
-    translet is compiled with these methods:</p>
-
-    <p><code>public void transform(DOM, NodeIterator, TransletOutputHandler);</code></p>
-
-    <p>This method is passed a <code>DOMImpl</code> object. Depending on whether
-    the stylesheet had any calls to the <code>document()</code> function this
-    method will either generate a <code>DOMAdapter</code> object (when only one
-    XML document is used as input) or a <code>MultiDOM</code> object (when there
-    are more than one XML input documents). This DOM object is passed on to
-    the <code>topLevel()</code> method.</p>
-
-    <p>When the <code>topLevel()</code> method returns we initiate the output
-    document by calling <code>startDocument()</code> on the supplied output
-    handler object. We then call <code>applyTemplates()</code> to get the actual
-    output contents, before we close the output document by calling
-    <code>endDocument()</code> on the output handler.</p>
-
-    <p><code>public void topLevel(DOM, NodeIterator, TransletOutputHandler);</code></p>
-
-    <p>This method handles all of these top-level elements:</p>
-    <ul>
-      <li><code>&lt;xsl:output&gt;</code></li>
-      <li><code>&lt;xsl:decimal-format&gt;</code></li>
-      <li><code>&lt;xsl:key&gt;</code></li>
-      <li><code>&lt;xsl:param&gt;</code> (for global parameters)</li>
-      <li><code>&lt;xsl:variable&gt;</code> (for global variables)</li>
-    </ul>
-
-    <p><code>public void applyTemplates(DOM, NodeIterator, TransletOutputHandler);</code></p>
-
-    <p>This is the method that produces the actual output. Its central element
-    is a big <code>switch()</code> statement that is used to choose the available
-    templates for the various node in the input document. See the chapter
-    <link anchor="mainloop">Main Program Loop</link> for details on this method.</p>
-
-    <p><code>public void &lt;init&gt; ();</code></p>
-    <anchor name="namesarray"/>
-    <p>The translet's constructor initializes a table
-    of all the elements we want to search for in the XML input document.
-    This table is called the <code>namesArray</code> and it is passed to the DOM
-    holding the input XML document.</p>
-
-    <p>The constructor also initializes any <code>DecimalFormatSymbol</code>
-    objects that are used to format numbers before passing them to the
-    output handler.</p>
-
-    <p><code>public boolean stripSpace(int nodeType);</code></p>
-
-    <p>This method is only present if any <code>&lt;xsl:strip-space&gt;</code> or
-    <code>&lt;xsl:preserve-space&gt;</code> elements are present in the stylesheet.
-    If that is the case, the translet implements the
-    <code>StripWhitespaceFilter</code> interface by containing this method.</p>
-
-    </s2><anchor name="types"/>
-    <s2 title="External/internal type mapping">
-
-    <anchor name="external-types"/>
-
-    <p>This is the very core of XSL transformations: <em>Read carefully!!!</em></p>
-
-    <p>Every node in the input XML document(s) is assigned a type by the
-    DOM builder class. This type is an integer value which represents the
-    element, so that for instance all <code>&lt;bob&gt;</code> elements in the
-    input document will be given type <ref>7</ref> and can be referred to by using
-    that integer. These types can be used for lookups in the
-    <link anchor="namesarray">namesArray</link> table to get the actual
-    element name (in this case "bob"). These types are referred to as
-    <em>external types</em> or <em>DOM types</em>, as they are types known only
-    to the DOM and the DOM builder.</p>
-
-    <anchor name="internal-types"/>
-
-    <p>Similarly the translet assignes types to all element and attribute names
-    that are referenced in the stylesheet. These types are referred to as
-    <em>internal types</em> or <em>translet types</em>.</p>
-
-    <p>It is not very probable that there will be a one-to-one mapping between
-    internal and external types. There will most often be elements in the DOM
-    (ie. the input document) that are not mentioned in the stylesheet, and
-    there could be elements in the stylesheet that do not match any elements
-    in the DOM. Here is an example:</p>
-
-<source>
-      &lt;?xml version="1.0"?&gt;
-      &lt;xsl:stylesheet version="1.0" xmlns:xsl="blahblahblah"&gt;
-
-      &lt;xsl:template match="/"&gt;
-        &lt;xsl:for-each select="//B"&gt;
-          &lt;xsl:apply-templates select="." /&gt;
-        &lt;/xsl:for-each&gt;
-        &lt;xsl:for-each select="C"&gt;
-          &lt;xsl:apply-templates select="." /&gt;
-        &lt;/xsl:for-each&gt;
-        &lt;xsl:for-each select="A/B"&gt;
-          &lt;xsl:apply-templates select="." /&gt;
-        &lt;/xsl:for-each&gt;
-      &lt;/xsl:template&gt;
-
-    &lt;/xsl:stylesheet&gt;
-</source>
-
-    <p>In this stylesheet we are looking for elements <code>&lt;B&gt;</code>,
-    <code>&lt;C&gt;</code> and <code>&lt;A&gt;</code>. For this example we can assume
-    that these element types will be assigned the values 0, 1 and 2. Now, lets
-    say we are transforming this XML document:</p>
-
-<source>
-      &lt;?xml version="1.0"?&gt;
-
-      &lt;A&gt;
-        The crocodile cried:
-        &lt;F&gt;foo&lt;/F&gt;
-        &lt;B&gt;bar&lt;/B&gt;
-        &lt;B&gt;baz&lt;/B&gt;
-      &lt;/A&gt;
-</source>
-
-    <p>This XML document has the elements <code>&lt;A&gt;</code>,
-    <code>&lt;B&gt;</code> and <code>&lt;F&gt;</code>, which we assume are assigned the
-    types 7, 8 and 9 respectively  (the numbers below that are assigned for
-    specific element types, such as the root node, text nodes, etc.). This
-    causes a mismatch between the type used for <code>&lt;B&gt;</code> in the
-    translet and the type used for <code>&lt;B&gt;</code> in the DOM. Th
-    DOMAdapter class (which mediates between the DOM and the translet) has been
-    given two tables for convertint between the two types; <code>mapping</code> for
-    mapping from internal to external types, and <code>reverseMapping</code> for
-    the other way around.</p>
-
-    <p>The translet contains a <code>String[]</code> array called
-    <code>namesArray</code>. This array will contain all the element and attribute
-    names that were referenced in the stylesheet. In our example, this array
-    would contain these string (in this specific order): &quot;B&quot;, 
-    &quot;C&quot; and &quot;A&quot;. This array is passed as one of the
-    parameters to the DOM adapter constructor (the other adapter is the DOM
-    itself). The DOM adapter passes this table on to the DOM. The DOM has
-    a hashtable that maps known element names to external types. The DOM goes
-    through the <code>namesArray</code> from the DOM sequentially, looks up each
-    name in the hashtable, and is then able to map the internal type to an
-    external type. The result is then passed back to the DOM adapter.</p>
-
-    <p>The reverse is done for external types. External types that are not
-    interesting for the translet (such as the type for <code>&lt;F&gt;</code>
-    elements in the example above) are mapped to a generic <code>"ELEMENT"</code>
-    type 3, and are more or less ignored by the translet.</p>
-
-    <p>It is important that we separate the DOM from the translet. In several
-    cases we want the DOM as a structure completely independent from the
-    translet - even though the DOM is a structure internal to XSLTC. One such
-    case is when transformations are offered by a servlet as a web service.
-    Any DOM that is built should potentially be stored in a cache and made
-    available for simultaneous access by several translet/servlet couples.</p>
-
-    <p><img src="runtime_type_mapping.gif" alt="runtime_type_mapping.gif"/></p>
-    <p><ref>Figure 1: Two translets accessing a single dom using different type mappings</ref></p>
-
-    </s2><anchor name="mainloop"/>
-    <s2 title="Main program loop">
-
-    <p>The main loop in the translet is found in the <code>applyTemplates()</code>
-    method. This method goes through these steps:</p>
-
-    <ul>
-      <li>
-        Get the next node from the node iterator
-      </li>
-      <li>
-        Get the internal type of this node. The DOMAdapter object holds the
-        internal/external type mapping table, and it will supply the translet
-        with the internal type of the current node.
-      </li>
-      <li>
-        Execute a switch statement on the internal node type. There will be
-        one "case" label for each recognised node type - this includes the
-        first 7 internal node types.
-      </li>
-    </ul>
-
-    <p>The root node will have internal type 0 and will cause any initial
-    literal elements to be output. Text nodes will have internal node type 1
-    and will simply be dumped to the output handler. Unrecognized elements
-    will have internal node type 3 and will be given the default treatment
-    (a new iterator is created for the node's children, and this iterator
-    is passed with a recursive call to <code>applyTemplates()</code>).
-    Unrecognised attribute nodes (type 4) will be handled like text nodes.
-    The <code>switch()</code> statement in <code>applyTemplates</code> will thereby
-    look something like this:</p>
-
-<source>
-        public void applyTemplates(DOM dom, NodeIterator,
-                                   TransletOutputHandler handler) {
-
-            // get nodes from iterator
-            while ((node = iterator.next()) != END) {
-                // get internal node type
-                switch(DOM.getType(node)) {
-
-                case 0: // root
-                    outputPreable(handler);
-                    break;
-                case 1: // text
-                    DOM.characters(node,handler);
-                    break;
-                case 3: // unrecognised element
-                    NodeIterator newIterator = DOM.getChildren(node);
-                    applyTemplates(DOM,newIterator,handler);
-                    break;
-                case 4: // unrecognised attribute
-                    DOM.characters(node,handler);
-                    break;
-                case 7: // elements of type &lt;B&gt;
-                    someCompiledCode();
-                    break;
-                case 8: // elements of type &lt;C&gt;
-                    otherCompiledCode();
-                    break;
-                default:
-                    break;
-                }
-            }
-        }
-</source>
-
-    <p>Each recognised element will have its own piece of compiled code.</p>
-
-    <p>Note that each "case" will not lead directly to a single template.
-    There may be several templates that match node type 7
-    (say <code>&lt;B&gt;</code>). In the sample stylesheet in the previous chapter
-    we have to templates that would match a node <code>&lt;B&gt;</code>. We have
-    one <code>match="//B"</code> (match just any <code>&lt;B&gt;</code> element) and
-    one <code>match="A/B"</code> (match a <code>&lt;B&gt;</code> element that is a
-    child of a <code>&lt;A&gt;</code> element). In this case we would have to
-    compile code that first gets the type of the current node's parent, and
-    then compared this type with the type for <code>&lt;A&gt;</code>. If there was
-    no match we will have executed the first <code>&lt;xsl:for-each&gt;</code>
-    element, but if there was a match we will have executed the last one.
-    Consequentally, the compiler will generate the following code:</p>
-
-<source>
-        switch(DOM.getType(node)) {
-          :
-          :
-        case 7: // elements of type &lt;B&gt;
-            int parent = DOM.getParent(node);
-            if (DOM.getType(parent) == 9) // type 9 = elements &lt;A&gt;
-                someCompiledCode();
-            else
-                evenOtherCompiledCode();
-            break;
-          :
-          :
-        }
-</source>
-
-    <p>We could do the same for namespaces, that is, assign a numeric value
-    to every namespace that is references in the stylesheet, and use an
-    <code>"if"</code> statement for each namespace that needs to be checked for
-    each type. Lets say we had a stylesheet like this:</p>
-
-<source>
-      &lt;?xml version="1.0"?&gt;
-      &lt;xsl:stylesheet version="1.0" xmlns:xsl="blahblahblah"&gt;
-
-      &lt;xsl:template match="/"
-          xmlns:foo="http://foo.com/spec"
-          xmlns:bar="http://bar.net/ref"&gt;
-        &lt;xsl:for-each select="foo:A"&gt;
-          &lt;xsl:apply-templates select="." /&gt;
-        &lt;/xsl:for-each&gt;
-        &lt;xsl:for-each select="bar:A"&gt;
-          &lt;xsl:apply-templates select="." /&gt;
-        &lt;/xsl:for-each&gt;
-      &lt;/xsl:template&gt;
-
-    &lt;/xsl:stylesheet&gt;
-</source>
-
-    <p>And a stylesheet like this:</p>
-
-<source>
-      &lt;?xml version="1.0"?&gt;
-
-      &lt;DOC
-          xmlns:foo="http://foo.com/spec"
-          xmlns:bar="http://bar.net/ref"&gt;
-        &lt;foo:A&gt;In foo namespace&lt;/foo:A&gt;
-        &lt;bar:A&gt;In bar namespace&lt;/bar:A&gt;
-      &lt;/DOC&gt;
-</source>
-
-    <p>We could still keep the same type for all <code>&lt;A&gt;</code> elements
-    regardless of what namespace they are in, and use the same <code>"if"</code>
-    structure within the <code>switch()</code> statement above. The other option
-    is to assign different types to <code>&lt;foo:A&gt;</code> and
-    <code>&lt;bar:A&gt;</code> elements.</p>
-
-  </s2>
-</s1>
\ No newline at end of file
diff --git a/xdocs/sources/xsltc/xsltc_trax.xml b/xdocs/sources/xsltc/xsltc_trax.xml
deleted file mode 100644
index 99584b0..0000000
--- a/xdocs/sources/xsltc/xsltc_trax.xml
+++ /dev/null
@@ -1,691 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-<!-- 
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 2001, Sun
- * Microsystems., http://www.sun.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
-<s1 title="The Translet API &amp; TrAX">
-<p><ref>By</ref> <jump href="mailto:todd.miller@east.sun.com">G. Todd Miller</jump> -updated May 11, 2001</p>
-<ul>
-  <li><link anchor="abstract">Abstract</link></li>
-  <li><link anchor="trax">TrAX</link></li>
-  <li><link anchor="integrate">Translet Integration</link></li>
-  <li><link anchor="factory">SAXTransformerFactory for Translets</link></li>
-  <li><link anchor="transform">AbstractTranslet transform() method</link></li>
-  <li><link anchor="conclusion">Conclusion</link></li>
-  <li><link anchor="appendix">Appendix</link></li>      
-</ul>
-<p>See also: <jump href="../xsltc_usage.html#api">Calling XSLTC with the TrAX/JAXP API</jump></p>
-<anchor name="abstract"/>
-<s2 title="Abstract">
-<p>This document describes what I have so far as a prototype for integrating
-Translets with the JAXP TrAX. In a nutshell, a new Transformer factory
-class has be written that extends the JAXP SAXTransformerFactory class.
-The newfactory delivers Translets as Transformers, and creates Templates.
-Calling the Transformer transform() method will cause the given XML
-document to be transformed by a translet that has been compiled from the
-supplied stylesheet. The switch that determines what XSLT processor gets
-to transform the XML document is based on the value of a JAXP system
-property for the Transformers factory.</p>
-</s2><anchor name="trax"/>
-<s2 title="TrAX">
-<p>The Java API for XML Processing (JAXP) includes an XSLT framework based on the
-Transformation API for XML (TrAX). In a typical JAXP transformation application
-the steps involved in transforming an XML document with an XSLT stylesheet are: (1)
-create an instance of the TransformerFactory class, (2) from the factory instance and
-a given XSLT stylesheet, create a new Transformer object, (3) call the Transformer
-objects transform() method on a given XML document and a specified Result object.
-Alternatively, one could also ask the instance of the TransformerFactory for
-a Templates object given an XSLT stylesheet. From the Templates object, a new
-Transformer can be created, and again, its transform() method can be called with
-an XML document and specified Result object.</p>
-<p>The code below illustrates a simple JAXP transformation application (Proto.java)
-that creates the Transformer directly.</p>
-<source>import javax.xml.transform.stream.StreamSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-
-public class Proto {
-  public static void main(String[] args){
-    Proto app = new Proto();
-    app.run(args);
-  }
-
-  public void run(String[] args){
-    if (args.length != 2) {
-      usage();
-    }
-    String inputFilename = args[0];
-    String stylesheet = args[1];
-    Transformer transformer;
-    TransformerFactory factory = TransformerFactory.newInstance();
-    try {
-      transformer = factory.newTransformer(new StreamSource(stylesheet));
-      transformer.transform(new StreamSource(inputFilename),
-                            new StreamResult(System.out));
-    } catch (Exception e) {
-      // nothing...
-    }
-  }
-
-  public void usage() {
-    System.err.println(
-       "Usage: run &lt;xml_file&gt; &lt;xsl_file&gt;");
-    System.exit(1);
-  }
-}</source>
-<p>The use of Templates is useful when multiple instances of the same transformer
-are needed. For example transforming multiple documents by the same transformer,
-each working in a separate thread. In this case, the TransformerFactory is used to
-create a Templates object for a given stylesheet. Each Transformer instance is then
-created by the Templates object. In this way the Templates object can compile the
-stylesheet once, and each time a new instance of the transformer is asked for, a clone is
-provided rather than recompile the stylesheet again and again. The Proto class above
-would be modified as follows:</p>
-<source>try {
-  Templates templates = factory.newTemplates(new StreamSource(stylesheet));
-  transformer = templates.newTransformer();
-  transformer.transform(new StreamSource(inputFilename),
-                        new StreamResult(System.out));
-} catch (Exception e) {
-  // nothing...
-}</source>
-<p>The JAXP TransformerFactory is configurable. The API supports configuring the
-factory to: (1) use attributes which are passed down to the underlying XSL processor,
-these are vendor dependent, (2) register an ErrorListener that provides callbacks
-to handle error and warning message generated by the XSL processor, (3) register
-an URIResolver which can be used to resolve URIs encountered in xsl:include,
-xsl:import,anddocument() functions.</p>
-<p>The JAXP TransformerFactory can be queried at runtme to discover what features
-it supports. For example, an application might want to know if a particular factory
-implementation supports the use of SAX events as a source, or whether it can write
-out transformation results as a DOM. The factory API queries with the getFeature()
-method. In the Proto code above, I could add the following code before the try-catch
-block:</p>
-<source>if (!(factory.getFeature(StreamSource.FEATURE)) ||
-    !(factory.getFeature(StreamResult.FEATURE))) {
-       System.err.println(
-         "Stream Source/Result not supported by Transformer Factory\n" +
-         "exiting.");
-       System.exit(1);
-}</source>
-</s2><anchor name="integrate"/>
-<s2 title="Translet Integration">
-<p>The crux of the integration strategy is the pluggable TransformerFactory class. The
-JAXP specifies that the actual TransformerFactory implementation be controlled by the
-a Java system property (javax.xml.transformer.TransformerFactory) . This system property can be specified in the usual ways, for
-example in a properties file or on the command line as a -D optionpassed to thejava
-engine itself. The strategy involves writing a TransformerFactory for Translets.
-In the JAXP the TransformerFactory is an abstract class. In Xalan, the system
-property specifies the implementation class TransformerFactoryImpl (org.apache.xalan.processor.TransformerFactoryImpl).
- This implementation is an extension of the abstract SAXTransformerFactory class, which in
-turn is an extension of the abstract TransformerFactory class (javax.xml.transform.sax.SAXTransformerFactory).</p>
-<p>In this prototype integration I have constructed an XSLTC TransformerFactory as
-an extension of the abstract SAXTransformerFactory class.</p>
-
-</s2><anchor name="factory"/>
-<s2 title="SAXTransformerFactory for Translets">
-<p>The prototype XSLTC TransformerFactory needs to accomplish the following:</p>
- <ul>
-   <li><link anchor="saxtransformerfactory">Implement the abstract methods of the SAXTransformerFactory class</link></li>
-   <li><link anchor="transformerfactory">Implement the abstract methods of the TransformerFactory class</link></li></ul>
-<anchor name="saxtransformerfactory"/>
-<s3 title="SAXTransformerFactory Methods">
-
-<p>The methods of the abstract SAXTransformerFactory class have been stubbed out as
-follows.</p>
-<source>public TemplatesHandler newTemplatesHandler() { return null; }
-public TransformerHandler newTransformerHandler() { return null; }
-public TransformerHandler newTransformerHandler(Source src) {
-return null;
-}
-public TransformerHandler newTransformerHandler(Templates templates) {
-return null;
-}
-public XMLFilter newXMLFilter(Source src) { return null; }
-public XMLFilter newXMLFilter(Templates templates) { return null; }</source>
-<p>These stubbed out methods will need to be replaced with real implementations.</p>
-</s3><anchor name="transformerfactory"/>
-<s3 title="TransformerFactory Methods">
-<p>The methods of the abstract TransformerFactory class have been stubbed out as
-follows:</p>
-<source>public ErrorListener getErrorListener() { return null; }
-public void setErrorListener(ErrorListener listener) { }
-public Object getAttribute(String name) { return null; }
-public void setAttribute(String name, Object value) { }
-public boolean getFeature(String name) { return false; }
-public URIResolver getURIResolver() { return null; }
-public void setURIResolver(URIResolver resolver) { }
-public Source getAssociatedStylesheet(Source src, String media,
-String title, String charset) { return null; }
-public Templates newTemplates(Source xslSrc) throws
-TransformerConfigurationException { return null; }
-public Transformer newTransformer() throws
-TransformerConfigurationException { return null; }</source>
-<p>The methods listed above fall into 4 categories: (1) <link anchor="transformcreation">Transform creation</link>, 
-(2) <link anchor="templatescreation">Templates creation</link>, (3) <link anchor="featurediscovery">feature discovery</link>, 
-and (4) <link anchor="limitations">others that will remain unimplemented at this time</link>.</p>
-<anchor name="transformercreation"/>
-<s4 title="Transformer Creation">
-<p>The JAXP specifies a method that takes the stylesheet as a Source object and returns a
-Transformer.</p>
-<p><code>public Transformer newTransformer(Source xslSrc)</code></p>
-<p>This method needs to return a Transformer to comply with the JAXP API, but also
-needs to return a Translet. In the XSLTC/Xalan API, a Translet is an interface that is
-implemented by the runtime abstract class AbstractTranslet (org.apache.xalan.xsltc.Translet and org.apache.xalan.xsltc.runtime.AbstractTranslet, repectively). Therefore, I had to
-change the AbstractTranslet class so that it will extend the abstract Transformer
-class while still implementing the Translet interface. Once this is done, then the
-newTransformer() method of the new TransformerFactory can return a Translet that
-is a Transformer.</p>
-<p>In order to have AbstractTranslet extend Transformer, several abstract methods
-have to be implemented in AbstractTranslet class. These are:</p>
-<source>public void clearParameters() { }
-public ErrorListener getErrorListener() { return null; }
-public Properties getOutputProperties() throws IllegalArgumentException {
-  return null;
-}
-public String getOutputProperty(String name)
-  throws IllegalArgumentException{ return ""; }
-//public Object getParameter(String name) { return null; }
-public URIResolver getURIResolver() { return null; }
-public void setErrorListener(ErrorListener listener)
-  throws IllegalArgumentException { }
-public void setOutputProperties(Properties props)
-  throws IllegalArgumentException { }
-public void setOutputProperty(String name, String value)
-  throws IllegalArgumentException { }
-public void setParameter(String name, Object value) { }
-public void setURIResolver(URIResolver resolver) { }
-public void transform(Source xmlsrc, Result outputTarget)
-  throws TransformerException { ... }</source>
-<p>Mapping these methods to some existing ones in AbstractTranslet still has to be
-done. In particular the transform() method which is explained further in a following
-section.</p>
-<p>Now that XSLTC�s AbstractTranslet is a Transformer, the new Transformer
-factory class can implement the newTransformer() method. This method needs to do
-two fundamental things: (1) create a translet from the given XSLT stylesheet and (2)
-instantiate the translet so it can be returned as a Transformer.</p>
-<p>The code belows hows my current implementation of the newTransformer() method
-in the new factory class:</p>
-<source>public class ToddsTransformerFactoryImpl extends SAXTransformerFactory {
-  ...
-  public Transformer newTransformer(Source stylesheet) throws
-    TransformerConfigurationException
-  {
-    XSLTC xsltc = new XSLTC();
-    xsltc.init();
-    String stylesheetName = stylesheet.getSystemId();
-    int index = stylesheetName.indexOf(�.�);
-    String transletName = stylesheetName.substring(0,index);
-    boolean isSuccessful = true;
-    try {
-      File file = new File(stylesheetName);
-      URL url = file.toURL();
-      isSuccessful = xsltc.compile(url);
-    } catch (MalformedURLException e) {
-        throw new TransformerConfigurationException(
-               "URL for stylesheet �" + stylesheetName +
-               "� can not be formed.");
-    }
-
-    if (!isSuccessful) {
-      throw new TransformerConfigurationException(
-          "Compilation of stylesheet �" + stylesheetName + "� failed.");
-    }
-    
-    Translet translet = null;
-    try {
-      Class clazz = Class.forName(transletName);
-      translet = (Translet)clazz.newInstance();
-      ((AbstractTranslet)translet).setTransletName(transletName);
-     } catch (ClassNotFoundException e) {
-         throw new TransformerConfigurationException(
-              "Translet class �" + transletName + "� not found.");
-     } catch (InstantiationException e) {
-         throw new TransformerConfigurationException(
-              "Translet class �" + transletName +
-              "� could not be instantiated");
-     } catch (IllegalAccessException e) {
-         throw new TransformerConfigurationException(
-             "Translet class �" + transletName + "� could not be accessed.");
-     }
-     return (AbstractTranslet)translet;
-  }
-}</source>
-</s4><anchor name="templatescreation"/>
-<s4 title="Templates Creation">
-<p>The JAXP specifies a method that takes the stylesheet as a Source object and returns a
-Templates object.</p>
-<p><code>public Templates newTemplates(Source xslSrc)</code></p>
-<p>To implement this method I needed to create a new class that would be a Templates
-for Translets object. The new class TransletTemplates (org.apache.xalan.xsltc.runtime.TransletTemplates) implements the Templates
-interface as is shown below:</p>
-<source>package org.apache.xalan.xsltc.runtime;
-
-import javax.xml.transform.Templates;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import org.apache.xalan.xsltc.runtime.AbstractTranslet;
-import java.util.Properties;
-
-public class TransletTemplates implements Templates {
-  public TransletTemplates(Transformer translet) {
-    _translet = (AbstractTranslet)translet;
-  }
-
-  public Properties getOutputProperties() { /*TBD*/ return null; }
-
-  public Transformer newTransformer() throws
-    TransformerConfigurationException
-  {
-    if (_translet == null) {
-      throw new TransformerConfigurationException(
-              "Error: Null Translet");
-    }
-    return _translet;
-  }
-  private AbstractTranslet _translet = null;
-}</source>
-<p>The factory method newTemplates() simply creates a Transformer for the stylesheet,
-and returns a newTransletTemplates object. The implementation of newTemplates()
-is shown below:</p>
-<source>public class TransformerFactoryImpl extends SAXTransformerFactory {
-...
-  public Templates newTemplates(Source stylesheet) throws
-    TransformerConfigurationException
-  {
-    Transformer translet = newTransformer(stylesheet);
-    return new TransletTemplates(translet);
-  }
-}</source>
-<p>This implementation only satisfies the JAXP, it does not address caching of previously
-created translets. This type of mechanism belongs in Templates,where a given
-stylesheet will be compiled one time only, but the generated translet can be cloned to
-create multiple instances upon demand.</p>
-</s4><anchor name="featurediscovery"/>
-<s4 title="Feature Discovery">
-<p>The JAXP specifies a method that allows programs to discover what features the factory
-is capable of supporting.</p>
-<p><code>public boolean getFeature(String featureName)</code></p>
-<p>At this time the new transformer factory supports Stream sources and results, and
-the SAX Transform factory feature. The getFeature() implementation is shown below:</p>
-<source>public class TransformerFactoryImpl extends SAXTransformerFactory {
-  ...
-  public boolean getFeature(String name) {
-    if ((StreamSource.FEATURE == name) ||
-        (StreamResult.FEATURE == name) ||
-        (SAXTransformerFactory.FEATURE == name)) {
-        return true;
-    } else if ((StreamSource.FEATURE.equals(name))
-            || (StreamResult.FEATURE.equals(name))
-            || (SAXTransformerFactory.FEATURE.equals(name))) {
-         return true;
-    } else {
-         return false;
-    }
-  }
-}</source>
-<p>As the other features are implemented, this methods will need to be updated.</p>
-
-</s4><anchor name="limitations"/>
-<s4 title="Limitations">
-<p>As you can see, the prototype will compile the stylesheet everytime. This obviously
-needs to be smarter. This is where the question �do I already have this translet?� needs
-to be answered. Also for now the translet bytecodes are written out to a File in the current
-working directory, and then instantiated using a Class.forName, newInstance()
-pair. This also needs work. Note the return statement, the Translet is cast to an AbstractTranslet
-which now is a Transformer.</p>
-</s4>
-</s3>
-</s2><anchor name="transform"/>
-<s2 title="AbstractTranslet�s transform() Method">
-<p>Now the JAXP program (Proto) shown in the first section has a way to get a Transformer
-factory that can return Translets. The next step of the Proto.java program is
-calling the transform() method and having the Translet process the given XML
-document.</p>
-<p>This requires some surgery in the AbstractTranslet class again. The AbstractTranslet
-already has a transform() method, but its signature is not the same as the
-JAXP Transform signature. In the AbstractTranslet, transform methods expect a DOM
-argument, in some cases a NodeIterator, and a TransletOutputHandler argument. The
-JAXP Transform�s transform() signature requires only the XML document as a Source
-object reference and an outputTarget as a Result object reference. My implementation
-of the JAXP transform() signature is as shown:</p>
-
-<source>public void transform(Source xmlsrc, Result outputTarget)
-  throws TransformerException
-{
-  doTransform( xmlsrc.getSystemId(),
-    ((StreamResult)outputTarget).getOutputStream() );
-}</source>
-<p>This implementation leverages code derived from XSLTC�s DefaultRun class. In
-that class there is a doTransform() method that carries out the work of: (1) parsing the
-input XML document (using a JAXP SAXParserFactory and SAXParser), (2) creating
-a DOMImpl (org.apache.xalan.xsltc.dom.DOMImpl), (3) creating a SAXOutputHandler, and finally (4) calling the translet to
-transform the input XML document (from the DOMImpl).</p>
-<p>The code for doTransform is shown below:</p>
-<source>public abstract class AbstractTranslet extends Transformer implements Translet{
-  ...
-  private void doTransform(String xmlDocName, OutputStream ostream) {
-    try {
-      final Translet translet = (Translet)this; // GTM added
-
-      // Create a SAX parser and get the XMLReader object it uses
-      final SAXParserFactory factory = SAXParserFactory.newInstance();
-      final SAXParser parser = factory.newSAXParser();
-      final XMLReader reader = parser.getXMLReader();
-
-      // Set the DOM�s DOM builder as the XMLReader�s SAX2 content handler
-      final DOMImpl dom = new DOMImpl();
-      reader.setContentHandler(dom.getBuilder());
-      // Create a DTD monitor and pass it to the XMLReader object
-      final DTDMonitor dtdMonitor = new DTDMonitor();
-      dtdMonitor.handleDTD(reader);
-      dom.setDocumentURI(xmlDocName);
-      /****************
-      if (_uri)
-        reader.parse(xmlDocName);
-      else
-      *******************/
-      reader.parse("file:"+(new File(xmlDocName).getAbsolutePath()));
-
-      // Set size of key/id indices
-      setIndexSize(dom.getSize());
-      // If there are any elements with ID attributes, build an index
-      dtdMonitor.buildIdIndex(dom, 0, this);
-
-      setUnparsedEntityURIs(dtdMonitor.getUnparsedEntityURIs());
-    
-      // Transform the document
-      String encoding = translet.getOutputEncoding();
-      if (encoding == null) encoding = "UTF-8";
-    
-      //TextOutput textOutput = new TextOutput(System.out, encoding);
-      DefaultSAXOutputHandler saxHandler = new
-         DefaultSAXOutputHandler(ostream, encoding);
-      TextOutput textOutput = new TextOutput(saxHandler, encoding);
-      translet.transform(dom, textOutput);
-      textOutput.flush();
-    }
-    catch (TransletException e) {
-      ...
-    }
-    catch (RuntimeException e) {
-      ...
-    }
-    catch (FileNotFoundException e) {
-      ...
-    }
-    catch (MalformedURLException e) {
-      ...
-    }
-    catch (UnknownHostException e) {
-      ...
-    }
-    catch (Exception e) {
-      ...
-    }
-  }
-}</source>
-</s2><anchor name="conclusion"/>
-<s2 title="Conclusion">
-<p>This is the current state of the integration of Translet and TrAX. The JAXP program
-illustrated in the first section (Proto.java) compiles and runs with the changes outlined
-above. The new transformer factory TransformerFactoryImpl supports transformer,
-templates creation, and the feature discovery mechanism. The transformers
-returned from the factory are in fact AbstractTranslet objects. The new class
-TransletTemplates implements the Templates interface for translets. This is the
-result of a first pass implementation, there are many stubbed out methods that need to
-be implemented, translet caching in Templates needs to be implemented and support
-for Source and Result types beyond simple stream types, such as DOM and SAX.</p>
-
-</s2><anchor name="appendix"/>
-<s2 title="Appendix">
-<ul>
-  <li><link anchor="runscript">The Run script</link></li>
-  <li><link anchor="transformerfactoryimpl">TransformerFactoryImpl.java</link></li>
-  <li><link anchor="TransletTemplates">TransletTemplates.java</link></li>
-  <li><link anchor="makefile">The Makefile</link></li>
-</ul>
-<anchor name="runscript"/>
-<s3 title="The Run script">
-<p>By changing the FAC variable I can switch between the two Transformer factory implementations
-for testing.</p>
-<source>#!/bin/ksh
-JAXP=/usr/local/jaxp-1.1/jaxp.jar
-CRIMSON=/usr/local/jaxp-1.1/crimson.jar
-XSLT=/net/bigblock/files18/tmiller/xml-xalan/java/build/classes
-XML=/net/bigblock/files18/tmiller/xml-xalan/java/bin/xml.jar
-BCEL=/net/bigblock/files18/tmiller/xml-xalan/java/bin/BCEL.jar
-JCUP=/net/bigblock/files18/tmiller/xml-xalan/java/bin/java_cup.jar
-JCUPRT=/net/bigblock/files18/tmiller/xml-xalan/java/bin/runtime.jar
-CLASSPATH=${JAXP}:${CRIMSON}:${XSLT}:${XML}:${BCEL}:${JCUP}:${JCUPRT}:.
-FAC=org.apache.xalan.xsltc.runtime.TransformerFactoryImpl
-#FAC=org.apache.xalan.processor.TransformerFactoryImpl
-java -classpath ${CLASSPATH} \
-     -Djavax.xml.transform.TransformerFactory=${FAC} \
-     Proto $@</source>
-</s3><anchor name="transformerfactoryimpl"/>
-<s3 title="TransformerFactoryImpl.java">
-
-<source>package org.apache.xalan.xsltc.runtime;
-
-import javax.xml.transform.Templates;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.ErrorListener;
-import javax.xml.transform.Source;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.URIResolver;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import javax.xml.transform.sax.TemplatesHandler;
-import javax.xml.transform.sax.TransformerHandler;
-
-import org.xml.sax.XMLFilter;
-
-import org.apache.xalan.xsltc.Translet;
-import org.apache.xalan.xsltc.compiler.XSLTC;
-import org.apache.xalan.xsltc.runtime.AbstractTranslet;
-
-import java.io.File;
-import java.net.URL;
-import java.net.MalformedURLException;
-
-/**
- * Implementation of a JAXP1.1 SAXTransformerFactory for Translets.
- */
-public class TransformerFactoryImpl extends SAXTransformerFactory {
-  public TransformerFactoryImpl() { /* nothing yet */ }
-
-  //////////////////////////////////////////////////////
-  // SAXTransformerFactory (subclass of TransformerFactory)
-  //
-  public TemplatesHandler newTemplatesHandler() { /*TBD*/ return null; }
-  public TransformerHandler newTransformerHandler() { /*TBD*/ return null; }
-  public TransformerHandler newTransformerHandler(Source src) {
-     /*TBD*/ return null;
-  }
-  public TransformerHandler newTransformerHandler(Templates templates) {
-     /*TBD*/ return null;
-  }
-  public XMLFilter newXMLFilter(Source src) { /*TBD*/ return null; }
-  public XMLFilter newXMLFilter(Templates templates) { /*TBD*/ return null; }
-
-  //
-  // End SAXTransformerFactory methods
-  //////////////////////////////////////////////////////
-  //////////////////////////////////////////////////////
-  // TransformerFactory
-  //
-  public ErrorListener getErrorListener() { /*TBD*/ return null; }
-  public void setErrorListener(ErrorListener listener) {/*TBD*/ }
-  public Object getAttribute(String name) { /*TBD*/ return null; }
-  public void setAttribute(String name, Object value) { /*TBD*/ }
-  public boolean getFeature(String name) {
-    if ((StreamSource.FEATURE == name) ||
-        (StreamResult.FEATURE == name) ||
-        (SAXTransformerFactory.FEATURE == name)) {
-        return true;
-     } else if ((StreamSource.FEATURE.equals(name))
-             || (StreamResult.FEATURE.equals(name))
-             || (SAXTransformerFactory.FEATURE.equals(name))) {
-        return true;
-     } else {
-        return false;
-    }
-  }
-  public URIResolver getURIResolver() { /*TBD*/ return null; }
-  public void setURIResolver(URIResolver resolver) {/*TBD*/ }
-  public Source getAssociatedStylesheet(Source src, String media,
-       String title, String charset) { /*TBD*/ return null; }
-  public Transformer newTransformer() throws
-    TransformerConfigurationException { /*TBD*/ return null; }
-  //
-  // End TransformerFactory methods
-  //////////////////////////////////////////////////////
-  public Transformer newTransformer(Source stylesheet) throws
-  TransformerConfigurationException
-  {
-    XSLTC xsltc = new XSLTC();
-    xsltc.init();
-    String stylesheetName = stylesheet.getSystemId();
-    int index = stylesheetName.indexOf(�.�);
-    String transletName = stylesheetName.substring(0,index);
-    boolean isSuccessful = true;
-    try {
-      File file = new File(stylesheetName);
-      URL url = file.toURL();
-      isSuccessful = xsltc.compile(url);
-    } catch (MalformedURLException e) {
-        throw new TransformerConfigurationException(
-            "URL for stylesheet �" + stylesheetName +
-            "� can not be formed.");
-    }
-    if (!isSuccessful) {
-      throw new TransformerConfigurationException(
-           "Compilation of stylesheet �" + stylesheetName + "� failed.");
-    }
-    
-    Translet translet = null;
-    try {
-      Class clazz = Class.forName(transletName);
-      translet = (Translet)clazz.newInstance();
-      ((AbstractTranslet)translet).setTransletName(transletName);
-    } catch (ClassNotFoundException e) {
-       throw new TransformerConfigurationException(
-            "Translet class �" + transletName + "� not found.");
-    } catch (InstantiationException e) {
-        throw new TransformerConfigurationException(
-            "Translet class �" + transletName +
-            "� could not be instantiated");
-    } catch (IllegalAccessException e) {
-        throw new TransformerConfigurationException(
-            "Translet class �" + transletName + "� could not be accessed.");
-    }
-    return (AbstractTranslet)translet;
-  }
-  public Templates newTemplates(Source stylesheet) throws
-  TransformerConfigurationException
-  {
-  Transformer translet = newTransformer(stylesheet);
-  return new TransletTemplates(translet);
-  }
-}</source>
-</s3><anchor name="translettemplates"/>
-<s3 title="TransletTemplates.java">
-<source>package org.apache.xalan.xsltc.runtime;
-
-import javax.xml.transform.Templates;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.sax.SAXTransformerFactory;
-
-import org.apache.xalan.xsltc.runtime.AbstractTranslet;
-import java.util.Properties;
-
-/**
- * Implementation of a JAXP1.1 Templates object for Translets.
- */
-public class TransletTemplates implements Templates {
-  public TransletTemplates(Transformer translet) {
-    _translet = (AbstractTranslet)translet;
-  }
-  public Properties getOutputProperties() { /*TBD*/ return null; }
-  public Transformer newTransformer() throws
-    TransformerConfigurationException
-  {
-    if (_translet == null) {
-      throw new TransformerConfigurationException(
-           "Error: Null Translet");
-    }
-    return _translet;
-  }
-  private AbstractTranslet _translet = null;
-}</source>
-</s3><anchor name="makefile"/> 
-<s3 title="The Makefile">
-<source>JAXP=/usr/local/jaxp-1.1/jaxp.jar
-CRIMSON=/usr/local/jaxp-1.1/crimson.jar
-XSLT=/net/bigblock/files18/tmiller/xml-xalan/java/build/classes
-CLASSPATH=${JAXP}:${CRIMSON}:${XSLT}
-SRCS=\
-Proto.java
-all:
-javac -classpath ${CLASSPATH} ${SRCS}</source>
-</s3>
-</s2>
-</s1>
\ No newline at end of file
diff --git a/xdocs/sources/xsltc/xsltover.xml b/xdocs/sources/xsltc/xsltover.xml
deleted file mode 100644
index 155782c..0000000
--- a/xdocs/sources/xsltc/xsltover.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
-
-<!--
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 1999 The Apache Software Foundation.  All rights 
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:  
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Xalan" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written 
- *    permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 1999, Lotus
- * Development Corporation., http://www.lotus.com.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- -->
- 
-
-<s1 title="XSLT Compiler and Runtime">
-   
-   <s2 title="Using the Command-Line Utility">
-
-   </s2>
-</s1>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xalan.apache.org
For additional commands, e-mail: dev-help@xalan.apache.org