This topic contains the following sections:
Use the XMLTransformation node to transform an XML message to another form of XML message, according to the rules provided by an XSL (eXtensible Stylesheet Language) style sheet.
You can specify the location of the style sheet to apply to this transformation in one of three ways:
An XSLT (eXtensible Stylesheet Language for Transformations)
compiler is used for the transformation if the style sheet is not embedded
within the message and the node cache level (node property Stylesheet Cache Level) is greater
than 0. If the XSLT is cached, this gives a performance improvement because
the XSLT is not parsed every time it is used.
The XMLTransformation node is represented in the workbench by the following icon:
For an example of how to use this node, consider two news organizations that exchange information on a regular basis. One might be a television station, the other a newspaper. Although the information is similar, the vocabulary used by the two is different. This node can transform one format to the other by applying the rules of the specified style sheet. If you specify the style sheet in the message (either the XML data or the LocalEnvironment), the same node can perform both transformations.
Look at XMLT sample for more details about how to use the XMLTransformation node.
The only exception is, when you specify a principal style sheet as the Stylesheet Name property on an XMLTransformation node, you can use an absolute path that points to the correct directory structure in the Eclipse workspace. If the principal style sheet is found, the system resets the node property automatically to the correct relative value. It also performs an automatic deployment of the principal style sheet, together with all its location-dependent descendant style sheets that are available in the relevant Eclipse workspace project. All references to the location-dependent descendant style sheets (or XML files) of a principal style sheet must be made relative to the location of their parent style sheets. For example, if style sheet, //project1/a/b.xsl references style sheet, //project1/a/c/d.xsl the reference must be changed to c/d.xsl (or ./c/d.xsl).
To deploy manually, add the files to be deployed to a broker archive (refer to Adding files to a broker archive and to Adding keywords to XSL stylesheets) and deploy the broker archive.
If a style sheet in the broker work path/XSL/external directory shares the same path and name with a deployed style sheet, the deployed style sheet is used.
When you have put an instance of the XMLTransformation node into a message flow, you can configure it. Right-click the node in the editor view and click Properties. The node's basic properties are displayed.
All mandatory properties for which you must enter a value (those that do not have a default value defined) are marked with an asterisk on the properties dialog.
Configure the XMLTransformation node as follows:
<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
Because this node was available in a SupportPac for Version 2.1, and element ComIbmXslMqsiStylesheetname was used for the name of the style sheet, the current node checks both elements. If both are present, the value in ComIbmXslXmltStylesheetname takes precedence.
You can set more than one property to the same value, although this is not recommended. If you do, the order of priority set by the node is the default order indicated above.
If you set a value of ignore, the node does not search the corresponding location for the stylesheet identification. If you set all three properties to ignore, a runtime error is generated.
If you want to specify a non-deployed style sheet using node properties, enter the required value for Stylesheet Name. This value is ignored if stylesheet information is searched for and found in a preferred location (determined by the selection priority values that you have set).
If you change a cached style sheet (by redeploying or replacing the file in the file system), the XMLTransformation node that is holding the cache replaces the cached version with the modified (latest) version before a new message is processed. However, if you are changing several style sheets, stop relevant message flows before you make any changes. If you do not stop the relevant message flows before you make the changes, the order of the changes cannot be guaranteed by running message flows and there can be incompatibility between the style sheets that are changed. You can use the mqsireload command to reload a style sheet but the command does not prevent incompatibility.
For example, to encode the output of the transformation as UTF-8, enter the value 1208 as a string in this element.
Because this node was available in a SupportPac for Version 2.1, and element ComIbmXslMqsiOutputcharset was used for the output character set, the current node checks both elements. If both are present, the value in ComIbmXslXmltOutputcharset takes precedence.
If you set a value for Output Character Set, the value that you enter must be numeric. For example, to encode the output of the transformation as UTF-16, enter 1200.
You can set more than one property to the same value, although this is not recommended. If you do, the order of priority set by the node is the default order indicated above.
If you set a value of 0, the node does not search the corresponding location for the character set identification.
If the node cannot determine the output character set from either of these two sources, either because no value is set or because the selection priorities are set to 0, the default value 1208 (UTF8) is used. (The XSL specification indicates that the output character set can be specified in the style sheet; however, the XMLTransformation node ignores this value.)
The trace information is written to a trace file XMLTTrace.log:
If you set detailed trace on for one XMLTransformation node, it is on for all nodes in the execution group.
Click Cancel to close the dialog and discard all the changes that you have made to the properties.
mqsireportproperties brokerName -e executionGroupLabel
-o ComIbmJVMManager -n jvmMaxHeapSize
mqsichangeproperties brokerName -e executionGroupLabel
-o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
replacing brokerName, executionGroupLabel, and newSize with the appropriate values.The
value that you choose for newSize is dependent on the amount
of physical memory that your computer has and how much you are using Java.
A value in the range 512 MB (536870912) to 1 GB (1073741824) is suggested.
The XMLTransformation node terminals are described in the following table.
Terminal | Description |
---|---|
In | The input terminal that accepts the message for processing by the node. |
Failure | The output terminal to which the original message is routed if an error is detected during transformation. |
Out | The output terminal to which the successfully transformed message is routed. |
The following tables describe the node properties; the column headed M indicates whether the property is mandatory (marked with an asterisk on the properties dialog if you must enter a value when no default is defined), the column headed C indicates whether the property is configurable (you can change the value when you add the message flow to the bar file to deploy it).
The XMLTransformation node Stylesheet properties are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
XML Embedded Selection Priority | Yes | No | 1 | The priority value for searching for stylesheet location information in the XML data. |
Message Environment Selection Priority | Yes | No | 2 | The priority value for searching for stylesheet location information in the LocalEnvironment folder of the current message. |
Broker Node Attribute Selection Priority | Yes | No | 3 | The priority value for searching for stylesheet location information as a property of the node |
Stylesheet Name | No | Yes | The name of the style sheet, used if the stylesheet specification is searched for in node properties. | |
Stylesheet Directory | No | Yes | The path where the style sheet is located. Used by all location methods. | |
Stylesheet Cache Level | No | No | 5 | The number of compiled or parsed stylesheets that are stored in this instance of the node. |
The XMLTransformation node Output Character Set properties are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
Message Environment Selection Priority | Yes | No | 1 | The priority value for searching for the Output Character Set ID in the LocalEnvironment folder of the current message. |
Broker Node Attribute Selection Priority | Yes | No | 2 | The priority value for searching for the Output Character Set ID as a property of the node. |
Output Character Set | No | No | The numeric value of the Output Character Set |
The XMLTransformation node Detail Trace properties are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
Trace Setting | Yes | No | Off | Whether tracing is on or off. If tracing is on, low level tracing is recorded in a file. |
The XMLTransformation node Description properties are described in the following table.
Property | M | C | Default | Description |
---|---|---|---|---|
Short Description | No | No | A brief description of the node. | |
Long Description | No | No | Text that describes the purpose of the node in the message flow. |
If the prologue of the input message body contains an XML encoding declaration, The XMLTransformation node ignores the encoding, and always uses the CodedCharSetId in the message property folder to decode the message.
Notices |
Trademarks |
Downloads |
Library |
Support |
Feedback
![]() ![]() |
ac12490_ |