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>, 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 <deadline numdays="3"/> (in the
XML source) and <timelapse multiplier="2"/> (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><p>We have received your enquiry and will respond by April 29, 2000
12:07:16 PM EST.</p></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><?xml version="1.0"?>
<!--Namespaces are global if you set them in the stylesheet element-->
<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">
<!--The component and its script are in the lxslt namespace and define
the
implementation of the extension.-->
<lxslt:component prefix="my-ext" elements="timelapse"
functions="getdate">
<lxslt:script lang="javascript">
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();
}
</lxslt:script>
</lxslt:component>
<xsl:template match="deadline">
<p><my-ext:timelapse multiplier="2"/>We have logged your
enquiry and will
respond by <xsl:value-of
select="my-ext:getdate(string(@numdays))"/>.</p>
</xsl:template>
</xsl:stylesheet>
</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><xslt:component prefix="<ref>prefix</ref>" </code><br/>
<code> functions="<ref>func-1 func-2
...func-n</ref>"</code><br/>
<code> elements="<ref>elem-1 elem-2
...elem-n</ref>"></code><br/>
<code> <!--See lxslt:script below--></code><br/>
<code></xslt:component></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><lxslt:script lang="javaclass"
src="<ref>[class:]FQCN</ref>"/></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><lxslt:script lang="javaclass"</code><br/>
<code> src="java.util.Hashtable"/></code></p>
<p>If the extension is implemented in JavaScript:</p>
<p><code><lxslt:script lang="javascript" ></code><br/>
<code> <!--The implementation script--></code><br/>
<code></lxslt:script></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><!ELEMENT lxslt:component (lxslt:script)>
<!ATTLIST lxslt:component
prefix CDATA #IMPLIED
namespace-uri CDATA #IMPLIED
elements NMTOKENS #REQUIRED
functions NMTOKENS #REQUIRED>
<!ELEMENT lxslt:script EMPTY)>
<!ATTLIST lxslt:script
lang CDATA #REQUIRED
src CDATA #IMPLIED></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> 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> (org.apache.xalan.xslt.XSLProcessorContext,
</code><br/>
<code> 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:
<open>, <write>, and <close>. If you use the <write>
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 <write> in conjunction with the <open> and <close>
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 <foo> elements and their
children to another file. The following example illustrates the basic structure
of the XML source:</p>
<source><?xml version="1.0"?>
<doc>
<foo file="foo.out">
Testing Redirect extension:
<bar>A foo subelement text node</bar>
</foo>
<main>
Everything else
</main>
</doc></source>
<p>This stylesheet redirects part of the output to a secondary file:</p>
<source>
<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">
<xsl:template match="/">
<standard-out>
Standard output:
<xsl:apply-templates/>
</standard-out>
</xsl:template>
<xsl:template match="main">
<main>
<xsl:apply-templates/>
</main>
</xsl:template>
<xsl:template match="/doc/foo">
<redirect:write select="@file">
<foo-out>
<xsl:apply-templates/>
</foo-out>
</redirect:write>
</xsl:template>
<xsl:template match="bar">
<foobar-out>
<xsl:apply-templates/>
</foobar-out>
</xsl:template>
</xsl:stylesheet></source>
<p>The standard output is:</p>
<source><?xml version="1.0" encoding="UTF-8"?>
<standard-out>
Standard output:
<main>
Everything else.
</main>
<standard-out></source>
<p>The output redirected to foo.out is:</p>
<source><?xml version="1.0" encoding="UTF-8"?>
<foo-out>
Testing Redirect extension:
<foobar-out>foo subelement text node</foobar-out>
</foo-out></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> 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> 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> 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><!--Process the current node--></code><br/>
<code>node-ext:MyExtensions.ProcessNodes.doSomething(.)</code></p>
<p><code><!--Process all nodes in current context--></code><br/>
<code>node-ext:MyExtensions.ProcessNodes.doSomething(*)</code></p>
<p><code><!-- Process all nodes --></code><br/>
<code>node-ext:MyExtensions.ProcessNodes.doSomething(/*)</code></p>
<p><code><!--Process the foo/baz nodes in current context --></code><br/>
<code>node-ext:MyExtensions.ProcessNodes.doSomething(foo/baz)</code></p>
<p><code><!--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><date format="EEEE, MMM dd, yyyy" year="2000" month="4"
day="27"/></code> into <p>Date: Thursday, April 27,
2000.</p>.</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><?xml version="1.0"?>
<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">
<!--Other templates for transforming the rest of the XML source
documents-->
<xsl:template match="date">
<xsl:variable name="year" select="string(./@year)"/>
<xsl:variable name="month" select="string(./@month)"/>
<xsl:variable name="day" select="string(./@day)"/>
<xsl:variable name="format" select="string(./@format)"/>
<xsl:variable name="formatter"
select="java:java.text.SimpleDateFormat.new($format)"/>
<xsl:variable name="date"
select="java:IntDate.getDate($year, $month, $day)"/>
<p>Date: <xsl:value-of select="java:format($formatter,
$date)"/></p>
</xsl:template>
</xsl:stylesheet>
</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><?xml version="1.0"?>
<doc>
<name first="David" last="Marston"/>
<name first="David" last="Bertoni"/>
<name first="Donald" last="Leslie"/>
<name first="Emily" last="Farmer"/>
<name first="Jack" last="Donohue"/>
<name first="Myriam" last="Midy"/>
<name first="Paul" last="Dick"/>
<name first="Robert" last="Weir"/>
<name first="Scott" last="Boag"/>
<name first="Shane" last="Curcuru"/>
</doc></source>
<p>The stylesheet:</p>
<source><?xml version="1.0"?>
<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">
<lxslt:component prefix="counter"
elements="init incr" functions="read">
<lxslt:script lang="javaclass" src="MyCounter"/>
</lxslt:component>
<xsl:template match="/">
<HTML>
<H1>Names in alphabetical order</H1>
<counter:init name="index" value="1"/>
<xsl:for-each select="doc/name">
<xsl:sort select="@last"/>
<xsl:sort select="@first"/>
<p>
<xsl:text>[</xsl:text>
<xsl:value-of select="counter:read('index')"/>
<xsl:text>]. </xsl:text>
<xsl:value-of select="@last"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="@first"/>
</p>
<counter:incr name="index"/>
</xsl:for-each>
</HTML>
</xsl:template>
</xsl:stylesheet>
</source>
<p>Transformation output:</p>
<source><HTML>
<H1>Names in alphabetical order</H1>
<p>[1]. Bertoni, David</p>
<p>[2]. Boag, Scott</p>
<p>[3]. Curcuru, Shane</p>
<p>[4]. Dick, Paul</p>
<p>[5]. Donohue, Jack</p>
<p>[6]. Farmer, Emily</p>
<p>[7]. Leslie, Donald</p>
<p>[8]. Marston, David</p>
<p>[9]. Midy, Myriam</p>
<p>[10]. Weir, Robert</p>
</HTML></source>
</s3><anchor name="ex-javascript"/>
<s3 title="JavaScript implementation">
<p></p>
<source><?xml version="1.0"?>
<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">
<lxslt:component prefix="counter"
elements="init incr" functions="read">
<lxslt:script lang="javascript">
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;
}
</lxslt:script>
</lxslt:component>
<xsl:template match="/">
<HTML>
<H1>Names in alphatebical order</H1>
<counter:init name="index" value="1"/>
<xsl:for-each select="doc/name">
<xsl:sort select="@last"/>
<xsl:sort select="@first"/>
<p>
<xsl:text>[</xsl:text>
<xsl:value-of select="counter:read('index')"/>
<xsl:text>]. </xsl:text>
<xsl:value-of select="@last"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="@first"/>
</p>
<counter:incr name="index"/>
</xsl:for-each>
</HTML>
</xsl:template>
</xsl:stylesheet>
</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>
<?xml version="1.0"?>
<doc>Hello</doc>
</source>
<p>foo.xsl:</p>
<source>
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="doc">
<out><xsl:value-of select="."/></out>
</xsl:template>
</xsl:stylesheet></source>
<p>foo.out:</p><source>
<out>Hello</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/> <code>-xsl 1basicJscript</code></p>
<p><code>java org.apache.xslt.xalan.Process -in
2java-namespace.xml</code>
<br/> <code>-xsl 2java-namespace.xsl</code></p>
<p><code> java org.apache.xslt.xalan.Process -in
3numlistJava.xml</code>
<br/> <code>-xsl 3numlistJava.xsl</code></p>
<p><code> java org.apache.xslt.xalan.Process -in 4numlistJcript.xml
</code>
<br/> <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&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&xslURL=/style.xsl&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"> </td>
<td bgcolor="#88aacc">
<font size="-1"><i>NOTE: <xsl:apply-templates/></i></font>
</td>
<td width="20"> </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"> </td>
<td bgcolor="#88aacc"><pre><xsl:apply-templates/></pre></td>
<td width="20"> </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/> </td>
</xsl:template>
<xsl:template match="tn">
<td> </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>