|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.xml.transform.Transformer net.sf.saxon.Controller
public class Controller
The Controller is Saxon's implementation of the JAXP Transformer class, and represents an executing instance of a transformation or query. Multiple concurrent executions of the same transformation or query will use different Controller instances. This class is therefore not thread-safe.
The Controller is serially reusable, as required by JAXP: when one transformation or query is finished, it can be used to run another. However, there is no advantage in doing this rather than allocating a new Controller each time.
The Controller can also be used when running Java applications that use neither XSLT nor XQuery. A dummy Controller is created when running free-standing XPath expressions.
The Controller holds those parts of the dynamic context that do not vary during the course of a transformation or query, or that do not change once their value has been computed. This also includes those parts of the static context that are required at run-time.
Wherever possible XSLT applications should use the JAXP Transformer class directly, rather than relying on Saxon-specific methods in the Controller. However, some features are currently available only through this class. This applies especially to new features specific to XSLT 2.0, since the JAXP interface still supports only XSLT 1.0. Such methods may be superseded in the future by JAXP methods.
Many methods on the Controller are designed for internal use and should not be considered stable. From release 8.4 onwards, those methods that are considered sufficiently stable to constitute path of the Saxon public API are labelled with the JavaDoc tag "since": the value indicates the release at which the method was added to the public API.
Constructor Summary | |
---|---|
Controller(Configuration config)
Create a Controller and initialise variables. |
|
Controller(Configuration config,
Executable executable)
Create a Controller and initialise variables. |
Method Summary | |
---|---|
void |
addTraceListener(TraceListener trace)
Adds the specified trace listener to receive trace events from this instance. |
void |
addUnavailableOutputDestination(String uri)
Add a URI to the set of output destinations that cannot be written to, either because they have already been written to, or because they have been read |
void |
allocateGlobalVariables(int numberOfVariables)
Allocate space in the bindery for global variables. |
SequenceOutputter |
allocateSequenceOutputter(int size)
Allocate a SequenceOutputter for a new output destination. |
void |
checkImplicitResultTree()
Check whether an XSLT implicit result tree can be written. |
boolean |
checkUniqueOutputDestination(String uri)
Check that an output destination has not been used before, optionally adding this URI to the set of URIs that have been used. |
void |
clearDocumentPool()
Clear the document pool. |
void |
clearParameters()
Reset the parameters to a null list. |
void |
defineGlobalParameters()
Register the global parameters of the transformation or query. |
String |
getBaseOutputURI()
Get the base output URI. |
Bindery |
getBindery()
Get the current bindery. |
ClassLoader |
getClassLoader()
Get the ClassLoader supplied using the method setClassLoader(java.lang.ClassLoader) . |
Configuration |
getConfiguration()
Get the Configuration associated with this Controller. |
Item |
getContextForGlobalVariables()
Get the item used as the context for evaluating global variables. |
DateTimeValue |
getCurrentDateTime()
Get the current date and time for this query or transformation. |
DocumentPool |
getDocumentPool()
Get the document pool. |
ErrorListener |
getErrorListener()
Get the error listener. |
Executable |
getExecutable()
Get the Executable object. |
int |
getImplicitTimezone()
Get the implicit timezone for this query or transformation |
Item |
getInitialContextItem()
Get the initial context item. |
String |
getInitialMode()
Get the initial mode for the transformation |
String |
getInitialTemplate()
Get the initial template |
InstructionInfo |
getInstructionInfo()
Get diagnostic information about this context. |
KeyManager |
getKeyManager()
Get the KeyManager. |
Receiver |
getMessageEmitter()
Get the Emitter used for xsl:message output. |
NamePool |
getNamePool()
Get the name pool in use. |
Properties |
getOutputProperties()
Get the output properties for the transformation. |
String |
getOutputProperty(String name)
Get the value of an output property. |
OutputURIResolver |
getOutputURIResolver()
Get the output URI resolver. |
Object |
getParameter(String expandedName)
Get a parameter to the transformation. |
PathMap |
getPathMapForDocumentProjection()
Get the path map used for document projection, if any. |
Result |
getPrincipalResult()
Get the principal result destination. |
DocumentInfo |
getPrincipalSourceDocument()
Deprecated. From Saxon 8.7, replaced by getInitialContextItem() and
getContextForGlobalVariables() |
int |
getRecoveryPolicy()
Get the policy for handling recoverable errors |
int |
getRememberedNumber(NodeInfo node)
Get the number of a node if it is the last remembered one. |
RuleManager |
getRuleManager()
Get the Rule Manager. |
SchemaURIResolver |
getSchemaURIResolver()
Get the SchemaURIResolver used for resolving references to schema documents. |
URIResolver |
getStandardURIResolver()
Get the fallback URI resolver. |
TraceListener |
getTraceListener()
Get the TraceListener. |
UnparsedTextURIResolver |
getUnparsedTextURIResolver()
Get the URI resolver for the unparsed-text() function. |
URIResolver |
getURIResolver()
Get the URI resolver. |
Object |
getUserData(Object key,
String name)
Get user data associated with a key. |
boolean |
hasThereBeenAnExplicitResultDocument()
Test whether an explicit result tree has been written using xsl:result-document |
void |
initializeController()
Initialize the controller ready for a new transformation. |
boolean |
isTracing()
Test whether instruction execution is being traced. |
boolean |
isUnusedOutputDestination(String uri)
Determine whether an output URI is available for use. |
Iterator |
iterateParameters()
Get an iterator over the names of global parameters that have been defined |
Builder |
makeBuilder()
Make a builder for the selected tree model. |
CharacterMapExpander |
makeCharacterMapExpander(String useMaps,
SerializerFactory sf)
Make a CharacterMapExpander to handle the character map definitions in the serialization properties. |
PipelineConfiguration |
makePipelineConfiguration()
Make a PipelineConfiguration based on the properties of this Controller. |
Stripper |
makeStripper(Receiver b)
Make a Stripper configured to implement the whitespace stripping rules. |
XPathContextMajor |
newXPathContext()
Make an XPathContext object for expression evaluation. |
void |
pauseTracing(boolean pause)
Pause or resume tracing. |
void |
preEvaluateGlobals(XPathContext context)
Pre-evaluate global variables (when debugging/tracing). |
NodeInfo |
prepareInputTree(Source source)
Prepare an input tree for processing. |
Result |
prepareNextStylesheet(String href,
String baseURI,
Result result)
Prepare another stylesheet to handle the output of this one. |
void |
recoverableError(XPathException err)
Report a recoverable error. |
void |
registerDocument(DocumentInfo doc,
String systemId)
Add a document to the document pool. |
void |
removeTraceListener(TraceListener trace)
Removes the specified trace listener so that the listener will no longer receive trace events. |
void |
removeUnavailableOutputDestination(String uri)
Remove a URI from the set of output destinations that cannot be written to or read from. |
void |
reportFatalError(XPathException err)
Report a fatal error |
void |
reset()
Reset this Transformer to its original configuration. |
void |
reuseSequenceOutputter(SequenceOutputter out)
Accept a SequenceOutputter that is now available for reuse |
void |
setBaseOutputURI(String uri)
Set the base output URI. |
void |
setClassLoader(ClassLoader loader)
Set a ClassLoader to be used when loading external classes. |
void |
setCurrentDateTime(DateTimeValue dateTime)
Set the current date and time for this query or transformation. |
void |
setErrorListener(ErrorListener listener)
Set the error listener. |
void |
setExecutable(Executable exec)
Associate this Controller with an Executable. |
void |
setInitialContextItem(Item item)
Set the initial context item. |
void |
setInitialMode(String expandedModeName)
Set the initial mode for the transformation. |
void |
setInitialTemplate(String expandedName)
Set the initial named template to be used as the entry point. |
void |
setMessageEmitter(Receiver receiver)
Set the Receiver to be used for xsl:message output. |
void |
setOutputProperties(Properties properties)
Set the output properties for the transformation. |
void |
setOutputProperty(String name,
String value)
Set an output property for the transformation. |
void |
setOutputURIResolver(OutputURIResolver resolver)
Set the URI resolver for secondary output documents. |
void |
setParameter(String expandedName,
Object value)
Set a parameter for the transformation. |
void |
setParameter(StructuredQName qName,
ValueRepresentation value)
Supply a parameter using Saxon-specific representations of the name and value |
void |
setPreparedStylesheet(PreparedStylesheet sheet)
Associate this Controller with a compiled stylesheet. |
void |
setPrincipalSourceDocument(DocumentInfo doc)
Deprecated. From Saxon 8.7, replaced by setInitialContextItem(Item) |
void |
setRecoveryPolicy(int policy)
Set the policy for handling recoverable errrors |
void |
setRememberedNumber(NodeInfo node,
int number)
Set the last remembered node, for node numbering purposes. |
void |
setRuleManager(RuleManager r)
Set the RuleManager, used to manage template rules for each mode. |
void |
setSchemaURIResolver(SchemaURIResolver resolver)
Set the SchemaURIResolver used for resolving references to schema documents. |
void |
setThereHasBeenAnExplicitResultDocument()
Set that an explicit result tree has been written using xsl:result-document |
void |
setTreeModel(int model)
Set the tree data model to use. |
void |
setUnparsedTextURIResolver(UnparsedTextURIResolver resolver)
Set an UnparsedTextURIResolver to be used to resolve URIs passed to the XSLT unparsed-text() function. |
void |
setURIResolver(URIResolver resolver)
Set an object that will be used to resolve URIs used in document(), etc. |
void |
setUseDocumentProjection(PathMap pathMap)
Indicate whether document projection should be used, and supply the PathMap used to control it. |
void |
setUserData(Object key,
String name,
Object data)
Set user data associated with a key. |
void |
transform(Source source,
Result result)
Perform a transformation from a Source document to a Result document. |
void |
transformDocument(NodeInfo startNode,
Result result)
Transform a source XML document supplied as a tree. |
static NodeInfo |
unravel(Source source,
Configuration config)
Deprecated. since 9.0: use Configuration.unravel(javax.xml.transform.Source) |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Controller(Configuration config)
config
- The Configuration used by this Controllerpublic Controller(Configuration config, Executable executable)
config
- The Configuration used by this Controllerexecutable
- The executable used by this ControllerMethod Detail |
---|
public void reset()
Reset this Transformer
to its original configuration.
Transformer
is reset to the same state as when it was created with
TransformerFactory.newTransformer()
,
TransformerFactory.newTransformer(javax.xml.transform.Source source)
or
Templates.newTransformer()
.
reset()
is designed to allow the reuse of existing Transformer
s
thus saving resources associated with the creation of new Transformer
s.
The above is from the JAXP specification. With Saxon, it's unlikely that reusing a Transformer will
give any performance benefits over creating a new one. The one case where it might be beneficial is
to reuse the document pool (the set of documents that have been loaded using the doc() or document()
functions). Therefore, this method does not clear the document pool. If you want to clear the document
pool, call the method clearDocumentPool()
as well.
The reset Transformer
is not guaranteed to have the same URIResolver
or ErrorListener
Object
s, e.g. Object.equals(Object obj)
.
It is guaranteed to have a functionally equal URIResolver
and ErrorListener
.
reset
in class Transformer
public Configuration getConfiguration()
public void setInitialMode(String expandedModeName)
XSLT 2.0 allows a transformation to be started in a mode other than the default mode. The transformation then starts by looking for the template rule in this mode that best matches the initial context node.
This method may eventually be superseded by a standard JAXP method.
expandedModeName
- the name of the initial mode. The mode is
supplied as an expanded QName, that is "localname" if there is no
namespace, or "{uri}localname" otherwisepublic String getInitialMode()
public void setOutputProperties(Properties properties)
As well as the properties defined in the JAXP OutputKeys class,
Saxon defines an additional set of properties in SaxonOutputKeys
.
These fall into two categories: Constants representing serialization
properties defined in XSLT 2.0 (which are not yet supported by JAXP),
and constants supporting Saxon extensions to the set of serialization
properties.
setOutputProperties
in class Transformer
properties
- the output properties to be used for the
transformation. If the value is null, the properties are reset to
be the properties of the Templates object (that is, for XSLT 2.0,
the properties set in the unnamed xsl:output object).
IllegalArgumentException
- if any of the properties are invalid (other than
properties in a user-defined namespace)SaxonOutputKeys
public Properties getOutputProperties()
As well as the properties defined in the JAXP OutputKeys class,
Saxon defines an additional set of properties in SaxonOutputKeys
.
These fall into two categories: Constants representing serialization
properties defined in XSLT 2.0 (which are not yet supported by JAXP),
and constants supporting Saxon extensions to the set of serialization
properties.
getOutputProperties
in class Transformer
SaxonOutputKeys
public void setOutputProperty(String name, String value)
As well as the properties defined in the JAXP OutputKeys class,
Saxon defines an additional set of properties in SaxonOutputKeys
.
These fall into two categories: Constants representing serialization
properties defined in XSLT 2.0 (which are not yet supported by JAXP),
and constants supporting Saxon extensions to the set of serialization
properties.
setOutputProperty
in class Transformer
name
- the name of the propertyvalue
- the value of the property
IllegalArgumentException
- if the property is invalid (except for
properties in a user-defined namespace)SaxonOutputKeys
public String getOutputProperty(String name)
As well as the properties defined in the JAXP OutputKeys class,
Saxon defines an additional set of properties in SaxonOutputKeys
.
These fall into two categories: Constants representing serialization
properties defined in XSLT 2.0 (which are not yet supported by JAXP),
and constants supporting Saxon extensions to the set of serialization
properties.
getOutputProperty
in class Transformer
name
- the name of the requested property
SaxonOutputKeys
public void setBaseOutputURI(String uri)
The concept of the base output URI is new in XSLT 2.0: it defines the
base URI for resolving relative URIs in the href
attribute
of the xsl:result-document
instruction. This method may be
superseded by a standard JAXP method when JAXP is updated to support XSLT 2.0.
uri
- the base output URIpublic String getBaseOutputURI()
The concept of the base output URI is new in XSLT 2.0: it defines the
base URI for resolving relative URIs in the href
attribute
of the xsl:result-document
instruction. This method may be
superseded by a standard JAXP method when JAXP is updated to support XSLT 2.0.
public Result getPrincipalResult()
This method is intended for internal use only. It is typically called by Saxon during the course of a transformation, to discover the result that was supplied in the transform() call.
public boolean checkUniqueOutputDestination(String uri)
uri
- the URI to be used as the output destination
This method is intended for internal use only.
public void addUnavailableOutputDestination(String uri)
uri
- A URI that is not available as an output destinationpublic void removeUnavailableOutputDestination(String uri)
uri
- A URI that is being made available as an output destinationpublic boolean isUnusedOutputDestination(String uri)
uri
- A uri that the application is proposing to use in the href attribute of
xsl:result-document: if this function returns false, then the xsl:result-document
call will fail saying the URI has already been used.
public void checkImplicitResultTree() throws XPathException
XPathException
public void setThereHasBeenAnExplicitResultDocument()
public boolean hasThereBeenAnExplicitResultDocument()
public SequenceOutputter allocateSequenceOutputter(int size)
size
- the estimated size of the output sequence
public void reuseSequenceOutputter(SequenceOutputter out)
out
- the SequenceOutputter that is available for reusepublic void setInitialTemplate(String expandedName) throws XPathException
XSLT 2.0 allows a transformation to start by executing a named template, rather than by matching an initial context node in a source document. This method may eventually be superseded by a standard JAXP method once JAXP supports XSLT 2.0.
Although the Saxon command line interface does not allow both a source document and an initial template to be specified, this API has no such restriction.
Note that any parameters supplied using setParameter(java.lang.String, java.lang.Object)
are used as the values
of global stylesheet parameters. There is no way to supply values for local parameters
of the initial template.
expandedName
- The expanded name of the template in {uri}local format, or null
to indicate that there should be no initial template.
XPathException
- if there is no named template with this namepublic String getInitialTemplate()
public PipelineConfiguration makePipelineConfiguration()
This interface is intended primarily for internal use, although it may be necessary for applications to call it directly if they construct pull or push pipelines
public void setMessageEmitter(Receiver receiver)
Recent versions of the JAXP interface specify that by default the output of xsl:message is sent to the registered ErrorListener. Saxon does not yet implement this convention. Instead, the output is sent to a default message emitter, which is a slightly customised implementation of the standard Saxon Emitter interface.
This interface can be used to change the way in which Saxon outputs xsl:message output.
It is not necessary to use this interface in order to change the destination
to which messages are written: that can be achieved by obtaining the standard
message emitter and calling its Emitter.setWriter(java.io.Writer)
method.
This method is intended for use by advanced applications. The Receiver interface itself is subject to change in new Saxon releases.
The supplied Receiver will have its open() method called once at the start of
the transformation, and its close() method will be called once at the end of the
transformation. Each individual call of an xsl:message instruction is wrapped by
calls of startDocument() and endDocument(). If terminate="yes" is specified on the
xsl:message call, the properties argument of the startDocument() call will be set
to the value ReceiverOptions.TERMINATE
.
receiver
- The receiver to receive xsl:message output.public Receiver getMessageEmitter()
setMessageEmitter(net.sf.saxon.event.Receiver)
method, or the
default message emitter otherwise.
public CharacterMapExpander makeCharacterMapExpander(String useMaps, SerializerFactory sf) throws XPathException
This method is intended for internal use only.
useMaps
- the expanded use-character-maps property: a space-separated list of names
of character maps to be used, each one expressed as an expanded-QName in Clark notation
(that is, {uri}local-name).sf
- the SerializerFactory - used to create a CharacterMapExpander
XPathException
- if a name in the useMaps property cannot be resolved to a declared
character map.public void setRecoveryPolicy(int policy)
policy
- the recovery policy to be used. The options are Configuration.RECOVER_SILENTLY
,
Configuration.RECOVER_WITH_WARNINGS
, or Configuration.DO_NOT_RECOVER
.public int getRecoveryPolicy()
public void setErrorListener(ErrorListener listener)
setErrorListener
in class Transformer
listener
- the ErrorListener to be usedpublic ErrorListener getErrorListener()
getErrorListener
in class Transformer
public void recoverableError(XPathException err) throws XPathException
This method is intended for internal use only.
err
- An exception holding information about the error
XPathException
- if the error listener decides not to
recover from the errorpublic void reportFatalError(XPathException err)
err
- the error to be reportedpublic Executable getExecutable()
This method is intended for internal use only.
public DocumentPool getDocumentPool()
This method is intended for internal use only.
public void clearDocumentPool()
public void setPrincipalSourceDocument(DocumentInfo doc)
setInitialContextItem(Item)
transform(javax.xml.transform.Source, javax.xml.transform.Result)
method, the
initial context node is set automatically. This method is useful in XQuery,
to define an initial context node for evaluating global variables, and also
in XSLT 2.0, when the transformation is started by invoking a named template.
doc
- The principal source documentpublic void setInitialContextItem(Item item)
transform(javax.xml.transform.Source, javax.xml.transform.Result)
method, the
initial context node is set automatically. This method is useful in XQuery,
to define an initial context node for evaluating global variables, and also
in XSLT 2.0, when the transformation is started by invoking a named template.
When an initial context item is set, it also becomes the context item used for
evaluating global variables. The two context items can only be different when the
transform(javax.xml.transform.Source, javax.xml.transform.Result)
method is used to transform a document starting at a node other
than the root.
In XQuery, the two context items are always the same; in XSLT, the context node for evaluating global variables is the root of the tree containing the initial context item.
item
- The initial context item. The XSLT specification says that this
must be a node; however this restriction is not enforced, and any item can be supplied
as an initial context item if the transformation is started by calling a named initial template.
(There is no similar restriction in XQuery)public Bindery getBindery()
This method is intended for internal use only.
public DocumentInfo getPrincipalSourceDocument()
getInitialContextItem()
and
getContextForGlobalVariables()
public Item getInitialContextItem()
setInitialContextItem(net.sf.saxon.om.Item)
method, or the
initial context node set implicitly using methods such as transform(javax.xml.transform.Source, javax.xml.transform.Result)
.
public Item getContextForGlobalVariables()
public void setURIResolver(URIResolver resolver)
setURIResolver
in class Transformer
resolver
- An object that implements the URIResolver interface, or
null.public URIResolver getURIResolver()
This method changed in Saxon 8.5, to conform to the JAXP specification. If there is no user-specified URIResolver, it now returns null; previously it returned the system default URIResolver.
getURIResolver
in class Transformer
public URIResolver getStandardURIResolver()
This method is intended for internal use only.
public void setOutputURIResolver(OutputURIResolver resolver)
XSLT 2.0 introduces the xsl:result-document
This method may eventually be superseded by a standard JAXP method.
resolver
- An object that implements the OutputURIResolver
interface, or null.public OutputURIResolver getOutputURIResolver()
setOutputURIResolver(net.sf.saxon.OutputURIResolver)
public void setUnparsedTextURIResolver(UnparsedTextURIResolver resolver)
resolver
- the unparsed text URI resolver to be used. This replaces any unparsed text
URI resolver previously registered.public UnparsedTextURIResolver getUnparsedTextURIResolver()
setUnparsedTextURIResolver(net.sf.saxon.trans.UnparsedTextURIResolver)
method.
public void setSchemaURIResolver(SchemaURIResolver resolver)
resolver
- the resolver for references to schema documentspublic SchemaURIResolver getSchemaURIResolver()
public KeyManager getKeyManager()
This method is intended for internal use only.
public NamePool getNamePool()
public void setTreeModel(int model)
transform(javax.xml.transform.Source, javax.xml.transform.Result)
method.
model
- the required tree model: Builder.LINKED_TREE
or
Builder.TINY_TREE
Builder
public Builder makeBuilder()
public Stripper makeStripper(Receiver b)
xsl:strip-space
and xsl:preserve-space
Configuration.setStripsAllWhiteSpace(boolean)
.
b
- the Receiver to which the events filtered by this stripper are
to be sent (often a Builder). May be null if the stripper is not being used for filtering
into a Builder or other Receiver.
public void registerDocument(DocumentInfo doc, String systemId)
This method is intended for internal use only.
doc
- the root node of the document to be addedsystemId
- the document-URI property of this documentpublic void setRuleManager(RuleManager r)
This method is intended for internal use only.
r
- the Rule Managerpublic RuleManager getRuleManager()
This method is intended for internal use only.
public TraceListener getTraceListener()
addTraceListener(net.sf.saxon.trace.TraceListener)
. If more than one TraceListener has been added,
this method will return a composite TraceListener. Because this form
this takes is implementation-dependent, this method is not part of the
stable Saxon public API.
public final boolean isTracing()
addTraceListener(net.sf.saxon.trace.TraceListener)
method, and (b) tracing has not been temporarily
paused using the pauseTracing(boolean)
method.
public final void pauseTracing(boolean pause)
pause
- true if tracing is to pause; false if it is to resumepublic void addTraceListener(TraceListener trace)
Configuration.setTraceListener(net.sf.saxon.trace.TraceListener)
or by setting
the attribute FeatureKeys.TRACE_LISTENER
on the
TransformerFactory. Conversely, if this property has been set in the
Configuration or TransformerFactory, the TraceListener will automatically
be added to every Controller that uses that Configuration.
trace
- the trace listener. If null is supplied, the call has no effect.public void removeTraceListener(TraceListener trace)
trace
- the trace listener.public void setPreparedStylesheet(PreparedStylesheet sheet)
This method is intended for internal use only.
sheet
- the compiled stylesheetpublic void setExecutable(Executable exec)
This method is intended for internal use only
exec
- the Executablepublic void initializeController() throws XPathException
XPathException
public void defineGlobalParameters() throws XPathException
setParameter(java.lang.String, java.lang.Object)
. It checks that all required parameters have been supplied, and places
the values of the parameters in the Bindery to make them available for use during the query or
transformation.
This method is intended for internal use only
XPathException
public void allocateGlobalVariables(int numberOfVariables)
For internal use only.
numberOfVariables
- the number of global variables for which space is requiredpublic Object getUserData(Object key, String name)
This method is intended primarily for internal use, though it may also be used by advanced applications.
key
- an object acting as a key for this user data value. This must be equal
(in the sense of the equals() method) to the key supplied when the data value was
registered using setUserData(java.lang.Object, java.lang.String, java.lang.Object)
.name
- the name of the required property
public void setUserData(Object key, String name, Object data)
This method is intended primarily for internal use, though it may also be used by advanced applications.
key
- an object acting as a key for this user data value. This must be equal
(in the sense of the equals() method) to the key supplied when the data value was
registered using setUserData(java.lang.Object, java.lang.String, java.lang.Object)
. If data for the given object and name already
exists, it is overwritten.name
- the name of the required propertydata
- the value of the required propertypublic void transform(Source source, Result result) throws TransformerException
transform
in class Transformer
source
- The input for the source tree. May be null if and only if an
initial template has been supplied.result
- The destination for the result tree.
XPathException
- if the transformation fails. As a
special case, the method throws a TerminationException (a subclass
of XPathException) if the transformation was terminated using
xsl:message terminate="yes".
TransformerException
public NodeInfo prepareInputTree(Source source)
This method is intended for internal use.
source
- the input tree. Must be either a DOMSource or a NodeInfo
public static NodeInfo unravel(Source source, Configuration config)
Configuration.unravel(javax.xml.transform.Source)
This method is intended for internal use.
source
- the wrapped or unwrapped DOM Nodeconfig
- the Saxon configuration
public void transformDocument(NodeInfo startNode, Result result) throws TransformerException
This method is intended for internal use. External applications should use
the transform(javax.xml.transform.Source, javax.xml.transform.Result)
method, which is part of the JAXP interface. Note that
NodeInfo
implements the JAXP Source
interface, so
it may be supplied directly to the transform() method.
startNode
- A Node that identifies the source document to be
transformed and the node where the transformation should start.
May be null if the transformation is to start using an initial template.result
- The output destination
XPathException
- if any dynamic error occurs
TransformerException
public void preEvaluateGlobals(XPathContext context) throws XPathException
This method is intended for internal use.
context
- the dynamic context for evaluating the global variables
XPathException
- if a dynamic error occurs while evaluating the global variables.public Result prepareNextStylesheet(String href, String baseURI, Result result) throws TransformerException
This method is intended for internal use, to support the
saxon:next-in-chain
extension.
href
- URI of the next stylesheet to be appliedbaseURI
- base URI for resolving href if it's a relative
URIresult
- the output destination of the current stylesheet
XPathException
- if any dynamic error occurs
TransformerException
public void setParameter(String expandedName, Object value)
The following table shows some of the classes that are supported by this method. (Others may also be supported, but continued support is not guaranteed.) Each entry in the table shows first the Java class of the supplied object, and then the type of the resulting XPath value.
Java Class | XPath 2.0 type |
---|---|
String | xs:string |
Boolean | xs:boolean |
Integer | xs:integer |
Long | xs:integer |
Double | xs:double |
Float | xs:float |
BigDecimal | xs:decimal |
BigInteger | xs:integer |
Date | xs:dateTime |
Array or List of any of the above | sequence of the above |
null | empty sequence |
A node may be supplied as a NodeInfo
object, a sequence of nodes
as an array or List of NodeInfo
objects.
In addition, any object that implements the Saxon Value
interface
may be supplied, and will be used without conversion.
A node belong to an external object model (such as DOM, JDOM, or XOM) may be supplied provided (a) that the external object model is registered with the Configuration, and (b) that the node is part of a document tree that has been registered in the document pool.
setParameter
in class Transformer
expandedName
- The name of the parameter in {uri}local formatvalue
- The value object. This must follow the rules above.
Other formats in addition to those listed above may be accepted.public void setParameter(StructuredQName qName, ValueRepresentation value)
qName
- The structured representation of the parameter namevalue
- The value of the parameter, or null to remove a previously set valuepublic void clearParameters()
clearParameters
in class Transformer
public Object getParameter(String expandedName)
setParameter(java.lang.String, java.lang.Object)
method. The value
is returned exactly as supplied, that is, before any conversion to an XPath value.
getParameter
in class Transformer
expandedName
- the name of the required parameter, in
"{uri}local-name" format
public Iterator iterateParameters()
public void setCurrentDateTime(DateTimeValue dateTime) throws XPathException
Note that comparisons of date/time values currently use the implicit timezone taken from the system clock, not from the value supplied here.
dateTime
- the date/time value to be used as the current date and time
IllegalStateException
- if a current date/time has already been
established by calling getCurrentDateTime(), or by a previous call on setCurrentDateTime()
XPathException
public DateTimeValue getCurrentDateTime()
public int getImplicitTimezone()
public XPathContextMajor newXPathContext()
This method is intended for internal use.
public void setRememberedNumber(NodeInfo node, int number)
This method is strictly for internal use only.
node
- the node in questionnumber
- the number of this nodepublic int getRememberedNumber(NodeInfo node)
This method is strictly for internal use only.
node
- the node for which remembered information is required
public void setUseDocumentProjection(PathMap pathMap)
pathMap
- a path map to be used for projecting source documentspublic PathMap getPathMapForDocumentProjection()
public InstructionInfo getInstructionInfo()
This method is intended for internal use.
getInstructionInfo
in interface InstructionInfoProvider
public void setClassLoader(ClassLoader loader)
This method is for application use, but is experimental and subject to change.
loader
- the ClassLoader to be used.public ClassLoader getClassLoader()
setClassLoader(java.lang.ClassLoader)
.
If none has been supplied, return null.
This method is for application use, but is experimental and subject to change.
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |