org.exolab.adaptx.xslt

Class XSLTProcessor

public class XSLTProcessor extends ErrorObserverAdapter implements MessageObserver

This class represents an XSLT Processor that implements the W3C XSLT 1.0 Recommendation.

Version: $Revision: 4776 $ $Date: 2004-09-28 15:46:27 -0400 (Tue, 28 Sep 2004) $

Author: Keith Visco

Field Summary
static StringERR_OUTPUT_FLAG
The flag directive for the error log file -- added by Mohan Embar
static StringHELP_FLAG
The flag directive for the help screen
static StringINDENT_SIZE
Indent Size property name
static StringINPUT_FLAG
The flag directive for the xml input file
static StringOUTPUT_FLAG
The flag directive for the result tree output file
static StringSTYLESHEET_FLAG
The flag directive for the stylesheet to use
static StringVALIDATE_FLAG
The flag directive for the turning on validation
static StringVERSION_FLAG
The flag directive for displaying the version
Constructor Summary
XSLTProcessor()
Creates a new XSLTProcessor
Method Summary
voidaddErrorObserver(ErrorObserver observer)
Adds the given ErrorObserver to the list of ErrorObservers for this processor
voidaddFunctionResolver(FunctionResolver fnResolver)
Adds the given FunctionResolver used for resovling extension functions.
voidaddMessageObserver(MessageObserver msgObserver)
Adds the given MessageObserver to this processors list of MessageObservers
static URILocationcreateURILocation(Reader reader, String filename)
Creates a URILocation for the given Reader and Filename.
static StringgetAppInfo()
Retrieves the name and version of this application
XSLOutputgetOutputProperties()
Returns the XSLOutput object containing the output properties.
StringgetParameter(String name)
Returns the value of the top-level parameter associated with the given name.
EnumerationgetParameterNames()
Returns an enumeration of all top-level parameter names.
StringgetProperty(String property)
Returns the property value associated with the given String
static voidmain(String[] args)
Runs this XSLProcessor based on the given arguments.
voidprocess(String xmlFilename, Writer out)
Processes the specified xml file, using the stylesheet specified by the xml stylesheet PI, and the default ResultHandler.
Documentprocess(String xmlFilename)
Processes the specified xml file, using the stylesheet specified by the xml stylesheet PI, and returns the resulting document.
voidprocess(String xmlFilename, String xslFilename, Writer out)
Processes the specified xml file, using the specified xsl file, and the default ResultHandler.
voidprocess(String xmlFilename, XSLTStylesheet stylesheet, Writer out)
Processes the specified xml file, using the specified xsl file, and the default ResultHandler.
voidprocess(String xmlFilename, String xslFilename, ResultHandler handler)
Processes the specified xml file, using the specified xsl file, and the desired ResultHandler.
voidprocess(String xmlFilename, XSLTStylesheet stylesheet, ResultHandler handler)
Processes the specified xml file, using the specified xsl file, and the desired ResultHandler.
Documentprocess(String xmlFilename, String xslFilename)
Processes the specified xml file, using the specified xsl file.
Documentprocess(URILocation xmlLocation, URILocation xslLocation)
Processes the specified xml URILocation, using the specified xslt stylesheet URILocation, and the desired ResultHandler.
voidprocess(URILocation xmlLocation, URILocation xslLocation, ResultHandler handler)
Processes the specified xml URILocation, using the specified xslt stylesheet URILocation, and the desired ResultHandler.
voidprocess(URILocation xmlLocation, XSLTStylesheet stylesheet, ResultHandler handler)
Processes the specified xml URILocation, using the specified xslt stylesheet, and the desired ResultHandler.
Documentprocess(Document xmlDocument, Document xslDocument)
Processes the specified xml (DOM) Document, using the specified (DOM) xsl stylesheet.
voidprocess(Document xmlDocument, Document xslDocument, Writer out)
Processes the specified xml (DOM) Document, using the specified xsl (DOM) Document and the default ResultHandler.
voidprocess(Document xmlDocument, Document xslDocument, ResultHandler handler)
Processes the specified xml (DOM) Document, using the specified xsl (DOM) Document and the desired ResultHandler.
XPathNodeprocess(XPathNode source, XSLTStylesheet stylesheet)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet.
Documentprocess(Document xmlDocument, XSLTStylesheet stylesheet)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet.
voidprocess(XPathNode source, XSLTStylesheet stylesheet, Writer out)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet, and the default ResultHandler.
voidprocess(Document xmlDocument, XSLTStylesheet stylesheet, Writer out)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet, and the default ResultHandler.
voidprocess(XPathNode source, XSLTStylesheet stylesheet, ResultHandler handler)
Processes the specified xml source node (XPathNode), using the specified xsl stylesheet, and the desired ResultHandler.
voidprocess(Document xmlDocument, XSLTStylesheet stylesheet, ResultHandler handler)
Processes the specified xml (DOM) Document, using the specified xsl stylesheet, and the desired ResultHandler.
voidreceiveMessage(String message)
Recieves a message
voidremoveAllParameters()
Removes all the top-level parameter bindings
voidremoveFunctionResolver(FunctionResolver fnResolver)
Removes the given FunctionResolver from the list of extension function resolvers.
MessageObserverremoveMessageObserver(MessageObserver msgObserver)
Removes the given MessageObserver from this processors list of MessageObservers
voidremoveParameter(String name)
Removes the top-level parameter binding with the given name
voidsetDocumentBase(String documentBase)
Sets the document base for resolving relative URLs
voidsetDOMParser(DOMParser domParser)
Sets the DOMParser that will be used to read in XML Documents
voidsetOutputProperties(XSLOutput output)
Sets the XSLOutput object containing the output properties.
voidsetParameter(String name, String value)
Sets a parameter which may be accessed using a top-level parameter in the XSLT Stylesheet.
voidsetProperty(String property, String value)
Sets the property value associated with the given String.
voidsetURIResolver(URIResolver resolver)
Sets the URIResolver for resolving all URIs.
voidsetValidation(boolean validate)
Sets whether or not to validate when reading an XML document.

