dleslie     00/02/04 06:39:52

  Added:       xdocs/sources entities.ent ext.xml javadocPackages.xml
                        start.xml xalanLocal.xml
               xdocs/sources/xalan api.xml apiResources.xml commandline.xml
                        dtm.xml extensions.xml faq.xml getstarted.xml
                        install.xml javadocOverview.xml
                        org-apache-xalan-xpath-dtm.xml
                        org-apache-xalan-xpath-xdom.xml
                        org-apache-xalan-xpath-xml.xml
                        org-apache-xalan-xpath.xml
                        org-apache-xalan-xslt-client.xml
                        org-apache-xalan-xslt-extensions.xml
                        org-apache-xalan-xslt-trace.xml
                        org-apache-xalan-xslt.xml
                        org-apache-xml-serialize.xml overview.xml
                        readme.xml resources.xml samples.xml
               xdocs/style loaderjdoc.xml
               xdocs/style/dtd javadocpackages.dtd
               xdocs/style/stylesheets package2html.xsl
                        packages2project.xsl
  Log:
  Ne organization of documentation xml source files, and style files for 
generation of javadoc
  top-level, and package level topics.
  
  Revision  Changes    Path
  1.1                  xml-xalan/xdocs/sources/entities.ent
  
  Index: entities.ent
  ===================================================================
  <?xml encoding="US-ASCII"?>
  
  <!ENTITY xslt4j "Xalan">
  <!ENTITY xml4j "Xerces-Java">
  <!ENTITY xslt4c "Xalan-C++">
  <!ENTITY xml4c "Xerces-C++">
  <!ENTITY done-j SYSTEM "sbk:/sources/xalan/DONE">
  <!ENTITY status-j SYSTEM "sbk:/sources/xalan/STATUS">
  <!ENTITY bugs-j SYSTEM "sbk:/sources/xalan/BUGS">
  <!ENTITY done-c SYSTEM "sbk:/sources/xalan/c/DONE">
  <!ENTITY status-c SYSTEM "sbk:/sources/xalan/c/STATUS">
  <!ENTITY bugs-c SYSTEM "sbk:/sources/xalan/c/BUGS">
  <!ENTITY resourceFile "sbk:/sources/xalan/resources.xml">
  
  
  
  1.1                  xml-xalan/xdocs/sources/ext.xml
  
  Index: ext.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE book SYSTEM "sbk:/style/dtd/book.dtd">
  
  
  <book title="Extensions" copyright="2000 The Apache Software Foundation">
  
    <resources source="sbk:/sources/xalan/resources.xml"/>
     
    <document id="extensions" 
              label="Extensions" 
              source="xalan/extensions.xml"/>
              
  </book>
  
  
  
  1.1                  xml-xalan/xdocs/sources/javadocPackages.xml
  
  Index: javadocPackages.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE javadocPackages SYSTEM "sbk:/style/dtd/javadocPackages.dtd">
  
  <javadocPackages source="xalan" target="../src">
    <resources source="sbk:sources/xalan/resources.xml"/>
    <home source="javadocOverview.xml" target="javadocOverview.html"/>
    <package source="org-apache-xalan-xpath.xml" 
target="org/apache/xalan/xpath/package.html"/>
    <package source="org-apache-xalan-xpath-xdom.xml" 
target="org/apache/xalan/xpath/xdom/package.html"/>
    <package source="org-apache-xalan-xpath-dtm.xml" 
target="org/apache/xalan/xpath/dtm/package.html"/>
    <package source="org-apache-xalan-xpath-xml.xml" 
target="org/apache/xalan/xpath/xml/package.html"/>
    <package source="org-apache-xalan-xslt.xml" 
target="org/apache/xalan/xslt/package.html"/>
    <package source="org-apache-xalan-xslt-trace.xml" 
target="org/apache/xalan/xslt/trace/package.html"/>
    <package source="org-apache-xalan-xslt-client.xml" 
target="org/apache/xalan/xslt/client/package.html"/>
    <package source="org-apache-xalan-xslt-extensions.xml" 
target="org/apache/xalan/xslt/extensions/package.html"/>
  </javadocPackages>
  
  
  1.1                  xml-xalan/xdocs/sources/start.xml
  
  Index: start.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE book SYSTEM "sbk:/style/dtd/book.dtd">
  
  
  <book title="Extensions" copyright="2000 The Apache Software Foundation">
  
    <resources source="sbk:/sources/xalan/resources.xml"/>
     
    <document id="getstarted" 
              label="Getting Started" 
              source="xalan/getstarted.xml"/>
              
  </book>
  
  
  
  1.1                  xml-xalan/xdocs/sources/xalanLocal.xml
  
  Index: xalanLocal.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE book SYSTEM "sbk:/style/dtd/book.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 [EMAIL PROTECTED]
   *
   * 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/>.
   -->
  
  <book title="Xalan XSL Transformer User's Guide" copyright="1999 The Apache 
Software Foundation">
  
    <resources source="sbk:/sources/xalan/resources.xml"/>
     
    <document id="overview" 
              label="Overview" 
              source="xalan/overview.xml"/>
              
    <separator/>
  
    <document id="install" 
              label="Installation" 
              source="xalan/install.xml"/>
  
    <document id="readme" 
              label="Release Notes" 
              source="xalan/readme.xml"/>
              
    <separator/>           
              
    <document id="commandline" 
              label="Command Line" 
              source="xalan/commandline.xml"/>
  
    <document id="api" 
              label="Xalan API" 
              source="xalan/api.xml"/>
              
    <separator/>
  
    <document id="dtm" 
              label="Xalan DTM" 
              source="xalan/dtm.xml"/>
              
    <separator/>
    
    <document id="extensions" 
              label="Extensions" 
              source="xalan/extensions.xml"/>
              
  </book>
  
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/api.xml
  
  Index: api.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?> 
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="&xslt4j; API">
    
    <s2 title="Introduction">
      <p>This document provides an overview of the &xslt4j; API. For the 
details (javadoc), see 
      <resource-ref idref="APIDocumentation"/>. For a general introduction to 
&xslt4j;, see  
      <link idref="overview">Overview: XSL Transformer for Java (Xalan)</link>. 
For specifics
      concerning the current release, see <link idref="readme">Release 
Notes</link>.</p>
       
      <p>&xslt4j; takes as primary input an XML source document and an XSL 
stylesheet. The XML document and the XSL stylesheet
      may be a URL or file, a character stream, an input stream, or a DOM tree. 
The stylesheet may also take the form of a
      compiled stylesheet. If the XML document contains a stylesheet Processing 
Instruction (PI), a separate stylesheet is not
      required.</p>
      <p>&xslt4j; uses an implementation of the <resource-ref 
idref="XMLParserLiaisonDoc"/> to interact with &xml4j; (or another
       XML parser) and sends output events to an extension of
       <resource-ref idref="SAX"/> <resource-ref 
idref="SAXDocumentHandler"/>.</p>
       <p>The XSLT and XPath engines are independent from any given DOM or XML 
implementation. All parser-dependent calls are
       funneled through the XMLParserLiaison.</p>
    </s2>
     <s2 title="Performing XSL Transformations">
       <p>This release of &xslt4j; supports three mechanisms for transforming 
an xml document.</p>
       <ul>
       <li>Calling the &xslt4j; processor from the command-line</li>
       <li>Calling the &xslt4j; API from another java class</li>
       <li>Using the &xslt4j; applet wrapper</li>    
       </ul>
      <p>For information about performing transformation from the command-line 
or a script, see <jump
      href="CommandLineUtility"/>.</p>
      <s3 title="Calling the &xslt4j; API from a java class">
      <p>In the java class where you want to perform an XSL transformation, do 
the following:</p>
      <ol> 
      <li>Call one of the <resource-ref idref="XSLTProcessorFactoryDoc"/> 
static getProcessor() methods to
       instantiate an implementation of the <resource-ref 
idref="XSLTProcessorDoc"/>.<br/><br/>
       XSLTProcessorFactory uses XSLTEngineImpl, an implementation of the 
XSLTProcessor interface that you never need 
       to call directly.<br/><br/></li>
       <li>Create <resource-ref idref="XSLTInputSourceDoc"/> objects for the 
XML source document and the XSL stylesheet,
       and an <resource-ref idref="XSLTResultTargetDoc"/> object for the 
output.<br/><br/>
       If the XML document contains a stylesheet Processing Instruction (PI), 
you do not need to create
        a separate XSLTInputSource object for an XSL stylesheet.<br/><br/></li> 
       <li>Call the  <resource-ref 
idref="XSLTProcessorProcessDoc"/>.<br/><br/></li></ol>
       <p>In your application, for example, you could include the following 
transform method(), then call this method with file
       names or URLs for the source XML document, the XSL stylesheet and the 
new document to be produced.</p><source>
  public static void transform(String xmlSourceURL, String xslURL, String 
outputURL)
    throws java.io.IOException, 
           java.net.MalformedURLException, 
           org.xml.sax.SAXException
  {
    // Instantiate an XSLTProcessor.
    org.apache.xalan.xslt.XSLTProcessor processor =
                   org.apache.xalan.xslt.XSLTProcessorFactory.getProcessor();
                   
    // Create the 3 objects the XSLTProcessor needs to perform the 
transformation.
    org.apache.xalan.xslt.XSLTInputSource xmlSource = 
                          new org.apache.xalan.xslt.XSLTInputSource 
(xmlSourceURL);
    org.apache.xalan.xslt.XSLTInputSource xslSheet = 
                         new org.apache.xalan.xslt.XSLTInputSource (xslURL);
    org.apache.xalan.xslt.XSLTResultTarget xmlResult = 
                         new org.apache.xalan.xslt.XSLTResultTarget (outputURL);
  
    // Perform the transformation.
    processor.process(xmlSource, xslSheet, xmlResult);
   }</source>
       <p>The XSLTProcessor "compiles" the input XSL stylesheet into an 
internal representation,
       the <resource-ref idref="StylesheetDoc"/>.  You can compile the 
stylesheet separately,
       before the transformation is complete, via the <resource-ref 
idref="XSLTProcessorProcessStylesheetDoc"/>.  This is
       especially useful when you need to get information from the stylesheet 
before the tranformation occurs, 
       for instance, when you need to find out the output encoding in order to 
construct the right kind of Writer.</p>
       <p>Stylesheet parameters can be set via the <resource-ref 
idref="XSLTProcessorSetStylesheetParamDoc"/>.
       This method takes as input an <resource-ref idref="XObjectDoc"/> or 
derivative. The 
       XObject class itself can hold any kind of Java object, if you need to 
pass it 
       to an extension.  Each XObject type has a convenience function on the 
XSLTProcessor class to make it easy 
       to create:</p>
       <ul>
       <li><resource-ref idref="XObjectDoc"/>, <resource-ref 
idref="XSLTProcessorCreateXObject"/></li>
       <li><resource-ref idref="XNodeSetDoc"/>, <resource-ref 
idref="XSLTProcessorCreateXNodeSet"/> or 
       <resource-ref idref="XSLTProcessorCreateXNodeSet2"/></li>
       <li><resource-ref idref="XBooleanDoc"/>, <resource-ref 
idref="XSLTProcessorCreateXBoolean"/></li>
       <li><resource-ref idref="XNumberDoc"/>, <resource-ref 
idref="XSLTProcessorCreateXNumber"/></li>
       <li><resource-ref idref="XNullDoc"/>, <resource-ref 
idref="XSLTProcessorCreateXNull"/></li>
       <li><resource-ref idref="XStringDoc"/>, <resource-ref 
idref="XSLTProcessorCreateXString"/></li>
       </ul>
       <p>&xslt4j; is thread-safe for one instance per thread.  <em>However, 
       if you reuse the processor instance, you should call reset() between 
calls.</em></p>
       <p>The XPath engine has pluggable backend drivers called <resource-ref 
idref="XLocatorDoc"/>s.
       The default implementation of the XLocator is the <resource-ref 
idref="SimpleNodeLocatorDoc"/>.
       Though users of the API can implement their own XLocators for custom 
data access, 
       it is not for the faint of heart.</p>         
  </s3>
  
  <s3 title="Using the &xslt4j; applet">
  <ol> 
  <li>Include <resource-ref idref="XSLTProcessorAppletDoc"/> in an HTML 
client.<br/><br/></li>
  <li>Specify the XML source document and XSL stylesheet.<br/><br/>
  You can use the DocumentURL and StyleURL PARAM tags or the <resource-ref 
idref="XSLTProcessorAppletsetDocumentURLDoc"/> and <resource-ref 
idref="XSLTProcessorAppletsetStyleURLDoc"/>. If the XML document contains a 
stylesheet Processing Instruction (PI), you do not need to specify an XSL 
stylesheet.<br/><br/></li>
  <li>Call the <resource-ref 
idref="XSLTProcessorApplettransformtoHTMLstringstringDoc"/> which performs the 
transformation and returns the new document as a String.</li></ol>
  </s3>
  <anchor name="debugger-interface"/> 
  </s2>
      
  <s2 title="Debugger Interface">
                <p>&xslt4j; contains a debugger interface in the 
org.apache.xalan.xslt.trace package. This
                   should be looked upon as a work in progress, possibly to be 
replaced by a more 
                   standard interface in the future. The source code 
information given is 
                   somewhat limited by what the SAX interface provides... the 
line and column numbers 
                   at the *end* of the event. I'll have to work on obtaining 
the character selection 
                   of the executing event. Also, at this time there is no 
source tree line information 
                   available.  Again, I'll be working on this. The interfaces 
are:</p> 
                <ul>
                  <li>The <resource-ref idref="TraceListenerDoc"/> is an 
interface that debuggers 
                  can implement. The interface can be set on the 
                  <resource-ref idref="XSLTProcessorDoc"/> by calling the 
addTraceListener() function.<br/><br/></li>
                  <li>The <resource-ref idref="PrintTraceListenerDoc"/> is an 
implementation of 
                  the TraceListener interface that is used by &xslt4j; for the 
-TT, TG, and -TTC 
                  switches.  It's code is a good example to look at when 
figuring out how to 
                  use the trace functionality.<br/><br/></li>
                  <li>The <resource-ref idref="TracerEventDoc"/> is an event 
that is 
                  passed to the TraceListener.trace() function.  It is called 
before a node is 'executed' 
                  in the stylesheet.<br/><br/></li>
                  <li>The <resource-ref idref="GenerateEventDoc"/> is an event 
that is 
                  passed to the TraceListener.generated() function. It is 
called after an event 
                  occurs to create something in the result tree.<br/><br/></li>
                </ul>
         </s2> 
         
         <s2 title="Source Code"> 
                <p>The source code is in the <resource-ref 
idref="SourceCodeDir"/>.</p> 
                <p>The <resource-ref idref="XSLTEngineImplJava"/> class is 
where the main
                  stuff is going on. This is a big file, so I highly recommend 
using an IDE.</p> 
                <p> The XPaths are parsed in the
                  <resource-ref idref="XPathProcessorImplDoc"/>, the result 
XPath object is
                  performed in the <resource-ref idref="XPathDoc"/>, and the 
query and pattern
                  match is performed in the <resource-ref 
idref="SimpleNodeLocatorDoc"/>>.</p> 
         </s2> 
     <s2 title="Glossary">
        <gloss>
          <label>XSL Instruction</label>
          <item>Any tag with an XSL namespace prefix.<br/><br/></item>
          
          <label>XSL Template Instruction</label>
          <item>Any tag with an XSL namespace prefix
              that occurs inside an xsl:template element.<br/><br/></item>
              
          <label>Template Child</label>
          <item>Any node that is a child of an xsl:template 
element.<br/><br/></item>
          
          <label>Source Tree</label>
          <item>The tree input to the XSL process.<br/><br/></item>
          
          <label>Result Tree</label>
          <item>The tree that is output by the XSL process.<br/><br/></item>
          
          <label>Stylesheet Tree</label>
          <item>The stylesheet tree produced from the XSL file.<br/><br/></item>
          
          <label>Pattern List</label>
          <item>A parsed query or match pattern.<br/><br/></item>
        </gloss>
      </s2>
  
   </s1>
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/apiResources.xml
  
  Index: apiResources.xml
  ===================================================================
  <resource id="DispatcherDoc" title="Dispatcher interface"
  location="apidocs/org/apache/xalan/xpath/Dispatcher.html"/>
<resource id="org.apache.xalan.xpathDoc" title="org.apache.xalan.xpath package"
  location="apidocs/org/apache/xalan/xpath/package-summary.html"/>
<resource id="DispatcherFactoryDoc" title="DispatcherFactory interface"
  location="apidocs/org/apache/xalan/xpath/DispatcherFactory.html"/>
<resource id="SimpleNodeLocatorDoc" title="SimpleNodeLocator class"
  location="apidocs/org/apache/xalan/xpath/SimpleNodeLocator.html"/>
<resource id="MutableNodeListDoc" title="MutableNodeList interface"
  location="apidocs/org/apache/xalan/xpath/MutableNodeList.html"/>
<resource id="DataProviderAssociationDoc" title="DataProviderAssociation class"
  location="apidocs/org/apache/xalan/xpath/DataProviderAssociation.html"/>
<resource id="ExtensionFunctionHandlerDoc" title="ExtensionFunctionHandler 
class"
  location="apidocs/org/apache/xalan/xpath/ExtensionFunctionHandler.html"/>
<resource id="FoundIndexDoc"
 title="FoundIndex class"
  location="apidocs/org/apache/xalan/xpath/FoundIndex.html"/>
<resource id="FuncBooleanDoc" title="FuncBoolean class"
  location="apidocs/org/apache/xalan/xpath/FuncBoolean.html"/>
<resource id="FuncCeilingDoc" title="FuncCeiling class"
  location="apidocs/org/apache/xalan/xpath/FuncCeiling.html"/>
<resource id="FuncConcatDoc" title="FuncConcat class"
  location="apidocs/org/apache/xalan/xpath/FuncConcat.html"/>
<resource id="FuncContainsDoc" title="FuncContains class"
  location="apidocs/org/apache/xalan/xpath/FuncContains.html"/>
<resource id="FuncCountDoc" title="FuncCount class"
  location="apidocs/org/apache/xalan/xpath/FuncCount.html"/>
<resource id="FuncCurrentDoc" title="FuncCurrent class"
  location="apidocs/org/apache/xalan/xpath/FuncCurrent.html"/>
<resource id="FuncDocDoc" title="FuncDoc class"
  location="apidocs/org/apache/xalan/xpath/FuncDoc.html"/>
<resource id="FuncDoclocationDoc" title="FuncDoclocation class"
  location="apidocs/org/apache/xalan/xpath/FuncDoclocati
on.html"/>
<resource id="FuncExtElementAvailableDoc" title="FuncExtElementAvailable class"
  location="apidocs/org/apache/xalan/xpath/FuncExtElementAvailable.html"/>
<resource id="FuncExtFunctionAvailableDoc" title="FuncExtFunctionAvailable 
class"
  location="apidocs/org/apache/xalan/xpath/FuncExtFunctionAvailable.html"/>
<resource id="FuncFalseDoc" title="FuncFalse class"
  location="apidocs/org/apache/xalan/xpath/FuncFalse.html"/>
