public class XsltTransformer extends AbstractXmlTransformer
XsltTransformer performs an XSLT transform on a DOM (or other XML-ish)
object.
This transformer maintains a pool of Transformer objects to speed up processing of concurrent requests.
The pool can be configured using setMaxIdleTransformers(int).
Parameter can also be set as part of the transformation context and these can be mapped to content in the current message using
property extractors or can be fixed values.
For example, the current event's message has a property named "myproperty", also you want to generate a uuid as a
parameter. To do this you can define context properties that can provide an expression to be evaluated on the current
message.
Example Configuration:
<mxml:xslt-transformer name="MyXsltTransformer" xslFile="myXslFile.xsl">
<context-property name="myParameter" value="#[head:myproperty]"/>
<context-property name="myParameter2" value="#[function:uuid]"/>
</mxml:xslt-transformer>
The 'header' expression pulls a header from the current message and 'function' can execute a set of arbitrary functions. You can also pass in static values by ommitting the expression prefix '#['.
In addition to being able to pass in an XSLT file you can also define templates inline. For example -
<mxml:xslt-transformer name="MyXsltTransformer">
<mxml:xslt-text>
</mxml:xslt-text>
| Modifier and Type | Class and Description |
|---|---|
protected class |
XsltTransformer.DefaultErrorListener |
protected class |
XsltTransformer.PooledXsltTransformerFactory |
AbstractXmlTransformer.ResultHolder| Modifier and Type | Field and Description |
|---|---|
static String |
PREFERRED_TRANSFORMER_FACTORY |
protected org.apache.commons.pool.impl.GenericObjectPool |
transformerPool |
encoding, endpoint, logger, mimeType, MULE_MESSAGE_DATA_TYPE, muleContext, name, returnType, sourceTypesPHASE_NAMEPHASE_NAMEPROPERTY_NAME| Constructor and Description |
|---|
XsltTransformer() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
doInitialise() |
protected void |
doTransform(MuleMessage message,
String outputEncoding,
Source sourceDoc,
Result result) |
protected Object |
evaluateTransformParameter(String key,
Object value,
MuleMessage message)
Returns the value to be set for the parameter.
|
Map<String,Object> |
getContextProperties()
Gets the parameters to be used when applying the transformation
|
protected Object |
getDelayedResult(MuleMessage message,
String outputEncoding,
Source sourceDoc) |
int |
getMaxActiveTransformers() |
int |
getMaxIdleTransformers() |
protected StreamSource |
getStreamSource()
Returns the StreamSource corresponding to xslt (which should have been loaded
in
AbstractXmlTransformer.initialise()). |
URIResolver |
getUriResolver() |
String |
getXslFile() |
String |
getXslt() |
String |
getXslTransformerFactory()
Returns the name of the currently configured javax.xml.transform.Transformer
factory class used to create XSLT Transformers.
|
void |
setContextProperties(Map<String,Object> contextProperties)
Sets the parameters to be used when applying the transformation
|
void |
setMaxActiveTransformers(int maxActiveTransformers)
Sets the the current maximum number of active transformer objects allowed in the
pool
|
void |
setMaxIdleTransformers(int maxIdleTransformers)
Sets the the current maximum number of idle transformer objects allowed in the pool
|
void |
setUriResolver(URIResolver uriResolver) |
void |
setXslFile(String xslFile) |
void |
setXslt(String xslt) |
void |
setXslTransformerFactory(String xslTransformerFactory)
Configures the javax.xml.transform.Transformer factory class
|
Object |
transformMessage(MuleMessage message,
String putputEncoding)
Transform, using XSLT, a XML String to another String.
|
convertToBytes, convertToText, convertToText, getAcceptExternalEntities, getOutputEncoding, getResultHolder, getXMLInputFactory, getXMLOutputFactory, initialise, isUseStaxSource, setAcceptExternalEntities, setOutputEncoding, setUseStaxSource, setXMLInputFactory, setXMLOutputFactory, writeToStreamcheckReturnClass, doTransform, isSourceDataTypeSupported, transform, transform, transformdispose, generateTransformerName, getEncoding, getEncoding, getEndpoint, getMimeType, getName, getReturnClass, getReturnDataType, getSourceDataTypes, getSourceTypes, isAcceptNull, isAllowNullReturn, isConsumed, isIgnoreBadInput, isSourceDataTypeSupported, isSourceTypeSupported, isSourceTypeSupported, process, registerSourceType, registerSourceType, setAllowNullReturn, setEncoding, setEndpoint, setIgnoreBadInput, setMimeType, setMuleContext, setName, setReturnClass, setReturnDataType, toString, transform, unregisterSourceType, unregisterSourceTypegetAnnotation, getAnnotations, setAnnotationsclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetEncoding, getEndpoint, getMimeType, getReturnClass, getReturnDataType, getSourceDataTypes, getSourceTypes, isAcceptNull, isIgnoreBadInput, isSourceDataTypeSupported, isSourceTypeSupported, setReturnClass, setReturnDataType, transformprocessdisposesetNamegetNamesetMuleContextsetEndpointpublic static final String PREFERRED_TRANSFORMER_FACTORY
protected final org.apache.commons.pool.impl.GenericObjectPool transformerPool
protected void doInitialise()
throws InitialisationException
doInitialise in class AbstractXmlTransformerInitialisationExceptionpublic Object transformMessage(MuleMessage message, String putputEncoding) throws TransformerException
transformMessage in class AbstractMessageTransformerTransformerExceptionprotected Object getDelayedResult(MuleMessage message, String outputEncoding, Source sourceDoc)
protected void doTransform(MuleMessage message, String outputEncoding, Source sourceDoc, Result result) throws Exception
Exceptionpublic String getXslTransformerFactory()
null if none has been
configuredpublic void setXslTransformerFactory(String xslTransformerFactory)
xslTransformerFactory - the name of the TransformerFactory class to usepublic String getXslFile()
public void setXslFile(String xslFile)
public String getXslt()
public void setXslt(String xslt)
public URIResolver getUriResolver()
public void setUriResolver(URIResolver uriResolver)
protected StreamSource getStreamSource() throws InitialisationException
AbstractXmlTransformer.initialise()).InitialisationExceptionpublic int getMaxActiveTransformers()
public void setMaxActiveTransformers(int maxActiveTransformers)
maxActiveTransformers - New maximum size to setpublic int getMaxIdleTransformers()
public void setMaxIdleTransformers(int maxIdleTransformers)
maxIdleTransformers - New maximum size to setpublic Map<String,Object> getContextProperties()
Transformer.setParameter(java.lang.String,
java.lang.Object)public void setContextProperties(Map<String,Object> contextProperties)
contextProperties - a map of the parameter names and associated valuesTransformer.setParameter(java.lang.String,
java.lang.Object)protected Object evaluateTransformParameter(String key, Object value, MuleMessage message) throws TransformerException
key - the name of the parameter. The name isn't used for this
implementation but is exposed as a param for classes that may need
it.value - the value of the paramterTransformerExceptionCopyright © 2003–2016 MuleSoft, Inc.. All rights reserved.