net.sf.saxon
public class Controller extends Transformer
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.
Since: 8.4
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 Controller.
|
Configuration | getConfiguration()
Get the Configuration associated with this Controller. |
Item | getContextForGlobalVariables()
Get the item used as the context for evaluating global variables. |
String | getCookedBaseOutputURI()
Get the base output URI after processing. |
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 |
KeyManager | getKeyManager()
Get the KeyManager.
|
Receiver | getMessageEmitter()
Get the Receiver used for xsl:message output. |
TreeModel | getModel()
Get the tree model that will be used. |
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.
|
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. |
int | getSchemaValidationMode()
Ask whether source documents loaded using the doc(), document(), and collection()
functions, or supplied as a StreamSource or SAXSource to the transform() or addParameter() method
should be subjected to schema validation
|
URIResolver | getStandardURIResolver()
Get the fallback URI resolver. |
PrintStream | getTraceFunctionDestination()
Get the destination for output from the fn:trace() function. |
TraceListener | getTraceListener()
Get the TraceListener. |
int | getTreeModel()
Get the tree data model to use. |
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
|
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, when running XQuery.
|
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 | setModel(TreeModel model)
Set the tree model to use. |
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 | 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 | setSchemaValidationMode(int validationMode)
Say whether source documents loaded using the doc(), document(), and collection()
functions, or supplied as a StreamSource or SAXSource to the transform() or addParameter() method,
should be subjected to schema validation. |
void | setThereHasBeenAnExplicitResultDocument()
Set that an explicit result tree has been written using xsl:result-document |
void | setTraceFunctionDestination(PrintStream stream)
Set the destination for output from the fn:trace() function.
|
void | setTraceListener(TraceListener listener)
Set a TraceListener, replacing any existing TraceListener
This method has no effect unless the stylesheet or query was compiled with tracing enabled. |
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. |
void | transformStream(Source source, Mode mode, Result result)
Transform a source XML document supplied as a stream, in streaming mode. |
Parameters: config The Configuration used by this Controller
Parameters: config The Configuration used by this Controller executable The executable used by this Controller
Parameters: trace the trace listener. If null is supplied, the call has no effect.
Since: 8.4
Parameters: uri A URI that is not available as an output destination
For internal use only.
Parameters: numberOfVariables the number of global variables for which space is required
Parameters: size the estimated size of the output sequence
Returns: SequenceOutputter the allocated SequenceOutputter
Parameters: uri the URI to be used as the output destination
Returns: true if the URI is available for use; false if it has already been used.
This method is intended for internal use only.
This method is intended for internal use only
This returns the value set using the Controller method. If no value has been set explicitly, then the method returns null if called before the transformation, or the computed default base output URI if called after the transformation.
The base output URI is used for resolving relative URIs in the href
attribute
of the xsl:result-document
instruction.
Returns: the base output URI
Since: 8.4
This method is intended for internal use only.
Returns: the Bindery (in which values of all variables are held)
This method is for application use, but is experimental and subject to change.
Returns: the ClassLoader in use.
Returns: the Configuration object
Since: 8.4
Returns: the context item for evaluating global variables, or null if there is none
Since: 8.7
Returns: the base output URI after processing.
Returns: Get the current date and time. This will deliver the same value for repeated calls within the same transformation
This method is intended for internal use only.
Returns: the source document pool
Returns: the ErrorListener in use
This method is intended for internal use only.
Returns: the Executable (which represents the compiled stylesheet)
Returns: the implicit timezone as an offset in minutes
Returns: the initial context item. Note that in XSLT this must be a node, but in XQuery it may also be an atomic value.
Since: 8.7
Returns: the initial mode, as a name in Clark format
Returns: the name of the initial template, as an expanded name in Clark format if set, or null otherwise
Since: 8.7
This method is intended for internal use only.
Returns: the KeyManager, which holds details of all key declarations
Returns: the Receiver being used for xsl:message output
Since: 8.4; changed in 8.9 to return a Receiver rather than an Emitter
Returns: typically one of the constants TINY_TREE, TINY_TREE_CONDENSED, or LINKED_TREE. It is also possible to use a user-defined tree model.
Since: 9.2
Returns: the name pool in use
Since: 8.4
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.
Returns: the output properties being used for the transformation, including properties defined in the stylesheet for the unnamed output format
Since: 8.4
See Also: SaxonOutputKeys
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.
Parameters: name the name of the requested property
Returns: the value of the requested property
Since: 8.4
See Also: SaxonOutputKeys
Returns: the user-supplied URI resolver if there is one, or the system-defined one otherwise.
Since: 8.4
See Also: Controller
Parameters: expandedName the name of the required parameter, in "{uri}local-name" format
Returns: the value of the parameter, if it exists, or null otherwise
Returns: the path map to be used for document projection, if one has been supplied; otherwise null
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.
Returns: the Result object supplied as the principal result destination.
Returns: the current policy. If none has been set with this Controller, the value registered with the Configuration is returned.
Since: 8.7.1
This method is strictly for internal use only.
Parameters: node the node for which remembered information is required
Returns: the number of this node if known, else -1.
This method is intended for internal use only.
Returns: the Rule Manager, used to hold details of template rules for all modes
Returns: the resolver for references to schema documents
Returns: the schema validation mode previously set using setSchemaValidationMode(), or the default mode STRIP otherwise.
This method is intended for internal use only.
Returns: the the system-defined URIResolver
Returns: the PrintStream to which trace output will be sent. If no explicitly destination has been set, returns System.err. If the destination has been set to null to suppress trace output, returns null.
Since: 9.1
Returns: the TraceListener used for XSLT or XQuery instruction tracing
Deprecated: since 9.2: use Controller
Get the tree data model to use. This affects all source documents subsequently constructed using a Builder obtained from this Controller. This includes a document built from a StreamSource or SAXSource supplied as a parameter to the Controller method.Returns: model the tree model: LINKED_TREE, TINY_TREE, or TINY_TREE_CONDENSED
Since: 9.1 (Condensed tinytree added in 9.2)
See Also: Builder
Returns: the registered UnparsedTextURIResolver
Since: 8.9
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.
Returns: the user-supplied URI resolver if there is one, or null otherwise.
This method is intended primarily for internal use, though it may also be used by advanced applications.
Parameters: 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 Controller. name the name of the required property
Returns: the value of the required property
Returns: true if the transformation has evaluated an xsl:result-document instruction
Returns: true if tracing is active, false otherwise
Since: 8.4
Parameters: 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.
Returns: true if the URI is available for use. Note that this function is not "stable": it may return different results for the same URI at different points in the transformation.
Returns: an Iterator whose items are strings in the form of Clark names, that is {uri}local
Returns: an instance of the Builder for the chosen tree model
Since: 8.4
This method is intended for internal use only.
Parameters: 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
Returns: a CharacterMapExpander if one is required, or null if not (for example, if the useMaps argument is an empty string).
Throws: XPathException if a name in the useMaps property cannot be resolved to a declared character map.
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
Returns: a newly constructed PipelineConfiguration holding a reference to this Controller as well as other configuration information.
xsl:strip-space
and xsl:preserve-space
Configuration.
Parameters: 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.
Returns: the required Stripper. A Stripper may be used in two ways. It acts as a filter applied to an event stream, that can be used to remove the events representing whitespace text nodes before they reach a Builder. Alternatively, it can be used to define a view of an existing tree in which the whitespace text nodes are dynamically skipped while navigating the XPath axes.
Since: 8.4 - Generalized in 8.5 to accept any Receiver as an argument
This method is intended for internal use.
Returns: the new XPathContext
Parameters: pause true if tracing is to pause; false if it is to resume
Since: 8.4
This method is intended for internal use.
Parameters: context the dynamic context for evaluating the global variables
Throws: XPathException if a dynamic error occurs while evaluating the global variables.
This method is intended for internal use.
Parameters: source the input tree. Must be either a DOMSource or a NodeInfo
Returns: the NodeInfo representing the input node, suitably wrapped.
This method is intended for internal use, to support the
saxon:next-in-chain
extension.
Parameters: href URI of the next stylesheet to be applied baseURI base URI for resolving href if it's a relative URI result the output destination of the current stylesheet
Returns: a replacement destination for the current stylesheet
Throws: XPathException if any dynamic error occurs
This method is intended for internal use only.
Parameters: err An exception holding information about the error
Throws: XPathException if the error listener decides not to recover from the error
This method is intended for internal use only.
Parameters: doc the root node of the document to be added systemId the document-URI property of this document
Parameters: trace the trace listener.
Since: 8.4
Parameters: uri A URI that is being made available as an output destination
Parameters: err the error to be reported
Reset this Transformer
to its original configuration.
Transformer
is reset to the same state as when it was created with
javax.xml.transform.TransformerFactory#newTransformer(),
javax.xml.transform.TransformerFactory#newTransformer(javax.xml.transform.Source source) or
javax.xml.transform.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 Controller as well.
The reset Transformer
is not guaranteed to have the same javax.xml.transform.URIResolver
or javax.xml.transform.ErrorListener Object
s, e.g. Object#equals(Object obj).
It is guaranteed to have a functionally equal URIResolver
and ErrorListener
.
Since: 1.5
Parameters: out the SequenceOutputter that is available for reuse
This defaults to the system ID of the Result object for the principal output of the transformation if this is known; if it is not known, it defaults to the current directory.
The base output URI is used for resolving relative URIs in the href
attribute
of the xsl:result-document
instruction.
Parameters: uri the base output URI
Since: 8.4
This method is for application use, but is experimental and subject to change.
Parameters: loader the ClassLoader to be used.
Note that comparisons of date/time values currently use the implicit timezone taken from the system clock, not from the value supplied here.
Parameters: dateTime the date/time value to be used as the current date and time
Throws: IllegalStateException if a current date/time has already been established by calling getCurrentDateTime(), or by a previous call on setCurrentDateTime()
Parameters: listener the ErrorListener to be used
This method is intended for internal use only
Parameters: exec the Executable
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 Controller 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.
Parameters: item The initial context item.
Since: 8.7
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.
Parameters: 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" otherwise. If the value is null or zero-length, the initial mode is reset to the unnamed default mode.
Since: 8.4
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.
Note that any parameters supplied using Controller are used as the values of global stylesheet parameters. There is no way to supply values for local parameters of the initial template.
Parameters: expandedName The expanded name of the template in {uri}local format, or null or a zero-length string to indicate that there should be no initial template.
Throws: XPathException if there is no named template with this name
Since: 8.4
Recent versions of the JAXP interface specify that by default the output of xsl:message is sent to the registered ErrorListener. Saxon does not 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 method.
Although any Receiver
can be supplied as the destination for messages,
applications may find it convenient to implement a subclass of SequenceWriter,
in which only the abstract write()
method is implemented. This will have the effect that the
write()
method is called to output each message as it is generated, with the Item
that is passed to the write()
method being the document node at the root of an XML document
containing the contents of the message.
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 TERMINATE.
Parameters: receiver The receiver to receive xsl:message output.
Since: 8.4; changed in 8.9 to supply a Receiver rather than an Emitter
Parameters: model typically one of the constants TINY_TREE, TINY_TREE_CONDENSED, or LINKED_TREE. It is also possible to use a user-defined tree model.
Since: 9.2
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.
Parameters: 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).
Throws: IllegalArgumentException if any of the properties are invalid (other than properties in a user-defined namespace)
Since: 8.4
See Also: SaxonOutputKeys
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.
As an extension to the JAXP specification, supplying the value "" (a zero-length string) for any parameter has the effect of cancelling any value defined in the stylesheet or query; for example setting doctype-system or doctype-public to "" causes the serializer to be run with these properties taken as absent. This rule does not apply to parameters where "" is a meaningful value, for example cdata-section-elements.
Parameters: name the name of the property value the value of the property
Throws: IllegalArgumentException if the property is invalid (except for properties in a user-defined namespace)
Since: 8.4
See Also: SaxonOutputKeys
XSLT 2.0 introduces the xsl:result-document
This method may eventually be superseded by a standard JAXP method.
Parameters: resolver An object that implements the OutputURIResolver interface, or null.
Since: 8.4
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.
Parameters: expandedName The name of the parameter in {uri}local format value The value object. This must follow the rules above. Other formats in addition to those listed above may be accepted.
Since: 8.4
Parameters: qName The structured representation of the parameter name value The value of the parameter, or null to remove a previously set value
This method is intended for internal use only.
Parameters: sheet the compiled stylesheet
Parameters: policy the recovery policy to be used. The options are RECOVER_SILENTLY, RECOVER_WITH_WARNINGS, or DO_NOT_RECOVER.
Since: 8.7.1
This method is strictly for internal use only.
Parameters: node the node in question number the number of this node
This method is intended for internal use only.
Parameters: r the Rule Manager
Parameters: resolver the resolver for references to schema documents
Parameters: validationMode the validation (or construction) mode to be used for source documents. One of STRIP, PRESERVE, STRICT, LAX
Since: 9.2
Parameters: stream the PrintStream to which trace output will be sent. If set to null, trace output is suppressed entirely. It is the caller's responsibility to close the stream after use.
Since: 9.1
This method has no effect unless the stylesheet or query was compiled with tracing enabled.
Parameters: listener the TraceListener to be set
Since: 9.2
Deprecated: since 9.2: use Controller
Set the tree data model to use. This affects all source documents subsequently constructed using a Builder obtained from this Controller. This includes a document built from a StreamSource or SAXSource supplied as a parameter to the Controller method.Parameters: model the required tree model: LINKED_TREE, TINY_TREE, or TINY_TREE_CONDENSED
Since: 8.4 (Condensed tinytree added in 9.2)
See Also: Builder
Parameters: resolver the unparsed text URI resolver to be used. This replaces any unparsed text URI resolver previously registered.
Since: 8.9
Parameters: resolver An object that implements the URIResolver interface, or null.
Parameters: pathMap a path map to be used for projecting source documents
This method is intended primarily for internal use, though it may also be used by advanced applications.
Parameters: key an object acting as a key for this user data value. This can be any object, for example a node or a string. If data for the given object and name already exists, it is overwritten. name the name of the required property data the value of the required property
Parameters: 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.
Throws: 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".
This method is intended for internal use. External applications should use
the Controller 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.
Parameters: 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
Throws: XPathException if any dynamic error occurs
This method is intended for internal use. External applications should use
the Controller 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.
Parameters: source the principal input document, supplied as a SAXSource or StreamSource mode the initial mode, which must be a streaming mode result The output destination
Throws: XPathException if any dynamic error occurs