<resource id="FuncFloorDoc" title="FuncFloor class"
  location="apidocs/org/apache/xalan/xpath/FuncFloor.html"/>
<resource id="FuncGenerateIdDoc" title="FuncGenerateId class"
  location="apidocs/org/apache/xalan/xpath/FuncGenerateId.html"/>
<resource id="FuncIdDoc" title="FuncId class"
  location="apidocs/org/apache/xalan/xpath/FuncId.html"/>
<resource id="FuncKeyDoc" title="FuncKey class"
  location="apidocs/org/apache/xalan/xpath/FuncKey.html"/>
<resource id="FuncLangDoc" title="FuncLang class"
  location="apidocs/org/apache/xalan/xpath/FuncLang.html"/>
<resource id="FuncLastDo
c" title="FuncLast class"
  location="apidocs/org/apache/xalan/xpath/FuncLast.html"/>
<resource id="FuncLoaderDoc" title="FuncLoader class"
  location="apidocs/org/apache/xalan/xpath/FuncLoader.html"/>
<resource id="FuncLocalPartDoc" title="FuncLocalPart class"
  location="apidocs/org/apache/xalan/xpath/FuncLocalPart.html"/>
<resource id="FuncNamespaceDoc" title="FuncNamespace class"
  location="apidocs/org/apache/xalan/xpath/FuncNamespace.html"/>
<resource id="FuncNormalizeSpaceDoc" title="FuncNormalizeSpace class"
  location="apidocs/org/apache/xalan/xpath/FuncNormalizeSpace.html"/>
<resource id="FuncNotDoc" title="FuncNot class"
  location="apidocs/org/apache/xalan/xpath/FuncNot.html"/>
<resource id="FuncNumberDoc" title="FuncNumber class"
  location="apidocs/org/apache/xalan/xpath/FuncNumber.html"/>
<resource id="FuncPositionDoc" title="FuncPosition class"
  location="apidocs/org/apache/xalan/xpath/FuncPosition.html"/>
<resource id="FuncQnameDoc" title="FuncQname class"
  location="apidocs/org/apache/xal
an/xpath/FuncQname.html"/>
<resource id="FuncRoundDoc" title="FuncRound class"
  location="apidocs/org/apache/xalan/xpath/FuncRound.html"/>
<resource id="FuncStartsWithDoc" title="FuncStartsWith class"
  location="apidocs/org/apache/xalan/xpath/FuncStartsWith.html"/>
<resource id="FuncStringDoc" title="FuncString class"
  location="apidocs/org/apache/xalan/xpath/FuncString.html"/>
<resource id="FuncStringLengthDoc" title="FuncStringLength class"
  location="apidocs/org/apache/xalan/xpath/FuncStringLength.html"/>
<resource id="FuncSubstringDoc" title="FuncSubstring class"
  location="apidocs/org/apache/xalan/xpath/FuncSubstring.html"/>
<resource id="FuncSubstringAfterDoc" title="FuncSubstringAfter class"
  location="apidocs/org/apache/xalan/xpath/FuncSubstringAfter.html"/>
<resource id="FuncSubstringBeforeDoc" title="FuncSubstringBefore class"
  location="apidocs/org/apache/xalan/xpath/FuncSubstringBefore.html"/>
<resource id="FuncSumDoc" title="FuncSum class"
  location="apidocs/org/apache/xalan/xpath/FuncSu
m.html"/>
<resource id="FuncSystemPropertyDoc" title="FuncSystemProperty class"
  location="apidocs/org/apache/xalan/xpath/FuncSystemProperty.html"/>
<resource id="FunctionDoc" title="Function class"
  location="apidocs/org/apache/xalan/xpath/Function.html"/>
<resource id="FuncTranslateDoc" title="FuncTranslate class"
  location="apidocs/org/apache/xalan/xpath/FuncTranslate.html"/>
<resource id="FuncTrueDoc" title="FuncTrue class"
  location="apidocs/org/apache/xalan/xpath/FuncTrue.html"/>
<resource id="FuncUnparsedEntityURIDoc" title="FuncUnparsedEntityURI class"
  location="apidocs/org/apache/xalan/xpath/FuncUnparsedEntityURI.html"/>
<resource id="KeyDeclarationDoc" title="KeyDeclaration class"
  location="apidocs/org/apache/xalan/xpath/KeyDeclaration.html"/>
<resource id="MutableNodeListImplDoc" title="MutableNodeListImpl class"
  location="apidocs/org/apache/xalan/xpath/MutableNodeListImpl.html"/>
<resource id="NodeListImplDoc" title="NodeListImpl class"
  location="apidocs/org/apache/xalan/xpath/NodeLis
tImpl.html"/>
<resource id="ProcessDoc" title="Process class"
  location="apidocs/org/apache/xalan/xpath/Process.html"/>
<resource id="SimpleNodeLocator$FileFilterDoc" 
title="SimpleNodeLocator$FileFilter class"
  location="apidocs/org/apache/xalan/xpath/SimpleNodeLocator$FileFilter.html"/>
<resource id="DOMXPathDoc" title="DOMXPath class"
  location="apidocs/org/apache/xalan/xpath/DOMXPath.html"/>
<resource id="SimpleNodeLocatorFactoryDoc" title="SimpleNodeLocatorFactory 
class"
  location="apidocs/org/apache/xalan/xpath/SimpleNodeLocatorFactory.html"/>
<resource id="XBooleanDoc" title="XBoolean class"
  location="apidocs/org/apache/xalan/xpath/XBoolean.html"/>
<resource id="XBooleanStaticDoc" title="XBooleanStatic class"
  location="apidocs/org/apache/xalan/xpath/XBooleanStatic.html"/>
<resource id="XLocatorDoc" title="XLocator interface"
  location="apidocs/org/apache/xalan/xpath/XLocator.html"/>
<resource id="XNodeSetDoc" title="XNodeSet class"
  location="apidocs/org/apache/xalan/xpath/XNodeSet.html"/>
<r
esource id="XNullDoc" title="XNull class"
  location="apidocs/org/apache/xalan/xpath/XNull.html"/>
<resource id="XNumberDoc" title="XNumber class"
  location="apidocs/org/apache/xalan/xpath/XNumber.html"/>
<resource id="XObjectDoc" title="XObject class"
  location="apidocs/org/apache/xalan/xpath/XObject.html"/>
<resource id="XPathDoc" title="XPath class"
  location="apidocs/org/apache/xalan/xpath/XPath.html"/>
<resource id="XPathEnvSupportDoc" title="XPathEnvSupport interface"
  location="apidocs/org/apache/xalan/xpath/XPathEnvSupport.html"/>
<resource id="XPathExceptionDoc" title="XPathException class"
  location="apidocs/org/apache/xalan/xpath/XPathException.html"/>
<resource id="XPathFactoryDoc" title="XPathFactory interface"
  location="apidocs/org/apache/xalan/xpath/XPathFactory.html"/>
<resource id="XPathProcessorDoc" title="XPathProcessor interface"
  location="apidocs/org/apache/xalan/xpath/XPathProcessor.html"/>
<resource id="XPathProcessorExceptionDoc" title="XPathProcessorException class"
  locati
on="apidocs/org/apache/xalan/xpath/XPathProcessorException.html"/>
<resource id="XPathProcessorImplDoc" title="XPathProcessorImpl class"
  location="apidocs/org/apache/xalan/xpath/XPathProcessorImpl.html"/>
<resource id="XPathSupportDoc" title="XPathSupport interface"
  location="apidocs/org/apache/xalan/xpath/XPathSupport.html"/>
<resource id="XPathSupportDefaultDoc" title="XPathSupportDefault class"
  location="apidocs/org/apache/xalan/xpath/XPathSupportDefault.html"/>
<resource id="XPointerDoc" title="XPointer class"
  location="apidocs/org/apache/xalan/xpath/XPointer.html"/>
<resource id="XRTreeFragDoc" title="XRTreeFrag class"
  location="apidocs/org/apache/xalan/xpath/XRTreeFrag.html"/>
<resource id="XSLTJavaClassEngineDoc" title="XSLTJavaClassEngine class"
  location="apidocs/org/apache/xalan/xpath/XSLTJavaClassEngine.html"/>
<resource id="XSpanDoc" title="XSpan class"
  location="apidocs/org/apache/xalan/xpath/XSpan.html"/>
<resource id="XStringDoc" title="XString class"
  location="apidocs/org/apach
e/xalan/xpath/XString.html"/>
<resource id="XercesLiaisonDoc" title="XercesLiaison class"
  location="apidocs/org/apache/xalan/xpath/xdom/XercesLiaison.html"/>
<resource id="org.apache.xalan.xpath.xdomDoc" 
title="org.apache.xalan.xpath.xdom package"
  location="apidocs/org/apache/xalan/xpath/xdom/package-summary.html"/>
<resource id="XercesLiaison$NullSchemaValidatorDoc" 
title="XercesLiaison$NullSchemaValidator class"
  
location="apidocs/org/apache/xalan/xpath/xdom/XercesLiaison$NullSchemaValidator.html"/>
<resource id="XercesLiaison$MyParserDoc" title="XercesLiaison$MyParser class"
  location="apidocs/org/apache/xalan/xpath/xdom/XercesLiaison$MyParser.html"/>
<resource id="ChunkedIntArrayDoc" title="ChunkedIntArray class"
  location="apidocs/org/apache/xalan/xpath/dtm/ChunkedIntArray.html"/>
<resource id="org.apache.xalan.xpath.dtmDoc" title="org.apache.xalan.xpath.dtm 
package"
  location="apidocs/org/apache/xalan/xpath/dtm/package-summary.html"/>
<resource id="ChunkedIntArray$ChunksVectorDoc" title="Chunke
dIntArray$ChunksVector class"
  
location="apidocs/org/apache/xalan/xpath/dtm/ChunkedIntArray$ChunksVector.html"/>
<resource id="DTMDoc" title="DTM class"
  location="apidocs/org/apache/xalan/xpath/dtm/DTM.html"/>
<resource id="DTM$NullSchemaValidatorDoc" title="DTM$NullSchemaValidator class"
  location="apidocs/org/apache/xalan/xpath/dtm/DTM$NullSchemaValidator.html"/>
<resource id="DTMExceptionDoc" title="DTMException class"
  location="apidocs/org/apache/xalan/xpath/dtm/DTMException.html"/>
<resource id="DTMLiaisonDoc" title="DTMLiaison class"
  location="apidocs/org/apache/xalan/xpath/dtm/DTMLiaison.html"/>
<resource id="DTMNodeLocatorDoc" title="DTMNodeLocator class"
  location="apidocs/org/apache/xalan/xpath/dtm/DTMNodeLocator.html"/>
<resource id="DTMXPathDoc" title="DTMXPath class"
  location="apidocs/org/apache/xalan/xpath/dtm/DTMXPath.html"/>
<resource id="DTMNodeLocatorFactoryDoc" title="DTMNodeLocatorFactory class"
  location="apidocs/org/apache/xalan/xpath/dtm/DTMNodeLocatorFactory.html"/>
<resou
rce id="DTMNodeVectorDoc" title="DTMNodeVector class"
  location="apidocs/org/apache/xalan/xpath/dtm/DTMNodeVector.html"/>
<resource id="DTMProxyDoc" title="DTMProxy class"
  location="apidocs/org/apache/xalan/xpath/dtm/DTMProxy.html"/>
<resource id="DTMProxyMapDoc" title="DTMProxyMap class"
  location="apidocs/org/apache/xalan/xpath/dtm/DTMProxyMap.html"/>
<resource id="DTMtestDoc" title="DTMtest class"
  location="apidocs/org/apache/xalan/xpath/dtm/DTMtest.html"/>
<resource id="IntMapDoc" title="IntMap class"
  location="apidocs/org/apache/xalan/xpath/dtm/IntMap.html"/>
<resource id="IntToObjectMapDoc" title="IntToObjectMap class"
  location="apidocs/org/apache/xalan/xpath/dtm/IntToObjectMap.html"/>
<resource id="XSLResourceBundleDoc" title="XSLResourceBundle class"
  location="apidocs/org/apache/xalan/xpath/xml/XSLResourceBundle.html"/>
<resource id="org.apache.xalan.xpath.xmlDoc" title="org.apache.xalan.xpath.xml 
package"
  location="apidocs/org/apache/xalan/xpath/xml/package-summary.html"/>
<resource id
="PrefixResolverDoc" title="PrefixResolver interface"
  location="apidocs/org/apache/xalan/xpath/xml/PrefixResolver.html"/>
<resource id="XMLParserLiaisonDefaultDoc" title="XMLParserLiaisonDefault class"
  location="apidocs/org/apache/xalan/xpath/xml/XMLParserLiaisonDefault.html"/>
<resource id="XSLMessagesDoc" title="XSLMessages class"
  location="apidocs/org/apache/xalan/xpath/xml/XSLMessages.html"/>
<resource id="XMLParserLiaisonDoc" title="XMLParserLiaison interface"
  location="apidocs/org/apache/xalan/xpath/xml/XMLParserLiaison.html"/>
<resource id="QNameDoc" title="QName class"
  location="apidocs/org/apache/xalan/xpath/xml/QName.html"/>
<resource id="NodeVectorDoc" title="NodeVector class"
  location="apidocs/org/apache/xalan/xpath/xml/NodeVector.html"/>
<resource id="ProblemListenerDoc" title="ProblemListener interface"
  location="apidocs/org/apache/xalan/xpath/xml/ProblemListener.html"/>
<resource id="StringKeyDoc" title="StringKey class"
  location="apidocs/org/apache/xalan/xpath/xml/StringKey.ht
ml"/>
<resource id="StringToStringTableDoc" title="StringToStringTable class"
  location="apidocs/org/apache/xalan/xpath/xml/StringToStringTable.html"/>
<resource id="StringVectorDoc" title="StringVector class"
  location="apidocs/org/apache/xalan/xpath/xml/StringVector.html"/>
<resource id="StringToStringTableVectorDoc" title="StringToStringTableVector 
class"
  location="apidocs/org/apache/xalan/xpath/xml/StringToStringTableVector.html"/>
<resource id="ProblemListenerDefaultDoc" title="ProblemListenerDefault class"
  location="apidocs/org/apache/xalan/xpath/xml/ProblemListenerDefault.html"/>
<resource id="IntStackDoc" title="IntStack class"
  location="apidocs/org/apache/xalan/xpath/xml/IntStack.html"/>
<resource id="IntVectorDoc" title="IntVector class"
  location="apidocs/org/apache/xalan/xpath/xml/IntVector.html"/>
<resource id="DefaultErrorHandlerDoc" title="DefaultErrorHandler class"
  location="apidocs/org/apache/xalan/xpath/xml/DefaultErrorHandler.html"/>
<resource id="NSInfoDoc" title="NSInfo class"

  location="apidocs/org/apache/xalan/xpath/xml/NSInfo.html"/>
<resource id="NameSpaceDoc" title="NameSpace class"
  location="apidocs/org/apache/xalan/xpath/xml/NameSpace.html"/>
<resource id="AttListDoc" title="AttList class"
  location="apidocs/org/apache/xalan/xpath/xml/AttList.html"/>
<resource id="FormatterToDOMDoc" title="FormatterToDOM class"
  location="apidocs/org/apache/xalan/xpath/xml/FormatterToDOM.html"/>
<resource id="FormatterToXMLDoc" title="FormatterToXML class"
  location="apidocs/org/apache/xalan/xpath/xml/FormatterToXML.html"/>
<resource id="FormatterToHTMLDoc" title="FormatterToHTML class"
  location="apidocs/org/apache/xalan/xpath/xml/FormatterToHTML.html"/>
<resource id="FormatterToTextDoc" title="FormatterToText class"
  location="apidocs/org/apache/xalan/xpath/xml/FormatterToText.html"/>
<resource id="TreeWalkerDoc" title="TreeWalker class"
  location="apidocs/org/apache/xalan/xpath/xml/TreeWalker.html"/>
<resource id="WrongParserExceptionDoc" title="WrongParserException class"
  lo
cation="apidocs/org/apache/xalan/xpath/xml/WrongParserException.html"/>
<resource id="BoolStackDoc" title="BoolStack class"
  location="apidocs/org/apache/xalan/xpath/xml/BoolStack.html"/>
<resource id="ElemDescDoc" title="ElemDesc class"
  location="apidocs/org/apache/xalan/xpath/xml/ElemDesc.html"/>
<resource id="RawCharacterHandlerDoc" title="RawCharacterHandler interface"
  location="apidocs/org/apache/xalan/xpath/xml/RawCharacterHandler.html"/>
<resource id="UnionContextDoc" title="UnionContext class"
  location="apidocs/org/apache/xalan/xpath/UnionContext.html"/>
<resource id="NodeCallbackDoc" title="NodeCallback interface"
  location="apidocs/org/apache/xalan/xpath/NodeCallback.html"/>
<resource id="ArgDoc" title="Arg class"
  location="apidocs/org/apache/xalan/xslt/Arg.html"/>
<resource id="org.apache.xalan.xsltDoc" title="org.apache.xalan.xslt package"
  location="apidocs/org/apache/xalan/xslt/package-summary.html"/>
<resource id="AVTDoc" title="AVT class"
  location="apidocs/org/apache/xalan/xslt/A
VT.html"/>
<resource id="AVTPartDoc" title="AVTPart class"
  location="apidocs/org/apache/xalan/xslt/AVTPart.html"/>
<resource id="AVTPartSimpleDoc" title="AVTPartSimple class"
  location="apidocs/org/apache/xalan/xslt/AVTPartSimple.html"/>
<resource id="AVTPartXPathDoc" title="AVTPartXPath class"
  location="apidocs/org/apache/xalan/xslt/AVTPartXPath.html"/>
<resource id="ConstantsDoc" title="Constants class"
  location="apidocs/org/apache/xalan/xslt/Constants.html"/>
<resource id="DecimalToRomanDoc" title="DecimalToRoman class"
  location="apidocs/org/apache/xalan/xslt/DecimalToRoman.html"/>
<resource id="ElemApplyImportDoc" title="ElemApplyImport class"
  location="apidocs/org/apache/xalan/xslt/ElemApplyImport.html"/>
<resource id="ElemApplyTemplatesDoc" title="ElemApplyTemplates class"
  location="apidocs/org/apache/xalan/xslt/ElemApplyTemplates.html"/>
<resource id="ElemAttributeDoc" title="ElemAttribute class"
  location="apidocs/org/apache/xalan/xslt/ElemAttribute.html"/>
<resource id="ElemAttributeSe
tDoc" title="ElemAttributeSet class"
  location="apidocs/org/apache/xalan/xslt/ElemAttributeSet.html"/>
<resource id="ElemCallTemplateDoc" title="ElemCallTemplate class"
  location="apidocs/org/apache/xalan/xslt/ElemCallTemplate.html"/>
<resource id="ElemChooseDoc" title="ElemChoose class"
  location="apidocs/org/apache/xalan/xslt/ElemChoose.html"/>
<resource id="ElemCommentDoc" title="ElemComment class"
  location="apidocs/org/apache/xalan/xslt/ElemComment.html"/>
<resource id="ElemCopyDoc" title="ElemCopy class"
  location="apidocs/org/apache/xalan/xslt/ElemCopy.html"/>
<resource id="ElemCopyOfDoc" title="ElemCopyOf class"
  location="apidocs/org/apache/xalan/xslt/ElemCopyOf.html"/>
<resource id="ElemDecimalFormatDoc" title="ElemDecimalFormat class"
  location="apidocs/org/apache/xalan/xslt/ElemDecimalFormat.html"/>
<resource id="ElemElementDoc" title="ElemElement class"
  location="apidocs/org/apache/xalan/xslt/ElemElement.html"/>
<resource id="ElemEmptyDoc" title="ElemEmpty class"
  location="apidocs/org
/apache/xalan/xslt/ElemEmpty.html"/>
<resource id="ElemExtensionCallDoc" title="ElemExtensionCall class"
  location="apidocs/org/apache/xalan/xslt/ElemExtensionCall.html"/>
<resource id="ElemFallbackDoc" title="ElemFallback class"
  location="apidocs/org/apache/xalan/xslt/ElemFallback.html"/>
<resource id="ElemForEachDoc" title="ElemForEach class"
  location="apidocs/org/apache/xalan/xslt/ElemForEach.html"/>
<resource id="ElemIfDoc" title="ElemIf class"
  location="apidocs/org/apache/xalan/xslt/ElemIf.html"/>
<resource id="ElemLiteralResultDoc" title="ElemLiteralResult class"
  location="apidocs/org/apache/xalan/xslt/ElemLiteralResult.html"/>
<resource id="ElemMessageDoc" title="ElemMessage class"
  location="apidocs/org/apache/xalan/xslt/ElemMessage.html"/>
<resource id="ElemNumberDoc" title="ElemNumber class"
  location="apidocs/org/apache/xalan/xslt/ElemNumber.html"/>
<resource id="ElemNumber$NumberFormatStringTokenizerDoc" 
title="ElemNumber$NumberFormatStringTokenizer class"
  location="apidocs/org/apach
e/xalan/xslt/ElemNumber$NumberFormatStringTokenizer.html"/>
<resource id="ElemOtherwiseDoc" title="ElemOtherwise class"
  location="apidocs/org/apache/xalan/xslt/ElemOtherwise.html"/>
<resource id="ElemParamDoc" title="ElemParam class"
  location="apidocs/org/apache/xalan/xslt/ElemParam.html"/>
<resource id="ElemPIDoc" title="ElemPI class"
  location="apidocs/org/apache/xalan/xslt/ElemPI.html"/>
<resource id="ElemSortDoc" title="ElemSort class"
  location="apidocs/org/apache/xalan/xslt/ElemSort.html"/>
<resource id="ElemTemplateDoc" title="ElemTemplate class"
  location="apidocs/org/apache/xalan/xslt/ElemTemplate.html"/>
<resource id="ElemTemplateElementDoc" title="ElemTemplateElement class"
  location="apidocs/org/apache/xalan/xslt/ElemTemplateElement.html"/>
<resource id="ElemTextDoc" title="ElemText class"
  location="apidocs/org/apache/xalan/xslt/ElemText.html"/>
<resource id="ElemTextLiteralDoc" title="ElemTextLiteral class"
  location="apidocs/org/apache/xalan/xslt/ElemTextLiteral.html"/>
<resource id=
"ElemUseDoc" title="ElemUse class"
  location="apidocs/org/apache/xalan/xslt/ElemUse.html"/>
<resource id="ElemValueOfDoc" title="ElemValueOf class"
  location="apidocs/org/apache/xalan/xslt/ElemValueOf.html"/>
<resource id="ElemVariableDoc" title="ElemVariable class"
  location="apidocs/org/apache/xalan/xslt/ElemVariable.html"/>
<resource id="ElemWhenDoc" title="ElemWhen class"
  location="apidocs/org/apache/xalan/xslt/ElemWhen.html"/>
<resource id="ElemWithParamDoc" title="ElemWithParam class"
  location="apidocs/org/apache/xalan/xslt/ElemWithParam.html"/>
<resource id="ExpressionDoc" title="Expression class"
  location="apidocs/org/apache/xalan/xslt/Expression.html"/>
<resource id="ExtensionNSHandlerDoc" title="ExtensionNSHandler class"
  location="apidocs/org/apache/xalan/xslt/ExtensionNSHandler.html"/>
<resource id="ExtensionNSHandler$ExtErrorHandlerDoc" 
title="ExtensionNSHandler$ExtErrorHandler class"
  
location="apidocs/org/apache/xalan/xslt/ExtensionNSHandler$ExtErrorHandler.html"/>
<resource id="Fun
cDocumentDoc" title="FuncDocument class"
  location="apidocs/org/apache/xalan/xslt/FuncDocument.html"/>
<resource id="FuncFormatNumbDoc" title="FuncFormatNumb class"
  location="apidocs/org/apache/xalan/xslt/FuncFormatNumb.html"/>
<resource id="KeyTableDoc" title="KeyTable class"
  location="apidocs/org/apache/xalan/xslt/KeyTable.html"/>
<resource id="NodeSorterDoc" title="NodeSorter class"
  location="apidocs/org/apache/xalan/xslt/NodeSorter.html"/>
<resource id="NodeSortKeyDoc" title="NodeSortKey class"
  location="apidocs/org/apache/xalan/xslt/NodeSortKey.html"/>
<resource id="NumeratorFormatterDoc" title="NumeratorFormatter class"
  location="apidocs/org/apache/xalan/xslt/NumeratorFormatter.html"/>
<resource id="NumeratorFormatter$NumberFormatStringTokenizerDoc" 
title="NumeratorFormatter$NumberFormatStringTokenizer class"
  
location="apidocs/org/apache/xalan/xslt/NumeratorFormatter$NumberFormatStringTokenizer.html"/>
<resource id="ProcessDoc" title="Process class"
  location="apidocs/org/apache/xalan/xsl
t/Process.html"/>
<resource id="ResultTreeFragDoc" title="ResultTreeFrag class"
  location="apidocs/org/apache/xalan/xslt/ResultTreeFrag.html"/>
<resource id="SerializableAttrListImplDoc" title="SerializableAttrListImpl 
class"
  location="apidocs/org/apache/xalan/xslt/SerializableAttrListImpl.html"/>
<resource id="StylesheetDoc" title="Stylesheet class"
  location="apidocs/org/apache/xalan/xslt/Stylesheet.html"/>
<resource id="StylesheetHandlerDoc" title="StylesheetHandler class"
  location="apidocs/org/apache/xalan/xslt/StylesheetHandler.html"/>
<resource id="StylesheetRootDoc" title="StylesheetRoot class"
  location="apidocs/org/apache/xalan/xslt/StylesheetRoot.html"/>
<resource id="UnImplNodeDoc" title="UnImplNode class"
  location="apidocs/org/apache/xalan/xslt/UnImplNode.html"/>
<resource id="XMLSourceInfoDoc" title="XMLSourceInfo interface"
  location="apidocs/org/apache/xalan/xslt/XMLSourceInfo.html"/>
<resource id="XSLTProcessorDoc" title="XSLTProcessor interface"
  location="apidocs/org/apache/xalan
/xslt/XSLTProcessor.html"/>
<resource id="XSLTProcessorFactoryDoc" title="XSLTProcessorFactory class"
  location="apidocs/org/apache/xalan/xslt/XSLTProcessorFactory.html"/>
<resource id="XSLTEngineImplDoc" title="XSLTEngineImpl class"
  location="apidocs/org/apache/xalan/xslt/XSLTEngineImpl.html"/>
<resource id="XSLTEngineImpl$XSLInfiniteLoopExceptionDoc" 
title="XSLTEngineImpl$XSLInfiniteLoopException class"
  
location="apidocs/org/apache/xalan/xslt/XSLTEngineImpl$XSLInfiniteLoopException.html"/>
<resource id="XSLTEngineImpl$StackGuardDoc" title="XSLTEngineImpl$StackGuard 
class"
  location="apidocs/org/apache/xalan/xslt/XSLTEngineImpl$StackGuard.html"/>
<resource id="XSLTEngineImpl$ContextStateDoc" 
title="XSLTEngineImpl$ContextState class"
  location="apidocs/org/apache/xalan/xslt/XSLTEngineImpl$ContextState.html"/>
<resource id="XSLTEngineImpl$ContextMarkerDoc" 
title="XSLTEngineImpl$ContextMarker class"
  location="apidocs/org/apache/xalan/xslt/XSLTEngineImpl$ContextMarker.html"/>
<resource id="XSLTEngineIm
pl$ElementMarkerDoc" title="XSLTEngineImpl$ElementMarker class"
  location="apidocs/org/apache/xalan/xslt/XSLTEngineImpl$ElementMarker.html"/>
<resource id="XSLTEngineImpl$VariableStackDoc" 
title="XSLTEngineImpl$VariableStack class"
  location="apidocs/org/apache/xalan/xslt/XSLTEngineImpl$VariableStack.html"/>
<resource id="XSLTEngineImpl$ResultTreeHandlerDoc" 
title="XSLTEngineImpl$ResultTreeHandler class"
  
location="apidocs/org/apache/xalan/xslt/XSLTEngineImpl$ResultTreeHandler.html"/>
<resource id="XSLProcessorContextDoc" title="XSLProcessorContext class"
  location="apidocs/org/apache/xalan/xslt/XSLProcessorContext.html"/>
<resource id="XSLProcessorExceptionDoc" title="XSLProcessorException class"
  location="apidocs/org/apache/xalan/xslt/XSLProcessorException.html"/>
<resource id="XSLProcessorVersionDoc" title="XSLProcessorVersion class"
  location="apidocs/org/apache/xalan/xslt/XSLProcessorVersion.html"/>
<resource id="XSLTInputSourceDoc" title="XSLTInputSource class"
  location="apidocs/org/apache/xal
an/xslt/XSLTInputSource.html"/>
<resource id="XSLTResultTargetDoc" title="XSLTResultTarget class"
  location="apidocs/org/apache/xalan/xslt/XSLTResultTarget.html"/>
<resource id="TemplateListDoc" title="TemplateList class"
  location="apidocs/org/apache/xalan/xslt/TemplateList.html"/>
<resource id="TemplateList$MatchPattern2Doc" title="TemplateList$MatchPattern2 
class"
  location="apidocs/org/apache/xalan/xslt/TemplateList$MatchPattern2.html"/>
<resource id="ResultNameSpaceDoc" title="ResultNameSpace class"
  location="apidocs/org/apache/xalan/xslt/ResultNameSpace.html"/>
<resource id="GenerateEventDoc" title="GenerateEvent class"
  location="apidocs/org/apache/xalan/xslt/trace/GenerateEvent.html"/>
<resource id="org.apache.xalan.xslt.traceDoc" 
title="org.apache.xalan.xslt.trace package"
  location="apidocs/org/apache/xalan/xslt/trace/package-summary.html"/>
<resource id="SelectionEventDoc" title="SelectionEvent class"
  location="apidocs/org/apache/xalan/xslt/trace/SelectionEvent.html"/>
<resource id="Trace
rEventDoc" title="TracerEvent class"
  location="apidocs/org/apache/xalan/xslt/trace/TracerEvent.html"/>
<resource id="PrintTraceListenerDoc" title="PrintTraceListener class"
  location="apidocs/org/apache/xalan/xslt/trace/PrintTraceListener.html"/>
<resource id="TraceListenerDoc" title="TraceListener interface"
  location="apidocs/org/apache/xalan/xslt/trace/TraceListener.html"/>
<resource id="XSLTProcessorAppletDoc" title="XSLTProcessorApplet class"
  location="apidocs/org/apache/xalan/xslt/client/XSLTProcessorApplet.html"/>
<resource id="org.apache.xalan.xslt.clientDoc" 
title="org.apache.xalan.xslt.client package"
  location="apidocs/org/apache/xalan/xslt/client/package-summary.html"/>
<resource id="XSLTProcessorApplet$TrustedAgentDoc" 
title="XSLTProcessorApplet$TrustedAgent class"
  
location="apidocs/org/apache/xalan/xslt/client/XSLTProcessorApplet$TrustedAgent.html"/>
<resource id="RedirectDoc" title="Redirect class"
  location="apidocs/org/apache/xalan/xslt/extensions/Redirect.html"/>
<resource id="org
.apache.xalan.xslt.extensionsDoc" title="org.apache.xalan.xslt.extensions 
package"
  location="apidocs/org/apache/xalan/xslt/extensions/package-summary.html"/>
<resource id="TemplateElementContextDoc" title="TemplateElementContext class"
  location="apidocs/org/apache/xalan/xslt/TemplateElementContext.html"/>
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/commandline.xml
  
  Index: commandline.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="Command-Line Utility">
     
     <s2 title="Using the Command-Line Utility">
        <p>To perform a transformation, you can call &xslt4j; from the command 
line (or script), 
        an applet, an application, or a servlet. see <resource-ref 
idref="APIOverview"/> and <resource-ref idref="APIDocumentation"/>.</p>
       <p>The org.apache.xalan.xslt.Process main() method provides a 
comand-line interface
      for performing XSL transformation. To perform a transformation from the 
command line or a script,
      do the following:</p>
                <ol>
      <li>Install &xslt4j;. See <resource-ref 
idref="Installation"/>.<br/><br/></li> 
      <li>Set the java Classpath to include xalan.jar and 
xerces.jar.<br/><br/></li>
      <li>Call java and the Process class with the appropriate switches and
      arguments (described below). The following command line, for example, 
includes the -IN, -XSL,
      and -OUT switches with their accompanying arguments -- the XML source 
document, the XSL
      stylesheet, and the output file:<br/><br/>
      <code>java org.apache.xalan.xslt.Process -IN foo.xml -XSL foo.xsl -OUT 
foo.out</code>
      </li></ol>
      <p>The command line utility can take the following switches and 
arguments:</p> 
        <source>
          -IN inputXMLURL
          -XSL XSLTransformationURL
          -OUT outputFileName
          -LXCIN compiledStylesheetFileNameIn
          -LXCOUT compiledStylesheetFileNameOut (it will be big!)
          -PARSER fully qualified class name of parser liaison
          -E (Keep--do not expand -- entity refs)
          -V (Version info)
          -QC (Quiet Pattern Conflicts Warnings)
          -Q  (Quiet Mode)
          -LF (Use linefeeds only on output -- default is CR/LF)
          -CR (Use carriage returns only on output -- default is CR/LF)
          -INDENT (Number of spaces to indent each level in output tree 
--default is 0)
          -TT (Trace the templates as they are being called)
          -TG (Trace each result tree generation event)
          -TS (Trace each selection event)
          -TTC (Trace the template children as they are being processed)
          -VALIDATE (Validate the XML and XSL input -- validation is off by 
default)
          -EDUMP [optional]FileName (Do stackdump on error)
          -XML (Use XML formatter and add XML header)
          -TEXT (Use simple Text formatter)
          -HTML (Use HTML formatter)
          -PARAM name expression (Set a stylesheet parameter)
        </source>
        <p>Use -IN to specify the XML source document. To specify the XSL 
stylesheet, use -XSL 
        or -LXCIN. To compile an XSL stylesheet for future use as -LXCIN input, 
use -LXCOUT.</p>
        <p>Include -PARSER if you supply your own parser liaison class, which 
