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

git-svn-id: https://svn.apache.org/repos/asf/xalan/java/tags/xalan-j_2_2_D05@335122 13f79535-47bb-0310-9956-ffa450edef68
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
--- a/xdocs/sources/xsltc/DOMInterface.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/DOMLocking.gif b/xdocs/sources/xsltc/DOMLocking.gif
deleted file mode 100644
index cae33b4..0000000
--- a/xdocs/sources/xsltc/DOMLocking.gif
+++ /dev/null
Binary files 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
--- a/xdocs/sources/xsltc/all_namespaces.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/cast_expression.gif b/xdocs/sources/xsltc/cast_expression.gif
deleted file mode 100644
index 9bb0090..0000000
--- a/xdocs/sources/xsltc/cast_expression.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/compiler_AST.gif b/xdocs/sources/xsltc/compiler_AST.gif
deleted file mode 100644
index 69871b6..0000000
--- a/xdocs/sources/xsltc/compiler_AST.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/compiler_DOM.gif b/xdocs/sources/xsltc/compiler_DOM.gif
deleted file mode 100644
index a056cbb..0000000
--- a/xdocs/sources/xsltc/compiler_DOM.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/compiler_architecture.gif b/xdocs/sources/xsltc/compiler_architecture.gif
deleted file mode 100644
index e57d661..0000000
--- a/xdocs/sources/xsltc/compiler_architecture.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/dom_namespace1.gif b/xdocs/sources/xsltc/dom_namespace1.gif
deleted file mode 100644
index 2b9418e..0000000
--- a/xdocs/sources/xsltc/dom_namespace1.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/dom_namespace2.gif b/xdocs/sources/xsltc/dom_namespace2.gif
deleted file mode 100644
index 7fce24d..0000000
--- a/xdocs/sources/xsltc/dom_namespace2.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/dom_namespace3.gif b/xdocs/sources/xsltc/dom_namespace3.gif
deleted file mode 100644
index d62b9b8..0000000
--- a/xdocs/sources/xsltc/dom_namespace3.gif
+++ /dev/null
Binary files 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
--- a/xdocs/sources/xsltc/key_relations.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/match_namespace1.gif b/xdocs/sources/xsltc/match_namespace1.gif
deleted file mode 100644
index 4d0056d..0000000
--- a/xdocs/sources/xsltc/match_namespace1.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/match_namespace2.gif b/xdocs/sources/xsltc/match_namespace2.gif
deleted file mode 100644
index db10277..0000000
--- a/xdocs/sources/xsltc/match_namespace2.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/namespace_stack.gif b/xdocs/sources/xsltc/namespace_stack.gif
deleted file mode 100644
index a469d23..0000000
--- a/xdocs/sources/xsltc/namespace_stack.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/output_namespaces1.gif b/xdocs/sources/xsltc/output_namespaces1.gif
deleted file mode 100644
index 5068fc2..0000000
--- a/xdocs/sources/xsltc/output_namespaces1.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/output_namespaces2.gif b/xdocs/sources/xsltc/output_namespaces2.gif
deleted file mode 100644
index aaf7cf7..0000000
--- a/xdocs/sources/xsltc/output_namespaces2.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/pattern_objects.gif b/xdocs/sources/xsltc/pattern_objects.gif
deleted file mode 100644
index ea07393..0000000
--- a/xdocs/sources/xsltc/pattern_objects.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/runtime_architecture.gif b/xdocs/sources/xsltc/runtime_architecture.gif
deleted file mode 100644
index 9c8e2e7..0000000
--- a/xdocs/sources/xsltc/runtime_architecture.gif
+++ /dev/null
Binary files 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
--- a/xdocs/sources/xsltc/runtime_type_mapping.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/sort_objects.gif b/xdocs/sources/xsltc/sort_objects.gif
deleted file mode 100644
index 0ec7cbb..0000000
--- a/xdocs/sources/xsltc/sort_objects.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/type_mapping.gif b/xdocs/sources/xsltc/type_mapping.gif
deleted file mode 100644
index bb3cbb9..0000000
--- a/xdocs/sources/xsltc/type_mapping.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/type_mappings.gif b/xdocs/sources/xsltc/type_mappings.gif
deleted file mode 100644
index 31f888c..0000000
--- a/xdocs/sources/xsltc/type_mappings.gif
+++ /dev/null
Binary files differ
diff --git a/xdocs/sources/xsltc/typecast.gif b/xdocs/sources/xsltc/typecast.gif
deleted file mode 100644
index 2a9c168..0000000
--- a/xdocs/sources/xsltc/typecast.gif
+++ /dev/null
Binary files 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>