net.sf.saxon.s9api
Class XsltTransformer

java.lang.Object
  extended by net.sf.saxon.s9api.XsltTransformer
All Implemented Interfaces:
Destination

public class XsltTransformer
extends Object
implements Destination

An XsltTransformer represents a compiled and loaded stylesheet ready for execution. The XsltTransformer holds details of the dynamic evaluation context for the stylesheet.

An XsltTransformer must not be used concurrently in multiple threads. It is safe, however, to reuse the object within a single thread to run the same stylesheet several times. Running the stylesheet does not change the context that has been established.

An XsltTransformer is always constructed by running the Load method of an XsltExecutable.

An XsltTransformer is itself a Destination. This means it is possible to use one XsltTransformer as the destination to receive the results of another transformation, this providing a simple way for transformations to be chained into a pipeline.


Method Summary
 Destination getDestination()
          Get the destination that was specified in a previous call of setDestination(net.sf.saxon.s9api.Destination)
 XdmNode getInitialContextNode()
          Get the initial context node for the transformation, if one has been set
 QName getInitialMode()
          Get the initial mode for the transformation, if one has been set.
 QName getInitialTemplate()
          Get the initial named template for the transformation, if one has been set
 XdmValue getParameter(QName name)
          Get the value that has been set for a stylesheet parameter
 Receiver getReceiver(Configuration config)
          Return a Receiver.
 void setDestination(Destination destination)
          Set the destination to be used for the transformation.
 void setInitialContextNode(XdmNode node)
          Set the initial context node for the transformation
 void setInitialMode(QName modeName)
          Set the initial mode for the transformation
 void setInitialTemplate(QName templateName)
          Set the initial named template for the transformation
 void setParameter(QName name, XdmValue value)
          Set the value of a stylesheet parameter
 void setSource(Source source)
          Set the source document for the transformation.
 void transform()
          Perform the transformation.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

setInitialTemplate

public void setInitialTemplate(QName templateName)
                        throws SaxonApiException
Set the initial named template for the transformation

Parameters:
templateName - the name of the initial template, or null to indicate that there should be no initial named template
Throws:
SaxonApiException - if there is no named template with this name

getInitialTemplate

public QName getInitialTemplate()
Get the initial named template for the transformation, if one has been set

Returns:
the name of the initial template, or null if none has been set

setInitialMode

public void setInitialMode(QName modeName)
Set the initial mode for the transformation

Parameters:
modeName - the name of the initial mode, or null to indicate the default (unnamed) mode

getInitialMode

public QName getInitialMode()
Get the initial mode for the transformation, if one has been set.

Returns:
the initial mode for the transformation. Returns null if no mode has been set, or if the mode was set to null to represent the default (unnamed) mode

setSource

public void setSource(Source source)
               throws SaxonApiException
Set the source document for the transformation. This method is equivalent to building a document from the supplied source object, and then supplying the document node of the resulting document as the initial context node.

Parameters:
source - the principal source document for the transformation
Throws:
SaxonApiException

setInitialContextNode

public void setInitialContextNode(XdmNode node)
Set the initial context node for the transformation

Parameters:
node - the initial context node, or null if there is to be no initial context node

getInitialContextNode

public XdmNode getInitialContextNode()
Get the initial context node for the transformation, if one has been set

Returns:
the initial context node, or null if none has been set. This will not necessarily be the same XdmNode instance as was supplied, but it will be an XdmNode object that represents the same underlying node.

setParameter

public void setParameter(QName name,
                         XdmValue value)
Set the value of a stylesheet parameter

Parameters:
name - the name of the stylesheet parameter, as a QName
value - the value of the stylesheet parameter, or null to clear a previously set value

getParameter

public XdmValue getParameter(QName name)
Get the value that has been set for a stylesheet parameter

Parameters:
name - the parameter whose name is required
Returns:
the value that has been set for the parameter, or null if no value has been set

setDestination

public void setDestination(Destination destination)
Set the destination to be used for the transformation. This is ignored if a destination is supplied on the transform() call itself. This method must be used to supply a destination when transformations are chained together (by using one XsltTransformer as the destination of another)

Parameters:
destination - the destination to be used

getDestination

public Destination getDestination()
Get the destination that was specified in a previous call of setDestination(net.sf.saxon.s9api.Destination)

Returns:
the destination, or null if none has been supplied

transform

public void transform()
               throws SaxonApiException
Perform the transformation. If this method is used, a destination must have been supplied previously

Throws:
SaxonApiException - if any dynamic error occurs during the transformation
IllegalStateException - if no destination has been supplied

getReceiver

public Receiver getReceiver(Configuration config)
                     throws SaxonApiException
Return a Receiver. This method is intended primarily for internal use, though it can also be called by a user application that wishes to feed events into the transformation engine.

Saxon calls this method to obtain a Receiver, to which it then sends a sequence of events representing the content of an XML document. This method is provided so that XsltTransformer implements Destination, allowing one transformation to receive the results of another in a pipeline.

Note that when an XsltTransformer is used as a Destination, the initial context node set on that XsltTransformer is ignored.

Specified by:
getReceiver in interface Destination
Parameters:
config - The Saxon configuration. This is supplied so that the destination can use information from the configuration (for example, a reference to the name pool) to construct or configure the returned Receiver.
Returns:
the Receiver to which events are to be sent.
Throws:
SaxonApiException - if the Receiver cannot be created


Copyright (C) Michael H. Kay. All rights reserved.