is required
        if you do not use the &xml4j; parser.</p>
        <p>Use -TEXT if you want the output to include only element values (not 
element tags with element names and
        attributes). Use -HTML to write 4.0 transitional HTML (some elements, 
such as ltxxbr&gt;, are
        not well formed.</p>
        <p>To set stylesheet parameters from the command line, use -PARAM name 
expression. If 
        you want to set the parameter to a string value, enclose the string in 
single quotes (') to
        make it an expression.</p>
     </s2>
  </s1>
  
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/dtm.xml
  
  Index: dtm.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!--
   * 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 [EMAIL PROTECTED]
   *
   * 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/>.
   -->
  
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&xslt4j; DTM">
        
         <s2 title="Using the &xslt4j; DTM (Document Table Model)">
       <p>DOM (Document Object Model) is a standard interface for interacting 
with XML documents. &xslt4j;
       supports this interface: when you provide a Node as input for an XML 
source document or XSL 
       stylesheet, &xslt4j; uses an implementation of the DOM interface. For 
large XML documents, however,
       this may involve considerable overhead, since Xalan must create one or 
more Java objects for each Node
       in the document.</p>
       <p>For those cases where you provide a URL or character stream as input 
and use the default XSML parser
       (&xml4j;) &xslt4j; avoids this overhead by implementing what we call a 
DTM (Document Table Model), a
       pseudo-DOM that uses integer arrays in place of the DOM. The performance 
improvements are very
       significant.</p>
       <p><ref>More to be written.</ref></p>
         </s2>
  </s1>
  
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/extensions.xml
  
  Index: extensions.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!--
   * Copyright (c) 1999 Lotus Development Corporation, Inc. All Rights Reserved.
   *    This software is provided without a warranty of any kind.
   *
  -->
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="&xslt4j; Extensions">
  <ul>
  <li><link anchor="intro">Introduction</link></li>
  <li><link anchor="supported-lang">Supported languages</link></li>
  <li><link anchor="basic-pattern">The basic pattern</link></li>
  <li><link anchor="setup-runtime">Setting up the runtime 
environment</link></li>
  <li><link anchor="basic-syntax">Syntax</link></li>
  <li><link anchor="ext-elements">Using an extension element</link></li>
  <li><link anchor="ext-functions">Using extension functions</link></li>
  <li><link anchor="java-namespace">Alternative: using the predefined java 
extension namespace</link></li>
  <li>Examples: <link anchor="ex-basic">basic JavaScript example</link>, <link 
anchor="ex-redirect">the Redirect extension</link>, <link 
anchor="ex-java-namespace">using the java namespace</link>, <link 
anchor="ex-java">using a Java Hashtable</link>, <link 
anchor="ex-javascript">using a JavaScript array</link></li>
  </ul><anchor name="intro"/>
    <s2 title="Introduction">
    <p>For those situations where you would like to augment the functionality 
of XSLT with calls to a procedural language, &xslt4j; supports the creation and 
use of extension elements and extension functions. An extension (a collection 
of elements and functions) inhabits a namespace, either a namespace you declare 
and designate as an extensions namespace, or the predefined java namespace that 
&xslt4j; provides.</p>
  
  <p><em>Extension elements</em>  Unlike a literal result element, which the 
stylesheet simply transfers to the result tree, an extension element performs 
an action. For example, you can use the Redirect extension elements shipped 
with &xslt4j; to redirect portions of your transformation output to one or more 
files. Extension elements may contain attributes, text nodes, other elements, 
basically any form of the content you can place in an XML element. Extension 
elements may perform quite sophisticated actions, given that the extension 
routine has direct access to the XSL processor context object and to the 
element. In many cases the implementation returns void or null; if it does 
return a value, that value is placed in the transformation result.</p>
  
  <p><em>Extension functions</em>You can think of extension functions as 
extensions to the core library of functions that XPath provides. An extension 
function passes arguments to the extension and returns a value. You can use 
extension functions to return values that XSLT can interact with directly 
(node-set, result tree fragment, string, boolean, and number) as well as values 
(of any type) that you pass in turn to other extension functions.</p>
  </s2><anchor name="supported-lang"/>
  <s2 title="Supported languages">
  <p>&xslt4j; uses the Bean Scripting Framework (BSF), an architecture for 
incorporating scripting into Java applications and applets. BSF allows an 
application to take advantage of scripting while being independent of any 
specific scripting language. To date, we have tested extensions implemented in 
Java and JavaScript. Other languages with BSF support appear in the table 
below.</p>
  <p>BSF requires two JAR files on the class path: bsf.jar and bsfengines.jar. 
These two JAR files are shipped with &xslt4j;, and that is all that is required 
for Java extensions. The additional JAR files or DLLs required to support 
extensions in other languages are listed in the table below. These files are 
available from the sources indicated and are not shipped with &xslt4j;.</p>
  <table>
    <tr>
      <td><em>Language</em></td>
      <td><em>Version</em></td>
      <td><em>Requirements</em></td>
    </tr>
    <tr>
      <td>Mozilla Rhino<br/><br/></td>
      <td>1.4 R3<br/><br/></td>
      <td>js.jar available from 
                                    http://www.mozilla.org/rhino<br/><br/></td>
    </tr>
    <tr>
      <td>NetRexx<br/><br/></td>
      <td>1.148 up <br/><br/></td>
      <td>NetRexxC.zip available from 
http://www2.hursley.ibm.com/netrexx<br/><br/></td>
    </tr>
      <tr>
      <td>BML<br/><br/></td>
      <td>2.4<br/><br/></td>
      <td>bmlall.jar available from 
http://www.alphaWorks.ibm.com/formula/bml<br/><br/></td>
    </tr>
      <tr>
      <td>JPython<br/><br/></td>
      <td>1.1-beta3<br/><br/></td>
      <td>python.jar available from http://www.jpython.org/<br/><br/></td>
    </tr>
      <tr>
      <td>Jacl<br/><br/></td>
      <td>1.1.1<br/><br/></td>
      <td> jacl.jar and tcljava.jar from 
http://www.scriptics.com/java<br/><br/></td>
    </tr>
      <tr>
      <td>Win32 ActiveScript langs
        JScript, VBScript<br/><br/></td>
      <td><br/><br/></td>
      <td>MSVCP60.DLL from Microsoft, appropriate language DLLs from Microsoft 
      http://msdn.microsoft.com/scripting<br/><br/></td>
    </tr>
      <tr>
      <td>PerlScript<br/><br/></td>
      <td><br/><br/></td>
      <td>ActivePerl from http://www.activestate.com/<br/><br/></td>
    </tr>  
  </table>
  </s2><anchor name="basic-pattern"/>
  <s2 title="The basic pattern">
  <p>Let's examine a simple example. The stylesheet below uses an extension 
element and an extension function to transform an element in the XML source 
into a statement in the output indicating the date by which a customer can 
expect to a response to a given enquiry.</p>
  
  <p>The source element contains a numdays attribute. The extension element 
contains a multiplier attribute, which is used to set a variable in the 
extension. The extension function computes the deadline, that is the current 
date plus numdays * multiplier. So for &lt;deadline numdays="3"/&gt; (in the 
XML source) and &lt;timelapse multiplier="2"/&gt; (in the stylesheet), the 
extension computes a deadline 6 days from now, and the stylesheet template  
transform the deadline element into a string along the lines of 
<code>&lt;p&gt;We have received your enquiry and will respond by April 29, 2000 
12:07:16 PM EST.&lt;/p&gt;</code></p>
  <note>The extension function could include both numdays and multiplier as 
arguments, thus bypassing the need for the extension element, but the purpose 
here is to illustrate the usage pattern for both extension elements and 
extension functions.</note>
  <p>As you review this stylesheet, please note the following:</p>
  <ol>
          <li>The declaration of the Xalan lxslt namespace, which provides 
support for the component and
       component/script elements:<br/><br/>
      <code>xmlns:lxslt="http://xml.apache.org/xslt";</code><br/><br/></li>
      <li>The declaration of a namespace for this extension:<br/><br/>
      <code>xmlns:my-ext="ext1"</code><br/><br/></li>
        <li>The designation of this namespace prefix as an extension 
prefix:<br/><br/>
       <code>extension-element-prefixes="my-ext"</code><br/><br/></li>
          <li>The lxslt:component with attributes designating the namespace 
prefix and the elements and
       functions this extension provides.<br/><br/></li>
        <li>The lxslt:script subelement with a JavaScript implementation of the 
extension. For Java
       extensions, the lxslt:script element has a src attribute that you set to 
identify the Java class.</li>
    </ol><anchor name="ex-basic"/>   
  <source>&lt;?xml version="1.0"?&gt;
  &lt;!--Namespaces are global if you set them in the stylesheet element--&gt;
  &lt;xsl:stylesheet 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
      version="1.0"   
      xmlns:lxslt="http://xml.apache.org/xslt";
      xmlns:my-ext="ext1"
      extension-element-prefixes="my-ext"&gt;
      
    &lt;!--The component and its script are in the lxslt namespace and define 
the 
      implementation of the extension.--&gt;
    &lt;lxslt:component prefix="my-ext" elements="timelapse" 
functions="getdate"&gt;
      &lt;lxslt:script lang="javascript"&gt;
        var multiplier=1;
        // The methods or functions that implement extension elements always 
take two arguments. 
        // The first argument is the XSL Processor context; the second argument 
is the element node.
        function timelapse(xslProcessorContext, elem)
        {
          multiplier=parseInt(elem.getAttribute("multiplier"));
          // The element return value is placed in the result tree.
          // If you do not want a return value, return null.
          return null;
        }
        function getdate(numdays)
        {
          var d = new Date();
          var totalDays = parseInt(numdays) * multiplier;
          d.setDate(d.getDate() + totalDays);
          return d.toLocaleString();
        }
      &lt;/lxslt:script&gt;
    &lt;/lxslt:component&gt;
        
    &lt;xsl:template match="deadline"&gt;
      &lt;p&gt;&lt;my-ext:timelapse multiplier="2"/&gt;We have logged your 
enquiry and will 
        respond by &lt;xsl:value-of 
select="my-ext:getdate(string(@numdays))"/&gt;.&lt;/p&gt;
    &lt;/xsl:template>
  
  &lt;/xsl:stylesheet&gt;
  </source>
  </s2><anchor name="setup-runtime"/>
  <s2 title="Setting up the runtime environment">
  <p>To run the preceding example, bsf.jar, bsfengines.jar, and js.jar must be 
on the class path. Remember that bsf.jar and bsfengines.jar must be on the 
class path to run any extension. For extensions implemented in a scripting 
language, see the additional requirements in <link 
anchor="supported-lang">Supported languages</link>.</p>
  </s2><anchor name="basic-syntax"/>
  <s2 title="Syntax">
  <p>You can always use the pattern illustrated above to set up and use 
extension elements and extension functions. For extension functions implemented 
in Java, you can also use the java namespace, described in <link 
anchor="java-namespace">Alternative: using the predefined java extension 
namespace</link>. Unless you are using the predefined java extension namespace, 
do the following:</p>
  <s3 title="1. Declare the lxslt namespace">
  <p><code>xmlns:lxslt="http://xml.apache.org/xslt";</code></p>
  <p>The lxslt namespace provides support for the lxslt:component element and 
lxslt:script subelement.</p>
  <note>You may also use the LotusXSL alias for this namespace: 
"http://xsl.lotus.com/";.</note>
  </s3>
  <s3 title="2. Declare a unique namespace for each extension prefix">
  <p><br/><code>xmlns:<ref>prefix</ref>=<ref>URI</ref></code></p>
  <p>The <ref>prefix</ref> identifies the namespace, and <ref>URI</ref> is one 
of the following:</p>
  <ul>
    <li>An arbitrary (but unique) string.<br/>
    Example: <code>xmlns:ext1="xyz"</code><br/><br/></li>
    <li><code>[class:]<ref>FQCN</ref></code><br/>
     where <ref>FQCN</ref> is a Java fully qualified class name. If the 
extension only involves static class method
     calls (no instance constructors or instance method calls) precede the 
class name with <code>class:</code>.<br/>
     Example: <code>xmlns:ext2="java.util.Hashtable"</code><br/><br/></li>
    <li>The file name or URL for another document that contains the 
xslt:component element.<br/>
    Example: <code>xmlns:ext3="my-component.txt"</code></li>
  </ul>
  <p>If the stylesheet contains an xslt:component element with a prefix 
attribute set to the extension prefix, the only function of the URI is to 
provide a unique namespace. If the stylesheet does not contain an 
xslt:component, the URI must identify a Java class or a document containing the 
xslt:component.</p>
  </s3>
  <s3 title="3. Designate the extension prefixes">
  <p>In the stylesheet element:</p> 
  <p><code>extension-element-prefixes="<ref>prefix-1 prefix-2 
...</ref>"</code></p>
  <p>In a literal result element or extension element include the xsl 
prefix:</p>
  <p><code>xsl:extension-element-prefixes="<ref>prefix1 prefix 2 
...</ref>"</code></p>
  <p>Keep in mind that where you declare namespaces and designate extension 
prefixes determines the scope of those namespaces.To make your extensions 
available throughout the stylesheet, include these settings and attribute in 
the stylesheet element.</p>
  <p>By default, namespace declarations are included in the transformation 
output. To exclude namespaces from the output, use</p>
  <p><code>exclude-result-prefixes="<ref>prefix-1 prefix-2 ...</ref>"</code></p>
  <p>in the stylesheet element or</p>
  <p><code>xsl:exclude-result-prefixes="<ref>prefix-1 prefix-2 
...</ref>"</code></p> 
  <p>in a literal result element or extension element.</p>
  </s3>
  <s3 title="4. Set up an lxslt:component">
  <p>In the scope of the xslt namespace declaration:</p>
  <p><code>&lt;xslt:component prefix="<ref>prefix</ref>" </code><br/>
     <code>&nbsp;&nbsp;&nbsp;&nbsp;functions="<ref>func-1 func-2 
...func-n</ref>"</code><br/> 
     <code>&nbsp;&nbsp;&nbsp;&nbsp;elements="<ref>elem-1 elem-2 
...elem-n</ref>"&gt;</code><br/>
     <code>&nbsp;&nbsp;&lt;!--See lxslt:script below--&gt;</code><br/>
     <code>&lt;/xslt:component&gt;</code></p>
  <p>where <ref>func-1 func-2 ... func-n</ref> and <ref>elem-1 elem-2 
elem-n</ref> designate the functions and elements the extension provides and 
the stylesheet uses. You can use the function-available and element-available 
functions to determine at run time whether a function or element designated in 
the xslt:component is actually available.</p>
  <note>If your extension namespace is a fully qualified class name, you do not 
need to include the xslt:component. If you do not include it, you cannot use 
the function-available and element-available functions to determine whether a 
given element or function is actually available at runtime.</note>
  </s3>
  <s3 title="5. Set up the lxslt:script element">
  <p>In each xslt:component, you must include an lxslt:script element. If the 
extension is implemented in Java:</p>
  <p><code>&lt;lxslt:script lang="javaclass" 
src="<ref>[class:]FQCN</ref>"/&gt;</code></p>
  <p>where <ref>FQCN</ref> is the fully qualified class name. If the extension 
only involves static class method calls (no instance constructors or instance 
method calls) precede the class name with <code>class:</code>.<br/>
  Example: <code>&lt;lxslt:script lang="javaclass"</code><br/>
  
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src="java.util.Hashtable"/&gt;</code></p>
  <p>If the extension is implemented in JavaScript:</p>
  <p><code>&lt;lxslt:script lang="javascript" &gt;</code><br/>
  <code>&nbsp;&nbsp;&lt;!--The implementation script--&gt;</code><br/>
  <code>&lt;/lxslt:script&gt;</code></p>
  <p>For other scripting languages supported by BSF, use the same approach as 
for JavaScript. &xslt4j; plans to add support for using the src attribute to 
identify another document that contains the implementation script; this feature 
is not yet supported.</p>
  </s3>
  <s3 title="Implicit DTD for lxslt:component">
  <source>&lt;!ELEMENT lxslt:component (lxslt:script)&gt;
  &lt;!ATTLIST lxslt:component
    prefix CDATA #IMPLIED
    namespace-uri CDATA #IMPLIED
    elements NMTOKENS #REQUIRED
    functions NMTOKENS #REQUIRED&gt;
  
  &lt;!ELEMENT lxslt:script EMPTY)&gt;
  &lt;!ATTLIST lxslt:script
    lang CDATA #REQUIRED
    src CDATA #IMPLIED&gt;</source>
  </s3>
  </s2><anchor name="ext-elements"/>
  <s2 title="Using an extension element">
  <p>Extension elements pass the extension two objects:</p>
  <ul>
  <li><jump 
href="apidocs/org/apache/xalan/xslt/XSLProcessorContext.html">org.apache.xalan.xslt.XSLProcessorContext</jump>,
 which provides access to the XSL processor, the XML source tree, the 
stylesheet tree, the current context node, and the current mode (if 
any).<br/><br/></li>
  <li>org.w3c.dom.Element, which provides the API for interacting with the 
extension element.</li>
  </ul>
  <p>You can use the Element getAttribute(String name) method, for example, to 
read element attributes.</p>
  <s3 title="Implementing an extension element">
  <p>For each extension element in a namespace, the implementation must be a 
Java method with the following signature, or the scripting language 
equivalent:</p>
  <p><code><ref>Type element</ref>(org.apache.xalan.xslt.XSLProcessorContext, 
</code><br/>
  
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.w3c.dom.Element
 extensionElement)</code></p>
  <p>where <ref>Type</ref> designates the return type and <ref>element</ref> is 
the local part of the extension element name (the element name without the 
namespace prefix).</p>
  <p>If the extension element is implemented in a loosely typed scripting 
language, such as JavaScript, the arguments and return value are untyped.</p>
  <p><em>Caution:</em> The value returned by an extension element is placed in 
the transformation result. If you are not interested in a return value, use a 
public void Java method or return null from a scripting language function.</p>
  <p>Java example: <code>public void myElement</code><br/>
  
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(org.apache.xalan.xslt.XSLProcessorContext,
 </code><br/>
  
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.w3c.dom.Element
 extensionElement)</code></p>
  <p>JavaScript example: <code>function myElement(xslProcContext, 
element)</code></p>
  </s3>
  <s3 title="The Redirect extension">
  <p>The Redirect extension (<jump href = 
"apidocsorg/apache/xalan/xslt/extensions/Redirect.html">org.apache.xalan.xslt.extensions.Redirect</jump>)
 is shipped with &xslt4j; (more extensions are on the way!).</p>
  <p>A standard XSL transformation involves three parameters: the XML source 
tree, an XSL stylesheet, and the transformation result tree. Whether, the 
result tree is output to a file, a character stream, a byte stream, a DOM, or a 
SAX document handler, the initial transformation sends the entire result to a 
single target, represented by the <resource-ref 
idref="XSLTResultTargetDoc"/>.</p> 
  <p>The Redirect extension supplies three extension elements that you can use 
to redirect portions of your transformation output to multiple files: 
&lt;open&gt;, &lt;write&gt;, and &lt;close&gt;. If you use the &lt;write&gt; 
element alone, the extension opens a file, writes to it, and closes the file 
immediately. If you want explicit control over the opening and closing of 
files, use &lt;write&gt; in conjunction with the &lt;open&gt; and &lt;close&gt; 
elements.</p>
  <p>Each of these elements includes a file attribute and/or a select attribute 
to designate the output file. The file attribute takes a string, so you can use 
it to directly specify the output file name; The select attribute takes an 
XPath expression, so you can use it to dynamically generate the output file 
name. If you include both attributes, the Redirect extension first evaluates 
the select attribute, and falls back to the file attribute if the select 
attribute expression does not return a valid file name.</p>
  </s3><anchor name="ex-redirect"/> 
  <s3 title="Example with the Redirect extension">
  <p>Suppose you are outputting the bulk of your result tree to one file, but 
you want to output the transformation of all &lt;foo&gt; elements and their 
children to another file. The following example illustrates the basic structure 
of the XML source:</p>
  <source>&lt;?xml version="1.0"?&gt; 
  &lt;doc&gt;
    &lt;foo file="foo.out"&gt;
      Testing Redirect extension:
        &lt;bar&gt;A foo subelement text node&lt;/bar&gt;
    &lt;/foo&gt;
    &lt;main&gt;
      Everything else
    &lt;/main&gt;  
  &lt;/doc&gt;</source>
  <p>This stylesheet redirects part of the output to a secondary file:</p>
  <source>
  &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
      version="1.0"
      xmlns:lxslt="http://xml.apache.org/xslt";
      xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect"
      extension-element-prefixes="redirect"&gt;
  
    &lt;xsl:template match="/"&gt;
      &lt;standard-out&gt;
        Standard output:
        &lt;xsl:apply-templates/&gt;
      &lt;/standard-out&gt;
    &lt;/xsl:template&gt;
    
    &lt;xsl:template match="main"&gt;
      &lt;main&gt;
        &lt;xsl:apply-templates/&gt;
      &lt;/main&gt;
    &lt;/xsl:template&gt;
    
    &lt;xsl:template match="/doc/foo"&gt;
      &lt;redirect:write select="@file"&gt;
        &lt;foo-out&gt;
          &lt;xsl:apply-templates/&gt;
        &lt;/foo-out&gt;
      &lt;/redirect:write&gt;
    &lt;/xsl:template&gt;
    
    &lt;xsl:template match="bar"&gt;
      &lt;foobar-out&gt;
        &lt;xsl:apply-templates/&gt;
      &lt;/foobar-out&gt;
    &lt;/xsl:template&gt;
    
  &lt;/xsl:stylesheet&gt;</source>
  <p>The standard output is:</p>
  <source>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;standard-out&gt;
    Standard output:
    &lt;main&gt;
      Everything else.
    &lt;/main&gt;
  &lt;standard-out&gt;</source>
  <p>The output redirected to foo.out is:</p>
  <source>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;foo-out&gt;
      Testing Redirect extension:
      &lt;foobar-out&gt;foo subelement text node&lt;/foobar-out&gt;
    &lt;/foo-out&gt;</source>
  <p>For more information on using the Redirect extension to send output to 
mulitple files, see <resource-ref idref="RedirectDoc"/>.</p>  
  </s3>
  </s2><anchor name="ext-functions"/>
  <s2 title="Using extension functions">
  <p>Extension functions may include arguments of any type and return a value 
of any type.</p>
  <p>XSLT recognizes five data types: node-set, result-tree-fragment, string, 
boolean, and number. You can use XPath expressions to set variables with values 
of these types. You can also pass literals for string, boolean, and number 
arguments. If you want to pass an argument of a type that XSLT does not 
recognize, use another extension function to return an object of that type. The 
stylesheet that appears in <link anchor="format-date-stylesheet">Formatting a 
date</link>, for example uses extension functions to return a Date object and a 
SimpleDateFormat object, and then uses these objects to call another extension 
function.</p>
  <s3 title="Data type mapping">
  <p>The XSLT data types map to Java data types as follows:</p>
    <table>
      <tr>
        <th>XSLT Type</th>
        <th>Java Type</th>
      </tr>
      <tr>
         <td>Node-Set</td>
         <td>org.w3c.dom.NodeList</td>
      </tr>
      <tr>
         <td>String</td>
         <td>java.lang.String</td>
      </tr>
      <tr>
         <td>Boolean</td>
         <td>boolean or Boolean</td>
      </tr>
      <tr>
         <td>Number</td>
         <td>double or Double</td>
      </tr>
      <tr>
         <td>Result Tree Fragment</td>
         <td>org.w3c.dom.DocumentFragment</td>
      </tr>
    </table>
  <p>For the XSLT boolean and number types, &xslt4j; first looks for a method 
with the corresponding Java primitive type. If it does not find such a method, 
it looks for a method with the object type. In the case of the foo:bar(10) 
static method call, for example, &xslt4j; first looks for bar(double). If it 
does not find such a method, it looks for for bar(java.lang.Double).</p>
  <p>When an extension function is invoked, the arguments are converted as 
indicated above, and sent to the extension. No conversion takes place for 
arguments of non-XSLT types.</p>
  <anchor name="ext-func-calls"/>
  </s3>
  <s3 title="Extension function Java calls">
  <p>Use the following syntax to instantiate Java objects and to call 
methods:</p>
  <p><code><ref>prefix</ref>:<ref>FQCN</ref>.new (<ref>args</ref>)</code></p>
  <p>where <ref>prefix</ref> is the extension namespace prefix and 
<ref>FQCN</ref> is the fully qualified class name of which a new instance is to 
be created with the <ref>args</ref> constructor arguments (if any).<br/>
  Example: <code>variable myHash</code><br/>
  
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select"my-ext:java.util.Hashtable.new()"</code></p>
  
  <p><code><ref>prefix</ref>:<ref>FQCN.methodName</ref> 
(<ref>args</ref>)</code></p>
  <p>where <ref>FQCN</ref> is the fully qualified class name whose static 
method <ref>methodName</ref> is to be invoked using the <ref>args</ref> 
arguments.<br/>
  Example: <code>variable new-pop</code><br/>
  
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select="my-ext:java.lang.Integer.valueOf(string(@population)"</code></p>
  
  <p><code><ref>prefix</ref>:<ref>methodName</ref> (<ref>object</ref>, 
<ref>args</ref>)</code></p>
  <p>where <ref>methodName</ref> is the name of the method to invoke on 
<ref>object</ref> with the <ref>args</ref> arguments.<br/>
  Example: <code>variable old-pop </code><br/>
  <code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select="my-ext:put($myHash, 
string(@region), $new-pop)"</code></p>
  </s3>
  
  <s3 title="Passing Nodes to java">
  <p>Please keep in mind that <em>all</em> LocationPath expressions return a 
