What is the XSLTSE?
The XSLT Service Engine is a JBI component capable of provisioning XSL stylesheets as web services. Using a custom configuration file (described
here), XSL stylesheets are mapped as service endpoints and deployed as JBI service units. An XSLT endpoint can even be chained, invoking other service endpoints as needed.
Using the XSLTSE
Features
The XSLT Service Engine supports the following features:
- XSL-based Transformation Processes: a transformation process, described in detail on the TransformSL wiki page, is a list of activities executed sequentially. The supported activities are transform and invoke, though more may be added later.
- XSL Parameters: just as any XSL stylesheet can be supplied values for global parameters, so can any XSL stylesheet deployed as part of a transformation process. Parameter values can be taken from message exchanges involved in the process at runtime or specified as literal XML content in a file or in the transformation process itself. Please see the TransformSL Param wiki page for more information.
- Multiple invocations and transformations: as a by-product of incorporating the transformation process into XsltSE, there is no limit on the number of transformations applied or service endpoints invoked during a process' execution.
- Limited Variable Support: any message exchange as itself or by one its parts can be expressed using variable names. These variables are used as the source and result for transformations as well as indicating the input message for invoked service endpoints. All TransformSL variables follow the BPEL convention: $varName.partName. For more information, please see the variables wiki.
- Calling Java extension functions that are packaged in the XSLT project as Jar files: Calling Java extension functions
- Basic fault handling: add Transform activities to apply to a fault message, which is then used as a reply. Please see the XsltSE Fault Handling wiki for more information.
- Xslt 2.0 Support: Please use the latest installer or refer to the Xslt2Support wiki for more information.
Use cases
Use Cases
There are three basic usage scenarios for XsltSE:
- Request-Reply
- XML message received from NMR
- Message is transformed using XSL stylesheet
- Transformed message sent as reply to original consumer
- One-way Service Bridge ("Filter One-way")
- XML message received from NMR
- Message is transformed using XSL stylesheet
- XsltSE acts as service consumer, sending transformed message sent as input to service endpoint
- Two-way Service Bridge ("Filter Request-Reply")
- XML message received from NMR
- Message is transformed using XSL stylesheet
- XsltSE acts as service consumer, sending transformed message sent as input to service endpoint
- Receive reply from consumed service
- Reply is transformed using second XSL stylesheet
- Second transformation result sent as reply to original consumer
For details about configuring an XSLT Project to support these use cases, see the Transformmap wiki.
System requirements and dependencies
XsltSE has dependencies on two JBI Shared Libraries:
- Sun WSDL Extensions
- Saxon Library
Trouble?
Please post questions on the
OpenESB mailing list
. File bugs in the
OpenESB issue tracker
; use the XSLTSE category.
Evolution of the XSLTSE
What is new?
Team
Developing the XSLTSE
Functional spec
For a summary of TransformSL wiki pages, please see the TransformSL Links wiki.
XSLTSE Source Code
The source code is in the open-jbi-components project.
This page (revision-48) was last changed on
10-Jun-09 14:29 PM, -0700
by Vitaly Bychkov.
This page was created on
20-Nov-06 12:21 PM, -0800 by KevanSimpson.
More info...