Field Detail

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 Detail

XSLTProcessor

public XSLTProcessor()
Creates a new XSLTProcessor

Method Detail

addErrorObserver

public void addErrorObserver(ErrorObserver observer)
Adds the given ErrorObserver to the list of ErrorObservers for this processor

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 filename, the absolute filename for the URILocation

Returns: the new URILocation

getAppInfo

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

UNKNOWN: a String with the name and version of this application

getOutputProperties

public XSLOutput getOutputProperties()
Returns the XSLOutput object containing the output properties. This is used for over-riding any output properties which may appear in the XSLT stylesheet.

Returns: the XSLOutput object, or null if not set.

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(String[] 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: args a list of arguments to this XSLProcessor
Though I do not recommend the following, if you need a static call to XSL:P use the following:
args = {"-i", "xmlfile.xml", "-s", "style.xsl","-o","result.html"}
-- OR --
args = {"-ixmlfile.xml", "-sstyle.xsl","-oresult.html"}
If the Stylesheet is referenced by the processing instruction use the following
args = {"-ixmlfile.xml","-oresult.html"}

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 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

UNKNOWN: 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, 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, 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, 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(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 Document process(URILocation xmlLocation, URILocation xslLocation)
Processes the specified xml URILocation, using the specified xslt stylesheet URILocation, and the desired ResultHandler.

Parameters: xmlLocation the URILocation for the input XML source xslLocation the URILocation for the stylesheet to use. If present this stylesheet will supercede any embedded stylesheets in the xml document. Set to null, to allow the xml:stylesheet PI to be processed.

Returns: the resulting DOM Document

process

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

Parameters: xmlLocation the URILocation for the input XML source xslLocation the URILocation for the stylesheet to use. If present this stylesheet will supercede any embedded stylesheets in the xml document. Set to null, to allow the xml:stylesheet PI to be processed. handler the ResultHandler to use for processing the stylesheet

process

public void process(URILocation xmlLocation, XSLTStylesheet stylesheet, ResultHandler handler)
Processes the specified xml URILocation, using the specified xslt stylesheet, and the desired ResultHandler.

Parameters: xmlLocation the URILocation for the input XML source stylesheet the XSLTStylesheet to use (may be null). If present this stylesheet will supercede any embedded stylesheets in the xml document. Set to null, to allow the xml:stylesheet PI to be processed. handler the ResultHandler to use for processing the stylesheet

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. out the PrintWriter to print all processing results to. handler the desired ResultHandler to use during processing

process

public XPathNode process(XPathNode source, 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 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(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(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(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.

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

receiveMessage

public void receiveMessage(String message)
Recieves a message

Parameters: message the message to recieve

See Also:

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

setDocumentBase

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

Parameters: documentBase the document base to use while processing.

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.

setOutputProperties

public void setOutputProperties(XSLOutput output)
Sets the XSLOutput object containing the output properties. This is used for over-riding any output properties which may appear in the XSLT stylesheet.

Parameters: output the XSLOutput object to set.

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.

UNKNOWN: the property to set the value of the property
See xslp.properties for for a list of properties

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