node-set, even if the expression only returns a single attribute or a text node 
(node-sets with one member). You can use the XSLT string() function (as in the 
syntax examples above) to convert a node-set value to string, and the number() 
function to convert a node-set value to number (a double).</p>
  <p>If you want to pass a node-set to an extension function, set up a Java 
method to accept an 
  org.w3c.dom.NodeList (or an org.apache.xalan.xpath.MutableNodeList, which 
extends NodeList, if you want to modify the nodes).</p>
  <p>Suppose, for example, you have a myExtensions.ProcessNodes class with the 
following doSomething method:</p>
  <p><code>public static void doSomething(org.w3c.dom.NodeList nList)</code></p>
  <p>Assuming you set up this extension in the node-ext namespace, any of the 
following extension calls from a stylesheet are syntactically possible:</p>
  <p><code>&lt;!--Process the current node--&gt;</code><br/>
  <code>node-ext:MyExtensions.ProcessNodes.doSomething(.)</code></p>
  <p><code>&lt;!--Process all nodes in current context--></code><br/>
  <code>node-ext:MyExtensions.ProcessNodes.doSomething(*)</code></p>
  <p><code>&lt;!-- Process all nodes --></code><br/>
  <code>node-ext:MyExtensions.ProcessNodes.doSomething(/*)</code></p>
  <p><code>&lt;!--Process the foo/baz nodes in current context --></code><br/>
  <code>node-ext:MyExtensions.ProcessNodes.doSomething(foo/baz)</code></p>
  <p><code>&lt;!--Process the/foo/baz and /bar/saz nodes --></code><br/>
  <code>node-ext:MyExtensions.ProcessNodes.doSomething(/foo/baz | 
/bar/saz)</code></p>
  <p>The NodeList is in fact a list of references into the XML document, so 
keep in mind that getNextSibling(), for example, gets you the next sibling in 
the document, which may not be the next Node in the NodeList.</p>
  </s3>
  <s3 title="Implementing extension functions">
  <p>For each extension function in a namespace, the implementation must 
include a Java method with the following signature, or the scripting language 
equivalent:</p>
  <p><code>public <ref> object function</ref>(<ref>args</ref>)</code></p>
  <p>where <ref>object</ref> is the return type, <ref>function</ref> is the 
local part of the extension function name (the function name without the 
namespace prefix), and <ref>args</ref> correspond to the arguments in the 
function call.</p>
  </s3>
  </s2><anchor name="java-namespace"/>
  <s2 title="Alternative: using the predefined java extension namespace">
  <p>For extension functions implemented in Java, Xalan provides a java 
namespace. When you declare and use the java namespace, you do not use an 
lxslt:component to designate the functions.</p>
  <p>The java namespace supports the use of extension functions implemented in 
Java. You cannot use this syntax with extension elements or with extensions 
implemented in JavaScript or another scripting language.</p>
  <s3 title="Declare the Xalan java namespace">
  <p><code>xmlns:lxslt="http://xml.apache.org/java";</code></p>
  <note>You may also use the LotusXSL alias for this namespace: 
"http://xsl.lotus.com/java";.</note>
  </s3>
  <s3 title="Use the java namespace when you make extension function calls">
  <p>Use "java" as the prefix with the syntax described in <link 
anchor="ext-func-calls">Extension function Java calls</link>.</p>
  <p>That is all. You do not need to set an extension-element-prefixes 
attribute, and you do not include an xslt:component element. Given the absence 
of the lxslt:component element, you cannot use the function-available method to 
determine at runtime whether a Java method call is actually available. </p>
  <p>Using the java namespace clearly involves less setup than using your own 
namespace, as long as these restrictions are not a problem. Remember that you 
always have the option of setting up your own namespace and extra overhead is 
really minimal.</p>
  </s3><anchor name="ex-java-namespace"/> 
  <s3 title="Example: Formatting a date">
  <p>This example uses extension functions to call the SimpleDateFormat class 
and the IntDate class. IntDate uses String arguments to set up a Date 
object:</p>
  <source>import java.util.Date;
  import java.util.Calendar;
  
  public class IntDate
  {
    public static Date getDate(String year, String month, String day)
      {
        // Date(int, int, int) has been deprecated, so use Calendar to
        // set the year, month, and day.
        Calendar c = Calendar.getInstance();
        // Convert each argument to int.
        
c.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
        return c.getTime();
      }
  }</source>
  <p>The template transforms date elements with four attributes. For example, 
it transforms <code>&lt;date format="EEEE, MMM dd, yyyy" year="2000" month="4" 
day="27"/&gt;</code> into &lt;p&gt;Date: Thursday, April 27, 
2000.&lt;/p&gt;.</p>
  <p>As you review this stylesheet, please keep the following in mind:</p>
   <ul>
    <li>The exclude-result-prefixes stylesheet attribute prevents the java 
namespace declaration from
     appearing in the output.</li>
    <li>The XSLT type returned by any LocationPath expression is node-set, so 
the XSLT string
      function is used to convert the format, year, month, and day attribute 
node-set values to
      strings.</li>
    <li>The format attribute provides a String argument for constructing a 
java.text.SimpleDateFormat
      object.</li>
      <li>The IntDate class uses String values provided by the year, month, and 
day attributes, to set the
      date. XSLT can pass number values, but these are converted into 
doubles.</li>
    <li>The formatter variable holds a SimpleDateFormat object, and the date 
variable holds a Date object.
      XSLT does not understand either of these types, but they are used to call 
the SimpleDateFormat format
       method. In that call, $formatter is the object, and $date is the 
argument. The syntax for calling
       Java constructors and methods is described above in <link 
anchor="ext-func-calls">Extension function Java calls</link>.</li>    
   </ul><anchor name="format-date-stylesheet"/>   
  <source>&lt;?xml version="1.0"?&gt;
  &lt;xsl:stylesheet 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
      version="1.0"   
      xmlns:java="http://xml.apache.org/xslt/java";
      exclude-result-prefixes="java"&gt;
      
    &lt;!--Other templates for transforming the rest of the XML source 
documents--&gt;
    
    &lt;xsl:template match="date"&gt; 
      &lt;xsl:variable name="year" select="string(./@year)"/&gt;
      &lt;xsl:variable name="month" select="string(./@month)"/&gt; 
      &lt;xsl:variable name="day" select="string(./@day)"/&gt;          
      &lt;xsl:variable name="format" select="string(./@format)"/&gt;
  
      &lt;xsl:variable name="formatter"       
          select="java:java.text.SimpleDateFormat.new($format)"/&gt;
  
      &lt;xsl:variable name="date" 
          select="java:IntDate.getDate($year, $month, $day)"/&gt;
  
      &lt;p&gt;Date: &lt;xsl:value-of select="java:format($formatter, 
$date)"/&gt;&lt;/p&gt;
    &lt;/xsl:template&gt;
  &lt;/xsl:stylesheet&gt;  
  </source>
  </s3>
  </s2>
  <s2 title="Examples: using Java and JavaScript to implement the same 
extension">
  <p>This section contains two examples. The first example uses a Java 
extension to transform a set of name elements  into an alphabetical and 
numbered list. The second example uses a JavaScript script to do the same. Both 
examples include equivalent extension elements and an extension function.</p>
  <anchor name="ex-java"/> 
  <s3 title="Java implementation">
  <p>MyCounter.java</p>
  <source>Import java.util.*;
  
  public class MyCounter {
    Hashtable counters = new Hashtable ();
  
    public MyCounter () 
    {}
  
    public void init(org.apache.xalan.xslt.XSLProcessorContext context, 
                     org.apache.xalan.xslt.ElemExtensionCall extElem) 
    {
      String name = extElem.getAttribute("name");
      String value = extElem.getAttribute("value");
      int val;
      try 
      {
        val = Integer.parseInt (value);
      } 
      catch (NumberFormatException e) 
      {
        e.printStackTrace ();
        val = 0;
      }
      counters.put (name, new Integer (val));
    }
  
    public int read(String name) 
    {
      Integer cval = (Integer) counters.get (name);
      return (cval == null) ? 0 : cval.intValue ();
    }
  
    public void incr(org.apache.xalan.xslt.XSLProcessorContext context, 
                     org.apache.xalan.xslt.ElemExtensionCall extElem) {
      String name = extElem.getAttribute("name");
      Integer cval = (Integer) counters.get(name);
      int nval = (cval == null) ? 0 : (cval.intValue () + 1);
      counters.put (name, new Integer (nval));
    }
  }
  </source>
  <p>An XML source document:</p>
  <source>&lt;?xml version="1.0"?&gt;
  &lt;doc&gt;
    &lt;name first="David" last="Marston"/&gt;
    &lt;name first="David" last="Bertoni"/&gt;
    &lt;name first="Donald" last="Leslie"/&gt;
    &lt;name first="Emily" last="Farmer"/&gt;
    &lt;name first="Jack" last="Donohue"/&gt;
    &lt;name first="Myriam" last="Midy"/&gt;
    &lt;name first="Paul" last="Dick"/&gt;
    &lt;name first="Robert" last="Weir"/&gt;
    &lt;name first="Scott" last="Boag"/&gt;
    &lt;name first="Shane" last="Curcuru"/&gt;
  &lt;/doc&gt;</source>
  <p>The stylesheet:</p>
  <source>&lt;?xml version="1.0"?&gt; 
  &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                  xmlns:lxslt="http://xml.apache.org/xslt";
                  xmlns:counter="MyCounter"
                  extension-element-prefixes="counter"
                  version="1.0"&gt;
  
    &lt;lxslt:component prefix="counter"
                     elements="init incr" functions="read"&gt;
      &lt;lxslt:script lang="javaclass" src="MyCounter"/&gt;
    &lt;/lxslt:component&gt;
  
    &lt;xsl:template match="/"&gt;
      &lt;HTML&gt;
        &lt;H1&gt;Names in alphabetical order&lt;/H1&gt;
        &lt;counter:init name="index" value="1"/&gt;
        &lt;xsl:for-each select="doc/name"&gt;
          &lt;xsl:sort select="@last"/&gt;
          &lt;xsl:sort select="@first"/&gt;
          &lt;p&gt;
          &lt;xsl:text&gt;[&lt;/xsl:text&gt;
          &lt;xsl:value-of select="counter:read('index')"/&gt;
          &lt;xsl:text&gt;]. &lt;/xsl:text&gt;
          &lt;xsl:value-of select="@last"/&gt;
          &lt;xsl:text&gt;, &lt;/xsl:text&gt;
          &lt;xsl:value-of select="@first"/&gt;
          &lt;/p&gt;
          &lt;counter:incr name="index"/&gt;
        &lt;/xsl:for-each&gt;
      &lt;/HTML&gt;
    &lt;/xsl:template&gt;
   
  &lt;/xsl:stylesheet&gt;
  </source>
  <p>Transformation output:</p>
  <source>&lt;HTML&gt;
  &lt;H1&gt;Names in alphabetical order&lt;/H1&gt;
  &lt;p&gt;[1]. Bertoni, David&lt;/p&gt;
  &lt;p&gt;[2]. Boag, Scott&lt;/p&gt;
  &lt;p&gt;[3]. Curcuru, Shane&lt;/p&gt;
  &lt;p&gt;[4]. Dick, Paul&lt;/p&gt;
  &lt;p&gt;[5]. Donohue, Jack&lt;/p&gt;
  &lt;p&gt;[6]. Farmer, Emily&lt;/p&gt;
  &lt;p&gt;[7]. Leslie, Donald&lt;/p&gt;
  &lt;p&gt;[8]. Marston, David&lt;/p&gt;
  &lt;p&gt;[9]. Midy, Myriam&lt;/p&gt;
  &lt;p&gt;[10]. Weir, Robert&lt;/p&gt;
  &lt;/HTML&gt;</source>
  </s3><anchor name="ex-javascript"/> 
  <s3 title="JavaScript implementation">
  <p></p>
  <source>&lt;?xml version="1.0"?&gt; 
  &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                  xmlns:lxslt="http://xml.apache.org/xslt";
                  xmlns:counter="MyCounter"
                  extension-element-prefixes="counter"
                  version="1.0"&gt;
  
    &lt;lxslt:component prefix="counter"
                     elements="init incr" functions="read"&gt;
      &lt;lxslt:script lang="javascript"&gt;
        var counters = new Array();
  
        function init (xslproc, elem) {
          name = elem.getAttribute ("name");
          value = parseInt(elem.getAttribute ("value"));
          counters[name] = value;
          return null;
        }
  
        function read (name) {
          // Return a string.
          return "" + (counters[name]);
        }
  
        function incr (xslproc, elem)
        {
          name = elem.getAttribute ("name");
          counters[name]++;
          return null;
        }
      &lt;/lxslt:script&gt;
    &lt;/lxslt:component&gt;
  
    &lt;xsl:template match="/"&gt;
      &lt;HTML&gt;
        &lt;H1&gt;Names in alphatebical order&lt;/H1&gt;
        &lt;counter:init name="index" value="1"/&gt;
        &lt;xsl:for-each select="doc/name"&gt;
          &lt;xsl:sort select="@last"/&gt;
          &lt;xsl:sort select="@first"/&gt;
          &lt;p&gt;
          &lt;xsl:text&gt;[&lt;/xsl:text&gt;
          &lt;xsl:value-of select="counter:read('index')"/&gt;
          &lt;xsl:text&gt;]. &lt;/xsl:text&gt;
          &lt;xsl:value-of select="@last"/&gt;
          &lt;xsl:text&gt;, &lt;/xsl:text&gt;
          &lt;xsl:value-of select="@first"/&gt;
          &lt;/p&gt;
          &lt;counter:incr name="index"/&gt;
        &lt;/xsl:for-each&gt;
      &lt;/HTML&gt;
    &lt;/xsl:template&gt;
   
  &lt;/xsl:stylesheet&gt;
  </source>
  <p>This stylesheet produces the same output as the preceding example with the 
Java extension.</p>
  </s3>
  </s2>
  </s1>
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/faq.xml
  
  Index: faq.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE faqs SYSTEM "sbk:/style/dtd/faqs.dtd">
  
  <faqs title="Frequently asked questions about Xalan">
        <faq title="title for first question">
                <q>first question?</q>
                <a>
        <p>answer</p>
        <p>more answer. can also include lists and tables.</p>
                </a>
        </faq>
        <faq title="title for second question">
                <q>second question?</q>
                <a>
        <p></p>
        <p></p>
                </a>
        </faq>  
  </faqs>
  
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/getstarted.xml
  
  Index: getstarted.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?> 
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="Getting Started">
  <ul>
  <li><link anchor="download">Downloading what you need</link></li>
  <li><link anchor="classpath">Setting up the system class path</link></li>
  <li><link anchor="samples">Trying out the samples</link></li>
  <li><link anchor="commandline">Performing your own transformations from the 
command line</link></li>
  <li><link anchor="java-apps">Creating your own XSLT applications</link></li>
  <li><link anchor="usage-patterns">Basic usage patterns</link></li>
  </ul>
  <anchor name="download"/>
  <s2 title="Downloading what you need">
  <p>To use Xalan, you need the following:</p>
  <ul>
  <li>The JDK or JRE 1.1.6 or later</li>
  <li>xalan.jar</li>
  <li>xerces.jar</li>
  </ul>
  <p>You can get the Sun JDK or JRE from <jump 
href="http://www.java.sun.com";>java.sun.com</jump>. Download the latest release 
of Xalan and Xerces-java from <jump 
href="http://xml.apache.org/dist/";>xml.apache.org</jump>. Check the <link 
idref="readme" anchor="status">version release notes</link> to verify that you 
are using the correct version of Xerces. <em>Important</em> You may experience 
unpredicable difficulties and anomalies if your Xalan and Xerces builds are not 
in synch.</p>
  <note>You may also download the latest releases of LotusXSL and the XML 
Parser for Java from <jump 
href="http://www.alphaworks.ibm.com/tech/LotusXSL";>alphaWorks</jump>. LotusXSL 
and the XML Parser for Java are Xalan and Xerces-java respectively, along with 
additional features and continued support for the core API that was in place on 
alphaWorks before the first releases of Xalan and Xerces-java on xml.apache.org 
in November 1999.</note>
  <p>If you plan to run <link idref="extensions">XSLT extensions</link>. you 
need bsf.jar and bsfengines.jar, both of which are included in the Xalan 
distribution. If you plan to run XSLT extensions implemented in JavaScript or 
another scripting language, you will need one or more additional files as 
indicated in <link idref="extensions" anchor="supported-lang">extensions 
language requirements</link>.</p>
  </s2><anchor name="classpath"/>
  <s2 title="Setting up the system class path">
  <p>At the very minimum, you must include xalan.jar and xerces.jar on the 
system class path. To run the examples, include xalansamples.jar To run 
extensions, include bsf.jar and bsfengines.jar. For extensions implemented in 
JavaScript or another scripting language, see <link idref="extensions" 
anchor="supported-lang">extensions language requirements</link> about the 
additional JAR files you must place on the class path.</p>
  <p>If you are using JDK or JRE 1.x (at least 1.7, please), also include 
classes.zip on the class path.</p>
  </s2><anchor name="samples"/>
  <s2 title="Trying out the samples">
  <p>The Xalan distribution includes a number of basic samples. These examples 
are easy to run, and you can review the brief source files to see just how they 
work.</p>
  <p>To run most of the samples, do the following:</p>
  <ol>
  <li>Set up your class path (see above), including xalansamples.jar.</li>
  <li>Be sure java.exe is on your path.</li>
  <li>(Using the DOS shell in Windows) Go to the samples subdirectory 
containing the sample.</li>
  <li>Run the sample from the command line.</li>
  <li>Examine the application source files.</li>
  </ol>
  <p>For example, to run SimpleTransformation, go to the simple subdirectory 
and issue the following command:</p>
  <p><code>java SimpleTransformation</code></p>
  <p>The sample displays its output on the screen. Then examine the source 
files: foo.xml, foo.xsl, and SimpleTransformation.java.</p>
  <p>The procedure for running two of the samples is a little different: You 
run the applet sample from an HTML browser, and the servlet example from a web 
server with servlet support (such as Apache with WebSphere or Jserv).</p> 
  <p>For information about the samples, see <link idref="samples">&xslt4j; 
Samples</link>.</p>
  
  </s2><anchor name="commandline"/>
  <s2 title="Performing your own transformations from the command line">
  <p>java.org.apache.xalan.xslt.Process provides a basic utility for performing 
transformations from the command line. You use this utility, for example, to 
run the extensions samples. The command-line for the most standard of
   transformations is as follows:</p>
  <p><code>java org.apache.xalan.xslt.Process -in 
<ref>xmlSource</ref></code><br/>
  <code>-xsl <ref>stylesheet</ref> -out <ref>outputfile</ref></code></p>
  <p>If you want the output to be displayed on the screen, simply omit the -out 
argument.</p>
  </s2><anchor name="java-apps"/>
  <s2 title="Setting up your own Java applications">
  <p>Modify the samples. Set up an XSLTProcessor with the right liaison, 
XSLTInput objects for the XML source and the stylesheet, an XSLTResultTarget 
object for the output. Then call the XSLTProcessor process method.</p>
  </s2><anchor name="usage-patterns"/>
  <s2 title="Basic usage patterns">
  <ul>
  <li><link anchor="files">Use a stylesheet file to transform an XML source 
file into an output file</link></li>
  <li><link anchor="params">Send stylesheet parameters</link></li>
  <li><link anchor="compiled">For performance, use compiled 
stylesheets</link></li>
  <li><link anchor="pipe">Pipe the output from one transformation to another 
transformation</link></li>
  <li><link anchor="dom-in">Accept DOM input</link></li>
  <li><link anchor="dom-out">Produce DOM output</link></li>
  <li><link anchor="sax">Generate and respond to SAX events</link></li>
  <li><link anchor="xpath">Work with XPath expressions</link></li>
  <li><link anchor="extensions">Create and use extensions</link></li>
  
  </ul><anchor name="files"/>
  <s3 title="Use XML source, XSL stylesheet, and output files">
  <p>Use an XML file and an XSL file to instantiate XSLTInput objects, create a 
processor with the default DTM liaison, and send the transformation output to 
an output file. For an example, see "Simple."</p>
  </s3><anchor name="params"/>
  <s3 title="Send stylesheet parameters">
  <p>When we generate the HTML documents that make up the Xalan doc set, for 
example, we send the stylesheet an id parameter along with each XML source 
document. The id identifies that document and enables the stylesheet to 
integrate it into the overall doc set.</p>
  </s3><anchor name="compiled"/>
  <s3 title="Compile your stylesheets">
  <p></p>
  </s3><anchor name="pipe"/>
  <s3 title="Perform multi-staged transformations">
  <p></p>
  </s3><anchor name="dom-in"/>
  <s3 title="Accept DOM input">
  <p></p>
  </s3><anchor name="dom-out"/>
  <s3 title="Produce DOM output">
  <p></p>
  </s3><anchor name="sax"/>
  <s3 title="Generate and respond to SAX events">
  <p></p>
  </s3><anchor name="xpath"/>
  <s3 title="Work with XPath expressions">
  <p></p>
  </s3><anchor name="extensions"/>
  <s3 title="Create and use extensions">
  <p></p></s3>
  </s2>
  </s1>
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/install.xml
  
  Index: install.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!--
   * 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 [EMAIL PROTECTED]
   *
   * 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/>.
   -->
  
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  
  <s1 title="Installation">
        
         <s2 title="Setting up &xslt4j;">
       <p>To perform XSL transformations with &xslt4j;, you must provide a Java 
run-time environment with access to an XML
       parser. As explained in the next section, &xslt4j; runs by default with 
a parser in &xml4j;. To set up &xslt4j;, do the
       following:</p>
       <ol> 
                   <li>Install <resource-ref idref="JDK1.2"/> or <resource-ref 
idref="JRE1.2"/>.
        (&xslt4j; should also work fine with 1.1.6 or later versions of the 1.1 
JDK or Java
        runtime.)<br/><br/></li> 
                <li>Download <resource-ref idref="Xalan-dist"/>.<br/><br/></li>
                  <li>Download <resource-ref 
idref="xerces-used"/>.<br/><br/></li>
                  <li>Add the &xslt4j; and &xml4j; JAR files (xalan.jar and 
xerces.jar) to the system classpath.
         To add these jars to the system classpath, you can include a set 
statement along the lines
         of<br/><br/>
         <code>set 
CLASSPATH=\xalan\xalan.jar;\xerces\xerces.jar;%CLASSPATH%</code><br/><br/> 
         in your autoexec.bat.</li>
                </ol>
      <p>The basic infrastructure is now in place to perform XSL 
transformations from the command line or from your own 
      java classes. For more information, see <resource-ref 
idref="CommandLineUtility"/> and 
      <resource-ref idref="APIOverview"/>.</p>
        </s2>
    
    <s2 title="Using &xslt4j; with an &xml4j; Parser">
       <p>By default, Xalan 0.19.2 uses the high-performance DTM parser in 
Xerces 1.0.1 to parse XML documents
       and XSL stylesheets.  As indicated in the preceding section, you provide 
&xslt4j; access to this parser by downloading
       &xml4j; from http://xml.apache.org and placing xerces.jar in the 
classpath. &xslt4j; also provides a liaison for the 
       &xml4j; 1.0.0 DOM parser.</p>
       <note>If you want to use earlier alphaWorks releases of the XML4J DOM or 
TXDOM parsers, you should download 
       LotusXSL 0.19.2 from 
http://www.alphaworks.ibm.com/tech/LotusXSL.<br/><br/></note>
       <p>If you want to use &xslt4j; with some other XML parser, it is up to 
you to implement a liaison 
       to the parser. Your liaison class should extend 
org.apache.xalan.xpath.xml.XMLParserLiaisonDefault 
       and implement org.apache.xalan.xpath.XPathSupport.</p>
     </s2>
  
     <s2 title="Rebuilding &xslt4j;">
       <p>The &xslt4j; build is in xalan.jar. If you want to rebuild xalan.jar 
       yourself, do the following:</p>
       <ol>
         <li>Set up GNU or the equivalent build environment on your 
workstation.<br/><br/>
         If you are running Windows 95/98/NT, you can use the Cygwin port of 
GNU. Be sure to put the
         appropriate Cygwin bin directory at the beginning of your system path. 
For information about
         Cygwin, see <jump 
href="http://www.sourceware.cygnus.com/cygwin/";>Cygwin</jump>.<br/><br/></li>
         <li>Place <resource-ref idref="xerces-used"/> xerces.jar in the Java 
classpath.<br/><br/></li>
         <li>If you are working in Windows, set MAKE_MODE as follows:<br/><br/>
         <code>set MAKE_MODE=UNIX</code><br/><br/></li>
         <li>Run the make file in the &xslt4j; root directory:<br/><br/>
         <code>make build</code><br/><br/></li>
       </ol>
     </s2>
     <s2 title="Generating the documentation">
       <p>&xslt4j; includes a number of XML source files, XSL stylesheets, 
document type definition (DTD)
        files, and entity relationship (ENT) files, that provide the input for 
the Xalan User's Guide,
        and the overview and package-level documents used during the generation 
of Javadoc.</p>
       <p>To generate the Xalan User's Guide, run the Xalan make file in the 
Xalan <em>docs</em> 
       directory:<br/><br/>
       <code>make stylebook</code></p>
       <p>To generate Xalan API documentation, set up the make file to use the 
Javadoc tool in the Java JDK 1.2.2 bin 
       directory. </p>
       <p>Do the following:</p>
         <ol>
           <li>Put the Java JDK 1.2.2 bin directory on your path (in front of 
any JDK 1.1.x bin 
           directory that appears on the path).<br/><br/></li>
           <li>In the Xalan docs directory, run the Xalan make file as 
follows:<br/><br/>
           <code>make javadoc</code><br/><br/></li>
        </ol>
    </s2>
  </s1>
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/javadocOverview.xml
  
  Index: javadocOverview.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="API Overview">
  
      <s2 title="API Summary">
      <p>&xslt4j; implements the <resource-ref idref="xsl-draft-used"/>. XLST 
is a language for transforming XML documents 
      into other XML documents, HTML documents, or other document types. XSLT 
includes the XML XSLT vocabulary and 
      XPath, a language for addressing parts of an XML document. XPath is
      designed to be used by both XSLT and XPointer. An XSLT stylesheet 
describes how to transform a tree of nodes representing
      a range of XML documents into another XML tree of nodes.</p>
      <p>&xslt4j; takes as primary input an XML source document and an XSL 
stylesheet. The XML document and the XSL stylesheet
      may be a URL or file, a character stream, an input stream, or a DOM tree. 
The stylesheet may also take the form of a
      compiled stylesheet. If the XML document contains a stylesheet Processing 
Instruction (PI), a separate stylesheet is not
      required.</p>
      <p>&xslt4j; uses an implementation of the <resource-ref 
idref="XMLParserLiaisonDoc"/> to interact with XML4J (or another
       XML parsser) and sends output events to a <resource-ref 
idref="FormatterListenerDoc"/>, an extension of
       <resource-ref idref="SAX"/> <resource-ref 
idref="SAXDocumentHandler"/>.</p>
       <p>The XSLT and XPath engines are independent from any given DOM or XML 
implementation. All parser-dependent calls are
       funneled through the XMLParserLiaison.</p>
       <p>For an introduction to the use of &xslt4j; to transform XML 
documents, see <jump href="../api.html">
       API Overview</jump>.</p>
       </s2>
  
  </s1>
  
  
  1.1                  
xml-xalan/xdocs/sources/xalan/org-apache-xalan-xpath-dtm.xml
  
  Index: org-apache-xalan-xpath-dtm.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="org.apache.xalan.xpath.dtm package">
    <s2 title="Summary">
       <p>Implements a pseudo-DOM that provides significant performance 
enhancements.</p>
     </s2>
     <s2 title="Description">
       <p>DOM (Document Object Model) is a standard interface for interacting 
with XML documents. Xalan
       supports this interface: when you provide a Node as input for an XML 
source document or XSL 
       stylesheet, Xalan uses an implementation of the DOM interface. For large 
XML documents, however,
       this may involve considerable overhead, since Xalan must create one or 
more Java objects for each Node
       in the document.</p>
       <p>For those cases where you provide a URL or character stream as input 
and use the default XML parser
       (Xerces) Xalan avoids this overhead by implementing what we call a DTM 
(Document Table Model), a
       pseudo-DOM that uses integer arrays in place of the DOM. The performance 
improvements are very
       significant.</p>
         </s2>
  </s1>
  
  
  
  1.1                  
xml-xalan/xdocs/sources/xalan/org-apache-xalan-xpath-xdom.xml
  
  Index: org-apache-xalan-xpath-xdom.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="org.apache.xalan.xpath.xmldom package">
     <s2 title="Summary">
       <p>Contains XercesLiaison, liaison to the Xerces XML parser.</p>
     </s2>     
     <s2 title="Description">
       <p></p>
     </s2>
  </s1> 
  
  
  1.1                  
xml-xalan/xdocs/sources/xalan/org-apache-xalan-xpath-xml.xml
  
  Index: org-apache-xalan-xpath-xml.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="org.apache.xalan.xpath.xml package">
    <s2 title="Summary">
       <p>XMLParserLiaison provides a liaison between the XSLT processor and an 
XML parser. </p>
     </s2>     
       <s2 title="Description">
       <p>Unless you specify an XML parser and your own
       implementation of the XMLParserLiaison interface, Xalan uses 
XMLParserLiaisonDefault to
       interface the XML4J parser. This package also includes four 
implementations of the 
       FormatterListener interface, a SAX-based formatter interface for the XSL 
processor: the FormatterToDOM, the
       FormatterToXML, the FormatterToHTML (an extension of FormatterToXML), 
and the FormatterToText.</p>
     </s2>
  </s1>
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/org-apache-xalan-xpath.xml
  
  Index: org-apache-xalan-xpath.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="org.apache.xalan.xpath package">
    <s2 title="Summary">
       <p>Contains the infrastructure for processing XPATH expressions</p>
     </s2>     
       <s2 title="Description">
       <p></p>
     </s2>
  </s1>
  
  
  1.1                  
xml-xalan/xdocs/sources/xalan/org-apache-xalan-xslt-client.xml
  
  Index: org-apache-xalan-xslt-client.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="org.apache.xalan.xslt.client package">
    <s2 title="Summary">
       <p>Contains a simple applet for hosting the Xalan processor.</p>
     </s2>     
       <s2 title="Description">
     <p>To perform transformations from an HTML client, do the following:</p>
  <ol> 
  <li>Include XSLTProcessorApplet in an HTML client.<br/><br/></li>
  <li>Specify the XML source document and XSL stylesheet.<br/><br/>
  You can use the DocumentURL and StyleURL PARAM tags or the setDocumentURL() 
and setStyleURL() methods. If the XML document contains a stylesheet Processing 
Instruction (PI), you do not need to specify an XSL stylesheet.<br/><br/></li>
  <li>Call the transformtoHTML(String, String) method which performs the 
transformation and returns the new document as a String.</li></ol>
     </s2>
  </s1>
  
  
  1.1                  
xml-xalan/xdocs/sources/xalan/org-apache-xalan-xslt-extensions.xml
  
  Index: org-apache-xalan-xslt-extensions.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="org.apache.xalan.xslt.extensions package">
    <s2 title="Summary">
       <p>Extensions to standard XSLT functionality.</p>
     </s2>     
       <s2 title="Description">
       <p></p>
     </s2>
  </s1>
  
  
  1.1                  
xml-xalan/xdocs/sources/xalan/org-apache-xalan-xslt-trace.xml
  
  Index: org-apache-xalan-xslt-trace.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="org.apache.xalan.xslt.trace package">
    <s2 title="Summary">
       <p>Contains a debugging interface for Xalan.</p>
     </s2>     
       <s2 title="Description">
       <p>Xalan contains a debugger interface in the 
org.apache.xalan.xslt.trace package. This
                   should be looked upon as a work in progress, possibly to be 
replaced by a more 
                   standard interface in the future. The source code 
information given is 
                   somewhat limited by what the SAX interface provides... the 
line and column numbers 
                   at the *end* of the event. I'll have to work on obtaining 
the character selection 
                   of the executing event. Also, at this time there is no 
source tree line information 
                   available.  Again, I'll be working on this. The interfaces 
are:</p> 
                <ul>
                  <li>TraceListener is an interface that debuggers 
                  can implement. The interface can be set on the XSLTProcessor 
by calling the addTraceListener() function.<br/><br/></li>
                  <li>PrintTraceListener is an implementation of 
                  the TraceListener interface that is used by Xalan for the 
-TT, TG, and -TTC 
                  switches.  It's code is a good example to look at when 
figuring out how to 
                  use the trace functionality.<br/><br/></li>
                  <li>TracerEvent is an event that is 
                  passed to the TraceListener.trace() function.  It is called 
before a node is 'executed' 
                  in the stylesheet.<br/><br/></li>
                  <li>GenerateEvent is an event that is 
                  passed to the TraceListener.generated() function. It is 
called after an event 
                  occurs to create something in the result tree.<br/><br/></li>
                </ul>
     </s2>
  </s1>
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/org-apache-xalan-xslt.xml
  
  Index: org-apache-xalan-xslt.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="org.apache.xalan.xslt package">
    <s2 title="Summary">
       <p>This is the main Xalan package.</p>
     </s2>     
       <s2 title="Description">
       <p>The XSLTProcessor interface defines the XSLT processor API. 
XSLTProcessorFactory provides methods for creating an
       instance of the XSLT processor, which actually uses XSLTEngineImpl, an 
implementation of XSLTProcessor that users never
       need to call directly.</p>
     </s2>
  </s1>
  
  
  1.1                  
xml-xalan/xdocs/sources/xalan/org-apache-xml-serialize.xml
  
  Index: org-apache-xml-serialize.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="org.apache.xml.serialize package">
    <s2 title="Summary">
       <p>Tools (work in progress) for serlializing DOM trees and SAX 
events.</p>
     </s2>     
       <s2 title="Description">
       <p>Eventually the tools in this package will replace the FormatterToDOM, 
FormatterToHTML,
          FormatterToText, and FormatterToXML classes in the 
org.apache.xalan.xpath.xml package.</p>
     </s2>
  </s1>
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/overview.xml
  
  Index: overview.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/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 [EMAIL PROTECTED]
   *
   * 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="&xslt4j; Overview">
        
    <s2 title="Introduction">
      <p>&xslt4j; (named after a rare musical instrument) provides high- 
        performance XSL stylesheet processing. &xslt4j; fully implements the 
W3C 
        XSLT recommendation. The stylesheet processor is feature rich and 
        robust. 
      </p>
      <p>XSL is a language for expressing stylesheets and other types of 
transformations. 
                It consists of two parts:</p> 
                  <ol> 
                    <li>XLST, a language for transforming XML documents into 
other XML documents,
          HTML documents, or other document types. This part of the language 
includes the XSL
          Transformation vocabulary and XPath, a language for addressing parts 
of an XML document. 
          XPath is designed to be used by both XSLT and XPointer.<br/><br/></li>
                    <li>An XML vocabulary for specifying formatting semantics 
(called <ref>Formatting
          Objects</ref>).<br/><br/></li> 
                        </ol> 
  
                  <p>&xslt4j; implements the first part of XSL, the 
<resource-ref idref="xsl-draft-used"/>.
         An XSLT stylesheet specifies the transformation that may be performed 
with a range of XML 
         documents by describing how to transform such a tree of nodes into 
another XML tree of
         nodes.</p>
         <note>The XSLT stylesheet may include cascading style sheets (CSS) in 
the result.</note>
         <p>In the following example, the foo.xsl stylesheet is used to 
transform foo.xml into foo.out:</p>
         <p>foo.xml:</p>
          <source>
  &lt;?xml version="1.0"?>
  &lt;doc>Hello&lt;/doc>
          </source>
          <p>foo.xsl:</p>
          <source>
  &lt;?xml version="1.0"?> 
  &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  &lt;xsl:template match="doc">
  &lt;out>&lt;xsl:value-of select="."/>&lt;/out>
  &lt;/xsl:template>
  &lt;/xsl:stylesheet></source>
        <p>foo.out:</p><source>
  &lt;out>Hello&lt;/out></source>
                  <p>By default, &xslt4j; uses &xml4j; 
        to parse input XML documents and XSL stylesheets, but it can be adapted 
to work with 
        other DOM-producing mechanisms.</p>
        <p>During the course of a transformation, &xslt4j; produces SAX events, 
        an output DOM, or an XML result document based on the transformations 
specified in the 
        XSL stylesheet.</p>
        </s2>
          <s2 title="&xslt4j; Features">
            <ul> 
                    <li>Implements the <resource-ref 
idref="xsl-draft-used"/>.</li> 
          <li>Uses &xml4j;</li>
          <li>Can interface to any XML parser that produces Java DOM Trees</li>
          <li>Can output to SAX or DOM</li>
          <li>Includes an applet wrapper</li>
          <li>Supports Java and JavaScript extensions</li>
          <li>Supports the production in a single operation 
          of multiple output documents</li>        
            </ul> 
          </s2>
  
      <s2 title="Getting up to speed with XSLT">
      <p>If you are still working through some of the details of the XSLT spec, 
you may want to make use of one or more 
      of the following:</p>
      <ul>
      <li>Elliotte Rusty Harold's <jump 
href="http://metalab.unc.edu/xml/books/bible/updates/14.html";>Chapter 14 of 
      the XML Bible: XSL Transformations</jump><br/><br/></li>
      <li>Crane Softwright's <jump 
href="http://www.CraneSoftwrights.com/training/";>Free preview of Practical 
Transformation Using XSLT
      and XPath</jump><br/><br/></li>
      <li>The Mulberry <jump 
href="http://www.mulberrytech.com/xsl/xsl-list/";>XSL-List -- Open Forum on 
XSL</jump> 
      (of interest to XSL users at all levels)<br/><br/></li>
      <li>Dave Pawson's <jump href="http://www.dpawson.co.uk/";>XSL Frequently 
Asked Questions</jump><br/><br/></li>
  <li>Objects by Design's <jump 
href="http://www.objectsbydesign.com/projects/xmi_to_html.html";>Transforming 
XMI to HTML</jump><br/><br/></li>
      </ul>
      <p>This is a very preliminary list. If you have come across other useful 
introductionary or background materials,
       please email <human-resource-ref idref="dleslie"/>, so he can add them 
to this list.</p>
      </s2>
  </s1> 
  
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/readme.xml
  
  Index: readme.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd"[
  <!ENTITY done-j SYSTEM "DONE">
  <!ENTITY status-j SYSTEM "STATUS">
  <!ENTITY bugs-j SYSTEM "BUGS">]>
  
  <!--
   * 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 [EMAIL PROTECTED]
   *
   * 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="Release Notes">
        
    <s2 title="Disclaimer">
      <p>In its current form, &xslt4j; is a Developer Preview, not a product.
      It implements a draft standard that is still in design.  APIs will 
continue to change, 
      with no promise of backwards compatibility.  This software contains known 
and unknown bugs.  
      We recommend against using this software for mission critical 
applications.  
      The Apache Software Foundation will not take responsibility for any 
problems that may ensue
      from using this software.</p>
                <p>For a general overview of &xslt4j;, see <resource-ref 
idref="Introduction"/>. For information about the &xslt4j;
       API, see <resource-ref idref="APIOverview"/> and <resource-ref 
idref="APIDocumentation"/>.</p>    
                <p>For the Apacke Software License, see <resource-ref 
idref="ApacheLicense"/>.</p> 
        </s2>
      
         <s2 title="Performance Notes"> 
                <p>We have done a great deal in versions 0.18 and 0.19 to 
improve performance. However, as these things often go, we
      have not yet met our goal for a 10-fold performance increase. We provide 
his list of what we understand the bottlenecks
      to be so that you may understand and, in some cases, work around them. 
The bottlenecks appear
      to be:</p> 
                <gloss> 
                  <label>Class load and JIT (Just In Time compiler)</label> 
                  <item>As we've added architecture to improve raw transform 
performance, we've 
                        also increased the number of classes and class 
instances that need loading, and 
                        the amount of code that needs JIT compiling.  Although 
we can shrink the code size 
                        a bit, the time required to load the processor will 
continue to be an issue.  The 
                        one thing the caller of the API can do is pre-warm the 
JIT by transforming 
                        a dummy document. For an example of this technique, see 
the init() method in the 
                        <link idref="XSLTProcessorAppletDoc"/>. During applet 
initialization, a dummy document
               is transformed, so the response time for performing "real" 
              transformations will be reasonable.<br/><br/></item> 
                   <label>Stylesheet Compilation</label>
                   <item>&xslt4j; now reads the stylesheet from the parser's 
SAX events (unless you 
                         give it a DOM, in which case it produces SAX events 
from the DOM), and builds
                         an internal tree structure. This structure processes 
the attributes, precompiles 
                         the XPath expressions, and does other things that can 
be done before it knows
                         about the input tree. The construction of large 
stylesheets is not as fast as 
                         we would like. We have been focusing on the 
transformation itself, and will 
                         have to concentrate on optimizing the stylesheet 
compilation down the road a bit.
                        <br/><br/></item>
                   <label>The DOM</label>
                   <item>DOM nodes are big.  Every node, including attribute 
nodes and whitespace nodes, 
                        have a next, previous, parent, first child, last child, 
ownerDocument, name, value, userData,
                        and a few internal flags. So building the input DOM can 
take a lot of memory 
                        management. We are working on ways to get around this 
when &xslt4j; builds 
                        the input tree, while still maintaining our DOM input 
architecture.<br/><br/></item>
                   <label>Union Sorting in Document Order</label>
                   <item>XSLT has to return nodes in document order. 
Determining document order from 
                         a pure DOM is difficult. We have developed a method to 
determine the order
                         that is pretty good, but it is not as fast as simply 
determining document order 
                         based on a integer.  Also, the collation method of 
combining two node lists 
                         is not as effecient as it needs to be, simply because 
we haven't had time to 
                         address it yet (the issues are more complex than was 
first apparent).  The net 
                         of this is that union expressions aren't scalable to 
large node sets.  For instance,
                         we have one user who has a large document with 3800 
elements right under the 
                         root node, and they apply a standard 
                         
select="*|@*|comment()|processing-instruction()|text()" expression to these 
                         nodes. The 3800 elements happen to have 3800 
whitespace nodes interleafed 
                         between them, and the union selection has to create a 
nodelist of 3800 elements 
                         and 3800 whitespace nodes, and combine them, testing 
for document order as 
                         it goes.  As a result, the processing takes forever.  
We're working on ways 
                         to fix this, but, the answer for this user was to not 
do the union selection 
                         at the top level (they didn't care about the 
whitespace nodes anyway).
                        <br/><br/></item>
                     <label>Selects in Large Documents</label>
                     <item>&xslt4j; currently builds no inverted indexes for 
the input document, and 
                           does not take advantage of DTD structures to 
optimize, and otherwise does 
                           no special magic to locate nodes other than try to 
implement efficient 
                           algorithms.  While inverted indexes and taking 
advantage of DTD structures 
                           are on our list for options, users should be aware 
that patterns such as 
                           '//foo' at the top of the tree can be expensive.
                        <br/><br/></item>
                     <label>xsl:number and xsl:sort</label>
                     <item>Both sorting and numbering are not as efficient as 
they could be.
                     <br/><br/></item>
        </gloss>
         </s2> 
         <s2 title="API"> 
                <p>Please see the <resource-ref idref="APIOverview"/> for
                  information about the &xslt4j; Application Programmer's 
Interface and the 
                  source code.</p> 
                <p>The <resource-ref idref="APIDocumentation"/> is in the 
<resource-ref idref="APIDocumentationDir"/>.</p> 
         </s2> 
      
         <s2 title="Tips">
        <ul>
                     <li>&xslt4j; is thread-safe with an instance per thread.  
You can not run 
             the same instance in multiple threads.</li>
                       <li>&xslt4j; contains a DTD for XSL when used for HTML. 
(Thanks be to
             Henrique M. Holschuh for this). This DTD should not be used for 
run-time
             production when performance is a concern, but is useful during the 
development
             stages. It is used in the readme XSL.<br/><br/></li> 
          <li>
          The rule for whitespace that can be stripped is as follows:<br/>
          If a text node contains whitespace followed by a non-whitespace 
          character followed by whitespace, none of the whitespace is ever 
          stripped.  If a text node is all whitespace, and does not have 
          siblings that are character data, it should be stripped.  A 
          CDATA section is interpreted as character data.<br/><br/>
          </li>
          <li>
          Be aware that select arguments for variables, or arguments passed 
through the 
          command line via the -PARAM switch, are expressions, not strings.  So 
to set 
          a variable to a string you need to do:<br/>
          <code>
          <![CDATA[<xsl:variable name="ExpressionTest" 
                                 select="'A test for xsl:constant and 
xsl:value-of'"/>]]>
          </code><br/>
          Notice the extra single quotes (').<br/><br/>
          </li>
          <li>
          If you're using an XSL stylesheet with a DTD, attributes typed as IDs 
will 
          have a problem when you try and put an attribute template into them.  
Just 
          something to watch out for.  We don't really have a solution for 
this, 
          except that you probably can't type literal result element attributes 
as 
          IDs for the XSL stylesheet.<br/><br/>
          </li>
        </ul>
      </s2>
  
                  <s2 title="Redirect Extension (Multiple Output Docs)"> 
        <p>&xslt4j; has a built in extension to let you produce multiple output 
documents 
        from a single stylesheet.  The extension is limited right now to 
producing 
        files, when the output method is "xml", "html", or "text". See 
<resource-ref
        idref="RedirectDoc"/> for details.</p>
      </s2> 
   
         <s2 title="Version Notes">
       &done-j;
       <anchor name="status"/>
       &status-j;
       &bugs-j;
     </s2>
   
         <s2 title="Contact Info and Bug Reports"> 
            <p>Contact information for &xslt4j;: <human-resource-ref 
idref="xalandev"/></p>
         </s2> 
   
         <s2 title="Glossary"> 
                <gloss> 
                  <label>XSL Instruction</label> 
                  <item>Any tag with an XSL namespace prefix.<br/><br/></item> 
                  <label>XSL Template Instruction</label> 
                  <item>Any tag with an XSL namespace prefix that occurs inside 
an
                         xsl:template element.<br/><br/></item> 
                  <label>Template Child</label> 
                  <item>Any node that is a child of an xsl:template 
element.<br/><br/></item> 
                  <label>Source Tree</label> 
                  <item>The tree input to the XSL process.<br/><br/></item> 
                  <label>Result Tree</label> 
                  <item>The tree that is output by the XSL 
process.<br/><br/></item> 
                  <label>Stylesheet Tree</label> 
                  <item>The stylesheet tree produced from the XSL 
file.<br/><br/></item> 
                  <label>Pattern List</label> 
                  <item>A parsed query or match pattern.<br/><br/></item> 
                </gloss> 
         </s2> 
  </s1> 
  
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/resources.xml
  
  Index: resources.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE resources [
    <!ENTITY apiResources SYSTEM "apiResources.xml">
    <!ELEMENT resources (resource|human-resource)+>
    <!ELEMENT resource EMPTY>
    <!ATTLIST resource          id CDATA #IMPLIED
                                title CDATA #IMPLIED
                                location CDATA #IMPLIED>
    <!ELEMENT human-resource EMPTY>
    <!ATTLIST human-resource    id CDATA #IMPLIED
                                name CDATA #IMPLIED
                                mailto CDATA #IMPLIED>
     ]>     
  <resources>
  &apiResources;
        
    <resource id="Xalan-current" title="Xalan-Java 0.19.2 XSLT Processor" 
location="http://xml.apache.org/xalan"/>
      <resource id="Xalan-dist" title="Xalan distribution" 
location="http://xml.apache.org/dist/"/>
      <resource id="LotusXSL-current" title="LotusXSL 0.19.2" 
location="http://www.alphaworks.ibm.com/tech/LotusXSL"/>   
        
   <resource id="ApacheLicense" title="The Apache Software License, Version 
1.1" location="http://xml.apache.org/dist/LICENSE.txt"/>
        
    <resource id="Readme" title="Xalan Repository Release Notes" 
location="http://www.apache.org/websrc/cvsweb.cgi/xml-xalan/README"/>
    
    <resource id="Installation" title="Installing Xalan" 
location="install.html"/>
     <resource id="CommandLineUtility" title="Xalan Command-Line Utility" 
location="commandline.html"/>
    
    <resource id="Demo" title="Xalan Browser Demo" 
location="http://xml.apache.org/xalan/XMLViewer.htm"/>
  
    
    <resource id="xsl-draft-used" title="W3C Recommendation 16 November 1999 
XSL Transformations (XSLT) Version 1.0" 
location="http://www.w3.org/TR/1999/REC-xslt-19991116"/>
    
    
    <resource id="xpath-draft-used" title="W3C Working Draft 9 August 1999 XML 
Path Language (XPath)" location="http://www.w3.org/1999/08/WD-xpath-19990813"/>
    
      
    <resource id="xsl-draft-latest" title="XSLT World Wide Web Consortium (W3C) 
XSL Transformations (XSLT) Specification" 
location="http://www.w3.org/TR/WD-xslt"/>
    <resource id="DOM-draft-august" title="August 18 Document Object Model 
(DOM) Level 1 Specification" 
location="http://www.w3.org/TR/1998/PR-DOM-Level-1-19980818/"/>
    <resource id="DOM-draft-october" title="October 1 Document Object Model 
(DOM) Level 1 Specification" 
location="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001"/>
    <resource id="DOM-draft-latest" title="Latest DOM" 
location="http://www.w3.org/TR/PR-DOM-Level-1 "/>
  
      
    <resource id="xml4j-used" title="Version 3.0.0EA3 of the XML Parser for 
Java" location="http://www.alphaworks.ibm.com/tech/xml4j"/>    
    <resource id="xerces-used" title="Version 1.0.1 of Xerces-Java" 
location="http://xml.apache.org/xerces-j/index.html"/>   
    
    <resource id="JRE1.2" title="Sun's JRE-1.2" 
location="http://java.sun.com/products/jdk/1.2/jre/index.html"/>
    <resource id="JDK1.2" title="Sun's JDK-1.2" 
location="http://java.sun.com/products/jdk/1.2/"/>
    <resource id="JDK1.1" title="Sun's JDK-1.1" 
location="http://java.sun.com/products/jdk/1.1/"/>
    <resource id="microsoftJava" title="Microsoft's Java VM" 
location="http://microsoft.com/java/"/>
    <resource id="extensionsDoc" title="Xalan Extension Mechanism Doc" 
location="ltsextensions.html"/>
    <resource id="demoPage" title="Demonstration Page" 
location="XMLViewer.htm"/>
    <resource id="ExamplesDir" title="'examples' directory" 
location="examples"/>
    <resource id="DominoExamplesDir" title="'domino' directory" 
location="examples/domino"/>
    <resource id="SamplesDir" title="'samples' directory" location="Samples"/>
    <resource id="ReadMeProductionDir" title="'readme_production' directory" 
location="../production"/>
    <resource id="SourceCodeDir" title="'xml-xalan/src' directory" 
location="../src"/>
    <resource id="run_sh" title="run.sh" location="run.sh"/>
    <resource id="xml4j16_test_sh" title="testSuite/xml4j1tx/test.sh" 
location="testSuite/xml4j1tx/test.sh"/>
    <resource id="xml4j2tx_test_sh" title="testSuite/xml4j2tx/test.sh" 
location="testSuite/xml4j2tx/test.sh"/>
    <resource id="xml4j2dom_test_sh" title="testSuite/xml4j2dom/test.sh" 
location="testSuite/xml4j2dom/test.sh"/>
    <resource id="TestSuiteDir" title="'testSuite' directory" 
location="testSuite"/>
    <resource id="TestWithXML4J14SuiteDir" title="'testSuite\xml4j1tx' 
directory" location="testSuite\xml4j1tx"/>
    <resource id="TestWithXML4J2DOMSuiteDir" title="'testSuite\xml4j2dom' 
directory" location="testSuite\xml4j2dom"/>
    <resource id="TestWithXML4J2TXSuiteDir" title="'testSuite\xml4j2tx' 
directory" location="testSuite\xml4j2tx"/>
    
    <resource id="APIOverview" title="API Overview" location="api.html"/>
          <resource id="APIDocumentationDir" title="'apidocs' directory" 
location="apidocs"/>
          <resource id="Introduction" title="Overview: XSL Transformer for 
Java" location="overview.html"/>
    <resource id="APIDocumentation" title="API Documentation" 
location="apidocs/index.html"/>   
    <resource id="ReadmeDocumentation" title="Release Notes" 
location="readme.html"/>
    <resource id="readme.xml" title="XML version of the Readme file" 
location="../docs/readme.xml"/>
    <human-resource id="xalandev" name="Xalan Development Mailing List" 
mailto="[email protected]"/>
    <human-resource id="sboag" name="Scott Boag" mailto="[EMAIL PROTECTED]"/>
     <human-resource id="dnbertoni" name="David N. Bertoni" 
mailto="[email protected]"/>
     <human-resource id="rweir" name="Robert Weir" mailto="[EMAIL PROTECTED]"/>
    <human-resource id="dleslie" name="Don Leslie" 
mailto="[email protected]"/>     
    <human-resource id="pdick" name="Paul Dick" mailto="[EMAIL PROTECTED]"/> 
    <human-resource id="dburson" name="Dean Burson" mailto="[EMAIL 
PROTECTED]"/> 
         <human-resource id="nmendelsohn" name="Noah Mendelsohn" mailto="[EMAIL 
PROTECTED]"/> 
                <human-resource id="sanjiva" name="Sanjiva Weerawarana" 
mailto="[EMAIL PROTECTED]"/> 
                  <human-resource id="dday" name="Don Day" mailto="[EMAIL 
PROTECTED]"/> 
  
  <resource id="TestLXSLDoc" title="TestLXSL Documentation" 
location="TestLXSL\index.html"/>    
  <resource id="SAX" title="SAX" 
location="http://www.megginson.com/SAX/sax.html"/>     
  <resource id="SAXDocumentHandler" title="org.xml.sax.DocumentHandler" 
location="http://www.megginson.com/SAX/javadoc/org.xml.sax.DocumentHandler.html#_top"/>
  <!--Javadoc methods-->
  <resource id="XSLTProcessorProcessDoc" title="XSLTProcessor process() method" 
location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#process(org.apache.xalan.xslt.XSLTInputSource,
 org.apache.xalan.xslt.XSLTInputSource, 
org.apache.xalan.xslt.XSLTResultTarget)"/>
  <resource id="XSLTProcessorProcessStylesheetDoc" title="processStylesheet 
method" 
location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#processStylesheet(java.lang.String)"/>
     
  <resource id="XSLTProcessorSetStylesheetParamDoc" title="setStylesheetParam 
method" 
location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#setStylesheetParam(java.lang.String,
 java.lang.String)"/>
  <resource id="XSLTProcessorCreateXString" title="createXString method" 
location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXString(java.lang.String)"/>
  <resource id="XSLTProcessorCreateXObject" title="createXObject method" 
location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXObject(java.lang.Object)"/>
  <resource id="XSLTProcessorCreateXNumber" title="createXNumber method" 
location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXNumber(double)"/>
  <resource id="XSLTProcessorCreateXBoolean" title="createXBoolean method" 
location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXBoolean(boolean)"/>
  <resource id="XSLTProcessorCreateXNodeSet" title="createXNodeSet(NodeList nl) 
method" 
location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXNodeSet(org.w3c.dom.NodeList)"/>
  <resource id="XSLTProcessorCreateXNodeSet2" title="createXNodeSet(Node n) 
method" 
location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXNodeSet(org.w3c.dom.Node)"/>
  <resource id="XSLTProcessorCreateXNull" title="createXNull method" 
location="apidocs/org/apache/xalan/xslt/XSLTProcessor.html#createXNull()"/>
  <resource id="XSLTProcessorApplettransformtoHTMLstringstringDoc" 
title="XSLTProcessorApplet transformHTML() method" 
location="apidocs/org/apache/xalan/xslt/client/XSLTProcessorApplet.html#transformToHtml(java.lang.String,
 java.lang.String)"/>
  <resource id="XSLTProcessorAppletsetDocumentURLDoc" 
title="XSLTProcessorApplet setDocumentURL() method" 
location="apidocs/org/apache/xalan/xslt/client/XSLTProcessorApplet.html#setDocumentURL(java.lang.String)"/>
  <resource id="XSLTProcessorAppletsetStyleURLDoc" title="XSLTProcessorApplet 
setStyleURL() method" 
location="apidocs/org/apache/xalan/xslt/client/XSLTProcessorApplet.html#setStyleURL(java.lang.String)"/>
  
  </resources>
  
  
  1.1                  xml-xalan/xdocs/sources/xalan/samples.xml
  
  Index: samples.xml
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!--
   * Copyright (c) 1999 Lotus Development Corporation, Inc. All Rights Reserved.
   *    This software is provided without a warranty of any kind.
   *
  -->
  
  <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
  <s1 title="Samples">
         
          <s2 title="Samples to help you get started">
      <p>Each of the subdirectories in the &xslt4j; samples directory contains 
one or more sample applications that
       you can run, examine, modify, and rebuild.</p> 
      <p>You can use the make file to build the samples. To build all the 
samples at once, run the make file from the samples
      directory:</p> 
      <p><code>make -samples</code></p>
      <p>To build and/or run one of the samples, run the make file in the 
pertinent subdirectory:</p> 
      <p><code>make -test</code></p>
      <p>For more information about running the make files, see the 
instructions for <link idref="ltsinstall" 
      anchor="rebuilding&xslt4j;">rebuilding &xslt4j;</link>.</p>
      <p>The make file sets the classpath and uses javac to compile the java 
files. In place of the make files, you can
      set the classpath yourself and run javac: be sure to include &xslt4j;.jar 
(or xalan.jar), xerces.jar, and the samples
      subdirectory in the classpath. No build is required for the sample 
applet.</p>
      <p>The make file in each sample subdirectory (except applet and server, 
servlet) also runs the sample application. 
      You can run most of these samples with</p> 
      <p><code>java <ref>classname</ref></code></p>
      <p>where <ref>classname</ref> is the classname. The samples in params and 
ValidateXPath take an argument in addition to classname. The samples in 
extensions use the <link idref="commandline">command-line utility</link>, so 
they take arguments for the XML source file and the XSL stylesheet.</p>
        </s2>
      <s2 title="simple">
      <p>What it does: The SimpleTransform class uses the foo.xsl stylesheet to 
transform foo.xml, and prints the
       output to System.out.</p>
      <p>You can run it from the command line with</p>
      <p><code>java SimpleTransform</code></p>
      </s2>
      <s2 title="dom1">
      <p>What it does: The TransformToDom class uses the foo.xsl stylesheet to 
transform foo.xml, produces an output
       DOM, and traverses the DOM, printing the traversal to System.out. In 
contrast to "simple," "dom1" illustrates
        the procedure gor creating an output DOM which is then available for 
further processing.</p>
     <p>You can run it from the command line with</p>
      <p><code>java SimpleTransform</code></p>
      </s2>
      <s2 title="params">
        <p>What it does: The UseStyleSheetParam class uses foo.xsl and a 
stylesheet parameter to transform foo.xml,
         and prints the output to System.out. The stylesheet parameter appears 
as a text node in the output.</p>
      <p>Run this sample from the command line with</p> 
      <p><code>java UseStylesheetParam <ref>param</ref></code></p>
      <p>where <ref>param</ref> is the stylesheet parameter.</p>  
      </s2>
      <s2 title="ValidateXPath">
      <p>What it does: The ValidateXPath class validates and displays a textual 
diagram of an XPath expression.</p>
      <p>Run this sample from the command line with</p> 
      <p><code>java ValidateXPath <ref>XPathExpression</ref></code></p>
      <p>where <ref>XPathExpression</ref> is an XPath expression, such as 
"aa/bb//xx".</p>  
      </s2>
      <s2 title="pipe">
      <p>What it does: The Pipe class uses the output of the first 
transformation as input to a second
       transformation.</p>
      <p>Run it from the command line with</p> 
      <p><code>java Pipe</code></p>
      </s2>
      <s2 title="extensions".
      <p>The extensions subdirectory contains four samples with &xslt4j; 
extensions. Two of the samples use
       extensions implemented in JavaScript, and two of the samples use 
extensions implemented in Java. All of
       the samples are documented at length in <link 
idref="extensions">Extensions</link>.</p>
       <p>To run these examples, you must place bsf.jar, bsfengines.jar 
(distributed with &xslt4j;, and js.jar
       (availabe from http://www.mozilla.org/rhino) on the class path. You do 
not need js.jar
       on the class path for the samples that use Java extensions. </p>
       <p>You can use java.org.apache.xalan.xslt.Process, the &xsl4j; 
command-line utility, to run these samples from
        the command line. The command line must include an -in argument with 
the XML source and an -xsl argument with
        the XSL stylesheet. If you want the output to be printed to a file, 
rather than to the screen, add an -out
        argument for the output file.</p>
        <p>Run these samples from the command line with</p> 
  
        <p><code>java org.apache.xslt.xalan.Process -in 1basicJscript</code> 
          <br/>&nbsp;&nbsp;<code>-xsl 1basicJscript</code></p>
        <p><code>java org.apache.xslt.xalan.Process -in 
2java-namespace.xml</code> 
          <br/>&nbsp;&nbsp;<code>-xsl 2java-namespace.xsl</code></p>
        <p><code> java org.apache.xslt.xalan.Process -in 
3numlistJava.xml</code> 
          <br/>&nbsp;&nbsp;<code>-xsl 3numlistJava.xsl</code></p>
        <p><code> java org.apache.xslt.xalan.Process -in 4numlistJcript.xml 
</code>
          <br/>&nbsp;&nbsp;<code>-xsl 4numlistJscript.xsl</code></p>
      </s2>
      <s2 title="applet">
      <p>The applet uses a stylesheet to transform an XML document into HTML. 
It displays the XML document, the
       stylesheet, and the HTML output.</p>
      <p>How to run it: See <jump href="samples/applet/readme.html">sample 
applet readme</jump>.</p>  
      </s2>
      <s2 title="server and servlet">
      <p>What it does: The client (which you must set up) specifies an XML 
document and a stylesheet. The servlet
       performs the transformation and returns the output to the client. You 
can use media.properties to specify 
      which stylesheet is to be used depending on the client browser/device.</p>
      <p>How to run it:</p>
      <ol>
        <li>Configure your application server (Websphere or JServ, for 
example)so it can find the classes (in
         xalansamples.jar) as well as the stylesheets and properties file in 
the servlet subdirectory.</li>
        <li>Set up an HTML client to call DefaultApplyXSL with arguments as 
illustrated below.</li>
      </ol>
      <p>Examples:</p>
  <gloss>
  
<label>http://localhost/servlet/DefaultApplyXSL?URL=/data.xml&amp;xslURL=/style.xsl</label>
  <item>...applies the style.xsl stylesheet to the data.xml data.  Both files 
are
  served from the Web server's HTTP XSLTInputSource root.</item>
  
<label>http://localhost/servlet/DefaultApplyXSL?URL=/data.xml&amp;xslURL=/style.xsl&amp;debug=true</label>
  <item>...ensures that XML and XSL processor messages are returned in the 
event of problems
  applying style.xsl to data.xml</item>
  
<label>http://localhost/servlet/DefaultApplyXSL/data.xml?xslURL=/style.xsl</label>
  <item>...applies the style.xsl stylesheet to the data.xml data, just like the 
first example.
  This is an alternative way of specifying the XML XSLTInputSource by utilizing 
the HTTP request's path
  information.</item>
  <label>http://localhost/servlet/DefaultApplyXSL/data.xml</label>
  <item>...examines data.xml for an <jump 
href="http://www.w3.org/TR/1999/PR-xml-stylesheet-19990114";>associated</jump>
  XSL stylesheet. If multiple XSLs are associated with the data, the stylesheet 
whose media
  attribute maps to your browser type will be chosen.  If no mapping is
  successful, the primary associated stylesheet is used.</item>
  <label>http://localhost/servlet/data.xml</label>
  <item>...provides the same function as the previous example, but this example 
assumes
  that /servlet/data.xml has been mapped to be executed by this servlet.  The 
servlet engine may be configured
  to map all or some *.xml files to this servlet through the use of servlet 
aliases or filters.</item>
  
<label>http://localhost/servlet/data.xml?catalog=http://www.xml.org/dtds/oag.xml</label>
  <item>...supplements any servlet-configured XCatalog
  with a catalog of supply chain DTDs residing at the XML.ORG DTD 
repository.</item>
  </gloss>
  <p>For more information, see the comments in DefaultApplyXSL.java.</p>
      </s2> 
  </s1>
  
  
  
  1.1                  xml-xalan/xdocs/style/loaderjdoc.xml
  
  Index: loaderjdoc.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <loader>
    <processor name="xslt">
      <parameter name="stylesheet" 
value="sbk:/style/stylesheets/packages2project.xsl"/>
    </processor>
  </loader>
  
  
  
  1.1                  xml-xalan/xdocs/style/dtd/javadocpackages.dtd
  
  Index: javadocpackages.dtd
  ===================================================================
  <?xml encoding='US-ASCII'?>
  
  <!-- JAVADOC PACKAGES DTD -->
  
  <!-- import the external source-specific dtd -->
  <!ENTITY % externalEntity SYSTEM "sbk:/sources/entities.ent">
  %externalEntity;
  
  <!ELEMENT javadocPackages (resources?| home| package)+>
  <!ATTLIST javadocPackages source  CDATA #REQUIRED
                            target  CDATA #IMPLIED>
  
  <!ELEMENT resources EMPTY>
  <!ATTLIST resources source CDATA #REQUIRED>
  
  <!ELEMENT home EMPTY>
  <!ATTLIST home           source  CDATA #REQUIRED
                           target  CDATA #REQUIRED>
  
  <!ELEMENT package EMPTY>
  <!ATTLIST package         source  CDATA #REQUIRED
                            target  CDATA #REQUIRED>
  
  
  
  1.1                  xml-xalan/xdocs/style/stylesheets/package2html.xsl
  
  Index: package2html.xsl
  ===================================================================
  <?xml version="1.0" standalone='no'?>
  
  <!--
   * 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 [EMAIL PROTECTED]
   *
   * 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/>.
   -->
  
  <!-- Formatting instructions for XSL Readme page -->
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  
    <xsl:param name="stylebook.project"/>
    
    <!-- Root template - start processing here -->
    <xsl:template match="/">
      <HTML>
        <HEAD>
        </HEAD>
        <BODY>
                    <xsl:apply-templates/>
        </BODY>
      </HTML>
    </xsl:template>
  
    <xsl:template match="s1">
      <xsl:apply-templates select="s2"/>
    </xsl:template>
  
    <xsl:template match="s3|s4|s5">
      <xsl:apply-templates/>
    </xsl:template>
   
     
    <!-- ================================================================= -->
    <!-- Match P, NOTE, UL, OL... (blocks.ent)                             -->
    <!-- ================================================================= -->
    <xsl:template match="p">
      <p><xsl:apply-templates/></p>
    </xsl:template>
  
    <xsl:template match="note">
      <table border="0" width="100%">
        <tr>
          <td width="20">&#160;</td>
          <td bgcolor="#88aacc">
            <font size="-1"><i>NOTE: <xsl:apply-templates/></i></font>
          </td>
          <td width="20">&#160;</td>
        </tr>
      </table>
    </xsl:template>
    
    <xsl:template match="ul">
      <ul><xsl:apply-templates/></ul>
    </xsl:template>
  
    <xsl:template match="ol">
      <ol><xsl:apply-templates/></ol>
    </xsl:template>
    
    <xsl:template match="gloss">
      <dl><xsl:apply-templates/></dl>
    </xsl:template>
     <!-- <term> contains a single-word, multi-word or symbolic 
         designation which is regarded as a technical term. --> 
    <xsl:template match="term">
      <dfn><xsl:apply-templates/></dfn>
    </xsl:template>
  
    <xsl:template match="label" priority="1">
      <dt><xsl:apply-templates/></dt>
    </xsl:template>
  
    <xsl:template match="item" priority="2">
      <dd>
        <xsl:apply-templates/>
      </dd>
    </xsl:template>
  
    <xsl:template match="table">
      <p align="center"><table border="0"><xsl:apply-templates/></table></p>
    </xsl:template>
  
    <xsl:template match="source">
      <table border="0" width="100%">
        <tr>
          <td width="20">&#160;</td>
          <td bgcolor="#88aacc"><pre><xsl:apply-templates/></pre></td>
          <td width="20">&#160;</td>
        </tr>
      </table>
    </xsl:template>
  
    <xsl:template match="li">
      <li><xsl:apply-templates/></li>
    </xsl:template>
  
    <xsl:template match="tr">
      <tr><xsl:apply-templates/></tr>
    </xsl:template>
  
    <xsl:template match="th">
      <td bgcolor="#006699" align="center">
        <font color="#ffffff"><b><xsl:apply-templates/></b></font>
      </td>
    </xsl:template>
  
    <xsl:template match="td">
      <td bgcolor="#88aacc"><xsl:apply-templates/>&#160;</td>
    </xsl:template>
  
    <xsl:template match="tn">
      <td>&#160;</td>
    </xsl:template>
  
    <!-- ================================================================= -->
    <!-- Match LINK, ANCHOR or JUMP and IMG (links.ent)                    -->
    <!-- ================================================================= -->
    <xsl:template match="em">
      <b><xsl:apply-templates/></b>
    </xsl:template>
  
    <xsl:template match="ref">
      <i><xsl:apply-templates/></i>
    </xsl:template>
  
    <xsl:template match="code">
      <code><xsl:apply-templates/></code>
    </xsl:template>
  
    <xsl:template match="br">
      <br/>
    </xsl:template>
  
  
    <!-- ================================================================= -->
    <!-- Match LINK, ANCHOR or JUMP and IMG (links.ent)                    -->
    <!-- ================================================================= -->
    <xsl:template match="link">
      <xsl:if test="string-length(@anchor)=0">
        <xsl:if test="string-length(@idref)=0">
          <xsl:apply-templates/>
        </xsl:if>
        <xsl:if test="string-length(@idref)>0">
          <a href="[EMAIL PROTECTED]"><xsl:apply-templates/></a>
        </xsl:if>
      </xsl:if>
  
      <xsl:if test="string-length(@anchor)>0">
        <xsl:if test="string-length(@idref)=0">
          <a href="[EMAIL PROTECTED]"><xsl:apply-templates/></a>
        </xsl:if>
        <xsl:if test="string-length(@idref)>0">
          <a href="[EMAIL PROTECTED]@anchor}"><xsl:apply-templates/></a>
        </xsl:if>
      </xsl:if>
    </xsl:template>
  
    <xsl:template match="anchor">
      <a name="[EMAIL PROTECTED]"><xsl:comment>anchor</xsl:comment></a>
    </xsl:template>
  
    <xsl:template match="jump">
      <a href="[EMAIL PROTECTED]"><xsl:apply-templates/></a>
    </xsl:template>
  
    <xsl:template match="img">
      <img src="images/[EMAIL PROTECTED]" border="0" vspace="4" hspace="4" 
align="right"/>
    </xsl:template>
  
    <xsl:template match="resource-ref">
      <xsl:variable name="resourceFile" 
            
select="document($stylebook.project)/javadocPackages/resources/@source"/>
      <xsl:variable name="xref" select="@idref"/>
      <xsl:variable name="href"
            select="document($resourceFile)/resources/[EMAIL 
PROTECTED]/@location"/>
      <xsl:variable name="label"
            select="document($resourceFile)/resources/[EMAIL 
PROTECTED]/@title"/>
      <A href="{$href}" target="_top"><xsl:value-of select="$label"/></A>
    </xsl:template>
  
    <xsl:template match="human-resource-ref">
      <xsl:variable name="resourceFile" 
            
select="document($stylebook.project)/javadocPackages/resources/@source"/>  
      <xsl:variable name="ref"  select="@idref"/>
      <xsl:variable name="mailto"
            select="document($resourceFile)/resources/[EMAIL 
PROTECTED]/@mailto"/>
     <xsl:variable name="name"
            select="document($resourceFile)/resources/[EMAIL 
PROTECTED]/@name"/>                          
      <A href="mailto:{$mailto}";><xsl:value-of select="$name"/></A>
    </xsl:template>
  
  </xsl:stylesheet>
  
  
  1.1                  xml-xalan/xdocs/style/stylesheets/packages2project.xsl
  
  Index: packages2project.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0";>
    <xsl:template match="javadocPackages">
      <project>
        <xsl:apply-templates/>      
      </project>
    </xsl:template>
  
  <!-- ********************************************************************** 
-->
  <!-- CREATE THE TARGET HTML -->
  <!-- ********************************************************************** 
-->
  
    <xsl:template match="home|package">
      <create source="{/javadocPackages/@source}/[EMAIL PROTECTED]" 
target="{/javadocPackages/@target}/[EMAIL PROTECTED]" producer="parser" 
printer="html">
        <processor name="xslt">
          <parameter name="stylesheet" 
value="sbk:/style/stylesheets/package2html.xsl"/>
        </processor>
      </create>
    </xsl:template>
  
  </xsl:stylesheet>
  
  

Reply via email to