org.exolab.adaptx.xslt

Class XSLTProcessor

Implemented Interfaces:
ErrorObserver, MessageObserver

public class XSLTProcessor
extends ErrorObserverAdapter
implements MessageObserver

This class represents an XSLT Processor that implements the W3C XSLT 1.0 Recommendation.
This application is a work in progress.
see the XSLT WD 1.0 (http://www.w3.org/TR/1999/WD-xslt-19990421.html)

Version:
$Revision: 1.1.1.1 $ $Date: 2003/03/01 07:39:53 $

Author:
Keith Visco

Field Summary

static String
ERR_OUTPUT_FLAG
The flag directive for the error log file -- added by Mohan Embar
static String
HELP_FLAG
The flag directive for the help screen
static String
INDENT_SIZE
Indent Size property name
static String
INPUT_FLAG
The flag directive for the xml input file
static String
OUTPUT_FLAG
The flag directive for the result tree output file
static String
STYLESHEET_FLAG
The flag directive for the stylesheet to use
static String
VALIDATE_FLAG
The flag directive for the turning on validation
static String
VERSION_FLAG
The flag directive for displaying the version

Fields inherited from interface org.exolab.adaptx.util.ErrorObserver

FATAL, NORMAL, WARNING

Constructor Summary

XSLTProcessor()
Creates a new XSLTProcessor

Method Summary

void
addErrorObserver(ErrorObserver observer)
Adds the given ErrorObserver to the list of ErrorObservers for this processor
void
addFunctionResolver(FunctionResolver fnResolver)
Adds the given FunctionResolver used for resovling extension functions.
void
addMessageObserver(MessageObserver msgObserver)
Adds the given MessageObserver to this processors list of MessageObservers
static URILocation
createURILocation(Reader reader, String filename)
Creates a URILocation for the given Reader and Filename.
static String
getAppInfo()
Retrieves the name and version of this application
String
getParameter(String name)
Returns the value of the top-level parameter associated with the given name.
Enumeration
getParameterNames()
Returns an enumeration of all top-level parameter names.
String
getProperty(String property)
Returns the property value associated with the given String
static void
main(args[] )
Runs this XSLProcessor based on the given arguments.
Document
process(Document xmlDocument, Document xslDocument)
Processes the specified xml (DOM) Document, using the specified (DOM) xsl stylesheet.
void
process(Document xmlDocument, Document xslDocument, Writer out)
Processes the specified xml (DOM) Document, using the specified xsl (DOM) Document and the default ResultHandler.
void
process(Document xmlDocument, Document xslDocument, ResultHandler handler)
Processes the specified xml (DOM) Document, using the specified xsl (DOM) Document and the desired ResultHandler.
Document
process(Document xmlDocument, XSLTStylesheet stylesheet)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet.
void
process(Document xmlDocument, XSLTStylesheet stylesheet, Writer out)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet, and the default ResultHandler.
void
process(Document xmlDocument, XSLTStylesheet stylesheet, ResultHandler handler)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet, and the desired ResultHandler.
Document
process(String xmlFilename)
Processes the specified xml file, using the stylesheet specified by the xml stylesheet PI, and returns the resulting document.
Document
process(String xmlFilename, String xslFilename)
Processes the specified xml file, using the specified xsl file.
void
process(String xmlFilename, String xslFilename, Writer out)
Processes the specified xml file, using the specified xsl file, and the default ResultHandler.
void
process(String xmlFilename, String xslFilename, ResultHandler handler)
Processes the specified xml file, using the specified xsl file, and the desired ResultHandler.
void
process(String xmlFilename, Writer out)
Processes the specified xml file, using the stylesheet specified by the xml stylesheet PI, and the default ResultHandler.
void
process(String xmlFilename, XSLTStylesheet stylesheet, Writer out)
Processes the specified xml file, using the specified xsl file, and the default ResultHandler.
void
process(String xmlFilename, XSLTStylesheet stylesheet, ResultHandler handler)
Processes the specified xml file, using the specified xsl file, and the desired ResultHandler.
Document
process(URILocation xmlLocation, URILocation xslLocation)
Processes the specified xml InputStream, using the specified xsl InputStream.
void
process(URILocation xmlLocation, URILocation xslLocation, ResultHandler handler)
Processes the specified xml InputStream, using the specified xsl InputStream, and the desired ResultHandler.
XPathNode
process(XPathNode source, XSLTStylesheet stylesheet)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet.
void
process(XPathNode source, XSLTStylesheet stylesheet, Writer out)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet, and the default ResultHandler.
void
process(XPathNode source, XSLTStylesheet stylesheet, ResultHandler handler)
Processes the specified xml source node (XPathNode), using the specified xsl stylesheet, and the desired ResultHandler.
void
receiveMessage(String message)
Recieves a message
void
removeAllParameters()
Removes all the top-level parameter bindings
void
removeFunctionResolver(FunctionResolver fnResolver)
Removes the given FunctionResolver from the list of extension function resolvers.
MessageObserver
removeMessageObserver(MessageObserver msgObserver)
Removes the given MessageObserver from this processors list of MessageObservers
void
removeParameter(String name)
Removes the top-level parameter binding with the given name
void
setDOMParser(DOMParser domParser)
Sets the DOMParser that will be used to read in XML Documents
void
setDocumentBase(String documentBase)
Sets the document base for resolving relative URLs
void
setParameter(String name, String value)
Sets a parameter which may be accessed using a top-level parameter in the XSLT Stylesheet.
void
setProperty(String property, String value)
Sets the property value associated with the given String.
void
setURIResolver(URIResolver resolver)
Sets the URIResolver for resolving all URIs.
void
setValidation(boolean validate)
Sets whether or not to validate when reading an XML document.

Methods inherited from class org.exolab.adaptx.util.ErrorObserverAdapter

addErrorObserver, receiveError, receiveError, receiveError, receiveError, receiveError, receiveError, removeAllErrorObservers, removeErrorObserver

Field Details

ERR_OUTPUT_FLAG

public static final String ERR_OUTPUT_FLAG
The flag directive for the error log file -- added by Mohan Embar


HELP_FLAG

public static final String HELP_FLAG
The flag directive for the help screen


INDENT_SIZE

public static final String INDENT_SIZE
Indent Size property name


INPUT_FLAG

public static final String INPUT_FLAG
The flag directive for the xml input file


OUTPUT_FLAG

public static final String OUTPUT_FLAG
The flag directive for the result tree output file


STYLESHEET_FLAG

public static final String STYLESHEET_FLAG
The flag directive for the stylesheet to use


VALIDATE_FLAG

public static final String VALIDATE_FLAG
The flag directive for the turning on validation


VERSION_FLAG

public static final String VERSION_FLAG
The flag directive for displaying the version

Constructor Details

XSLTProcessor

public XSLTProcessor()
Creates a new XSLTProcessor

Method Details

addErrorObserver

public void addErrorObserver(ErrorObserver observer)
Adds the given ErrorObserver to the list of ErrorObservers for this processor
Overrides:
addErrorObserver in interface ErrorObserverAdapter

Parameters:
observer - the ErrorObserver to add


addFunctionResolver

public void addFunctionResolver(FunctionResolver fnResolver)
Adds the given FunctionResolver used for resovling extension functions.

Parameters:
fnResolver - the FunctionResolver to add

See Also:
org.exolab.adaptx.xpath.FunctionResolver


addMessageObserver

public void addMessageObserver(MessageObserver msgObserver)
Adds the given MessageObserver to this processors list of MessageObservers

Parameters:
msgObserver - the MessageObserver to add to this processors list of MessageObservers


createURILocation

public static URILocation createURILocation(Reader reader,
                                            String filename)
Creates a URILocation for the given Reader and Filename. Filename must not be null.

Parameters:
reader - the Reader to create the URILocation for

Returns:
the new URILocation


getAppInfo

public static String getAppInfo()
Retrieves the name and version of this application


getParameter

public String getParameter(String name)
Returns the value of the top-level parameter associated with the given name.

Parameters:
name - the name of the top-level parameter whose value should be returned.

Returns:
the parameter value

See Also:
getParameterNames, removeParameter, removeAllParameters, setParameter


getParameterNames

public Enumeration getParameterNames()
Returns an enumeration of all top-level parameter names.

Returns:
an enumeration of all top-level parameter names.

See Also:
getParameter, removeParameter, removeAllParameters, setParameter


getProperty

public String getProperty(String property)
Returns the property value associated with the given String

Returns:
the property value associated with the given String
See xslp.properties for for a list of properties


main

public static void main(args[] )
Runs this XSLProcessor based on the given arguments. This method can be called from another Class however, one of the process methods should be more appropriate

Parameters:


process

public Document process(Document xmlDocument,
                        Document xslDocument)
Processes the specified xml (DOM) Document, using the specified (DOM) xsl stylesheet.

Parameters:
xmlDocument - the XML Document to process
xslDocument - the XSL Document to use for processing.

Returns:
the resulting Document


process

public void process(Document xmlDocument,
                    Document xslDocument,
                    Writer out)
Processes the specified xml (DOM) Document, using the specified xsl (DOM) Document and the default ResultHandler. All results are sent to the specified PrintWriter.

Parameters:
xmlDocument - the XML Document to process
xslDocument - the XSL Document to use for processing.
out - the Writer to print all processing results to.


process

public void process(Document xmlDocument,
                    Document xslDocument,
                    ResultHandler handler)
Processes the specified xml (DOM) Document, using the specified xsl (DOM) Document and the desired ResultHandler. All results are sent to the specified PrintWriter.

Parameters:
xmlDocument - the XML Document to process
xslDocument - the XSL Document to use for processing.
handler - the desired ResultHandler to use during processing


process

public Document process(Document xmlDocument,
                        XSLTStylesheet stylesheet)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet.

Parameters:
xmlDocument - the XML Document to process
stylesheet - the XSLStylesheet to use for processing.

Returns:
the resulting Document


process

public void process(Document xmlDocument,
                    XSLTStylesheet stylesheet,
                    Writer out)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet, and the default ResultHandler. All results are sent to the specified PrintWriter.

Parameters:
xmlDocument - the XML Document to process
stylesheet - the XSLStylesheet to use for processing.
out - the PrintWriter to print all processing results to.


process

public void process(Document xmlDocument,
                    XSLTStylesheet stylesheet,
                    ResultHandler handler)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet, and the desired ResultHandler. All results are sent to the specified ResultHandler.

Parameters:
xmlDocument - the XML Document to process
stylesheet - the XSLStylesheet to use for processing.
handler - the desired ResultHandler to use during processing


process

public Document process(String xmlFilename)
Processes the specified xml file, using the stylesheet specified by the xml stylesheet PI, and returns the resulting document.

Parameters:
xmlFilename - the path to the XML file to process


process

public Document process(String xmlFilename,
                        String xslFilename)
Processes the specified xml file, using the specified xsl file.

Parameters:
xmlFilename - the path to the XML file to process
xslFilename - the path to the XSL file to use for processing. This stylesheet will supercede any embedded stylesheets in the xsl document.

Returns:
the resulting Document


process

public void process(String xmlFilename,
                    String xslFilename,
                    Writer out)
Processes the specified xml file, using the specified xsl file, and the default ResultHandler. All results are sent to the given Writer.

Parameters:
xmlFilename - the href to the XML file to process
xslFilename - the href to the XSL file to use for processing. This stylesheet will supercede any embedded stylesheets in the xsl document. Set to null, to allow xml:stylesheet PI to be processed.
out - the Writer to print all processing results to.


process

public void process(String xmlFilename,
                    String xslFilename,
                    ResultHandler handler)
Processes the specified xml file, using the specified xsl file, and the desired ResultHandler. All results are sent to the PrintWriter.

Parameters:
xmlFilename - the path to the XML file to process
xslFilename - the path to the XSL file to use for processing. This stylesheet will supercede any embedded stylesheets in the xsl document.
handler - the ResultHandler which handles the result tree.


process

public void process(String xmlFilename,
                    Writer out)
Processes the specified xml file, using the stylesheet specified by the xml stylesheet PI, and the default ResultHandler. All results are sent to the Writer.

Parameters:
xmlFilename - the path to the XML file to process
out - the Writer to print all processing results to.


process

public void process(String xmlFilename,
                    XSLTStylesheet stylesheet,
                    Writer out)
Processes the specified xml file, using the specified xsl file, and the default ResultHandler. All results are sent to the given Writer.

Parameters:
xmlFilename - the href to the XML file to process
stylesheet - the XSLStylesheet to use for processing This stylesheet will supercede any embedded stylesheets in the xsl document. Set to null, to allow xml:stylesheet PI to be processed.
out - the Writer to print all processing results to.


process

public void process(String xmlFilename,
                    XSLTStylesheet stylesheet,
                    ResultHandler handler)
Processes the specified xml file, using the specified xsl file, and the desired ResultHandler. All results are sent to the PrintWriter.

Parameters:
xmlFilename - the path to the XML file to process
stylesheet - the XSLStylesheet to use for processing. This stylesheet will supercede any embedded stylesheets in the xsl document.
handler - the ResultHandler which handles the result tree.


process

public Document process(URILocation xmlLocation,
                        URILocation xslLocation)
Processes the specified xml InputStream, using the specified xsl InputStream.

Parameters:

Returns:
the resulting XPathNode


process

public void process(URILocation xmlLocation,
                    URILocation xslLocation,
                    ResultHandler handler)
Processes the specified xml InputStream, using the specified xsl InputStream, and the desired ResultHandler.

Parameters:
handler - the ResultHandler to use for processing the stylesheet


process

public XPathNode process(XPathNode source,
                         XSLTStylesheet stylesheet)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet.

Parameters:
stylesheet - the XSLStylesheet to use for processing.

Returns:
the resulting Document


process

public void process(XPathNode source,
                    XSLTStylesheet stylesheet,
                    Writer out)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet, and the default ResultHandler. All results are sent to the specified Writer.

Parameters:
source - the XML source node (XPathNode) to process
stylesheet - the XSLStylesheet to use for processing.
out - the Writer to print all processing results to.


process

public void process(XPathNode source,
                    XSLTStylesheet stylesheet,
                    ResultHandler handler)
Processes the specified xml source node (XPathNode), using the specified xsl stylesheet, and the desired ResultHandler. All results are sent to the specified ResultHandler.

Parameters:
source - the XML source node to process
stylesheet - the XSLStylesheet to use for processing.
handler - the ResultHandler to handle the result.


receiveMessage

public void receiveMessage(String message)
Recieves a message
Specified by:
receiveMessage in interface MessageObserver

Parameters:
message - the message to recieve

See Also:
MessageObserver


removeAllParameters

public void removeAllParameters()
Removes all the top-level parameter bindings

See Also:
removeParameter, setParameter


removeFunctionResolver

public void removeFunctionResolver(FunctionResolver fnResolver)
Removes the given FunctionResolver from the list of extension function resolvers.

Parameters:
fnResolver - the FunctionResolver to remove

See Also:
org.exolab.adaptx.xpath.FunctionResolver


removeMessageObserver

public MessageObserver removeMessageObserver(MessageObserver msgObserver)
Removes the given MessageObserver from this processors list of MessageObservers

Parameters:
msgObserver - the MessageObserver to remove from this processors list of MessageObservers

Returns:
the given MessageObserver if it was removed from the list, otherwise return null


removeParameter

public void removeParameter(String name)
Removes the top-level parameter binding with the given name

Parameters:
name - the name of the parameter binding to remove

See Also:
removeAllParameters, setParameter


setDOMParser

public void setDOMParser(DOMParser domParser)
Sets the DOMParser that will be used to read in XML Documents

Parameters:
domParser - the DOMParser that is to be used to read in XML Documents
Note:This will make a call to Configuration#setDOMParser which is static, so this DOMParser will be shared by all instances of XSL:P running in the same VM.


setDocumentBase

public void setDocumentBase(String documentBase)
Sets the document base for resolving relative URLs

Parameters:
documentBase - the document base to use while processing.


setParameter

public void setParameter(String name,
                         String value)
Sets a parameter which may be accessed using a top-level parameter in the XSLT Stylesheet.

Parameters:
name - the name of the parameter
value - the value of the parameter


setProperty

public void setProperty(String property,
                        String value)
Sets the property value associated with the given String.


setURIResolver

public void setURIResolver(URIResolver resolver)
Sets the URIResolver for resolving all URIs. If null, the default URIResolver will be used.

Parameters:
resolver - the URIResolver to use


setValidation

public void setValidation(boolean validate)
Sets whether or not to validate when reading an XML document. Note:This will turn on validation for the DOMParser returned by Configuration#getDOMParser(), which is static, so this validation (on/off) will be shared by all instances of XSL:P running in the same VM.

Parameters:
validate - the boolean indicating whether to validate or not

Since:
19990408