: Interface Templates

Interface Templates

All Known Implementing Classes:

public interface Templates

An object that implements this interface is the runtime representation of processed transformation instructions.

Templates must be threadsafe for a given instance over multiple threads running concurrently, and may be used multiple times in a given session.

Method Summary
 java.util.Properties getOutputProperties()
          Get the static properties for xsl:output.
 Transformer newTransformer()
          Create a new transformation context for this Templates object.

Method Detail


public Transformer newTransformer()
                           throws TransformerConfigurationException
Create a new transformation context for this Templates object.
A valid non-null instance of a Transformer.
TransformerConfigurationException - if a Transformer can not be created.


public java.util.Properties getOutputProperties()
Get the static properties for xsl:output. The object returned will be a clone of the internal values. Accordingly, it can be mutated without mutating the Templates object, and then handed in to Transformer.setOutputProperties(java.util.Properties).

The properties returned should contain properties set by the stylesheet, and these properties are "defaulted" by default properties specified by section 16 of the XSL Transformations (XSLT) W3C Recommendation. The properties that were specifically set by the stylesheet should be in the base Properties list, while the XSLT default properties that were not specifically set should be in the "default" Properties list. Thus, getOutputProperties().getProperty(String key) will obtain any property in that was set by the stylesheet, or the default properties, while getOutputProperties().get(String key) will only retrieve properties that were explicitly set in the stylesheet.

For XSLT, Attribute Value Templates attribute values will be returned unexpanded (since there is no context at this point). The namespace prefixes inside Attribute Value Templates will be unexpanded, so that they remain valid XPath values. (For XSLT 1.0, this is not a problem since Attribute Value Templates are not allowed for xsl:output attributes. However, the will be allowed in versions after 1.1.)

A Properties object, never null.