本主题包含以下部分:
根据 XSL(可扩展样式表语言)样式表提供的规则,使用 XMLTransformation 节点将 XML 消息转换为另一格式的 XML 消息。
您可以使用以下三种方式中的一种,指定要应用于此转换的样式表的位置:
如果在消息中没有嵌入样式表,并且节点高速缓存级别(样式表高速缓存级别节点属性)大于 0,则将 XSLT(用于转换的可扩展样式表语言)用于转换。
XMLTransformation 节点在工作台中由以下图标表示:
有关如何使用此节点的示例,请设想两个定期交换信息的新闻组织。一个可能是电视台,而另一个是报社。尽管信息相似,但双方使用的词汇却有所不同。此节点可以通过应用指定样式表的规则,将一种格式转换为另一种格式。如果在消息中指定样式表(XML 数据或 LocalEnvironment),则同一个节点可以执行这两种转换。
请参阅 XMLT 样本获取有关如何使用 XMLTransformation 节点的更多详细信息。
将 XMLTransformation 节点的实例放入消息流中后,可以对其进行配置。右键单击编辑器视图中的节点,然后单击属性。将显示该节点的基本属性。
必须为其输入值的所有必要属性(不含已定义缺省值)在属性对话框上都用星号进行标记。
如下所示,配置 XMLTransformation 节点:
<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
因为在 SupportPac for V2.1 中提供此节点,且对样式表名称使用了 ComIbmXslMqsiStylesheetname 元素,所以当前节点将同时检查这两个元素。如果这两个元素都存在,则优先采用 ComIbmXslXmltStylesheetname 中的值。
尽管不建议,您仍可以将多个属性设置为同一个值。如果您进行了设置,则节点设置的优先级顺序是上面表明的缺省顺序。
如果设置值为 ignore,则节点不搜索相应位置来获取样式表标识。如果将所有三个属性都设置为 ignore,则生成运行时错误。
如果要使用节点属性指定非部署样式表,请为样式表名称输入必需的值。如果进行搜索并在首选位置(由您设置的选择优先级值确定)中找到样式表信息,则忽略此值。
例如,要按 UTF-8 编码转换的输出,输入值 1208 作为此元素中的字符串。
因为在 SupportPac for V2.1 中提供此节点,且对输出字符集使用了 ComIbmXslMqsiOutputcharset 元素,所以当前节点将同时检查这两个元素。如果这两个元素都存在,则优先采用 ComIbmXslXmltOutputcharset 中的值。
如果为输出字符集设置值,您输入的值必须是数字。例如,要按 UTF-16 编码转换的输出,输入 1200。
尽管不建议,您仍可以将多个属性设置为同一个值。如果您进行了设置,则节点设置的优先级顺序是上面表明的缺省顺序。
如果您设置值 0,则节点不搜索相应位置来获取字符集标识。
如果因为没有设置任何值,或因为选择优先级被设置为 0,节点从这两个源都无法确定输出字符集,则使用缺省值 1208(UTF8)。(XSL 规范指示可以在样式表中指定输出字符集;但 XMLTransformation 节点忽略此值。)
跟踪信息将写至跟踪文件 XMLTTrace.log:
如果将 XMLTransformation 节点的详细信息跟踪设置为 on,则它对执行组中的所有节点都为 on。
单击取消关闭对话框,并废弃对属性所作的所有更改。
mqsireportproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize
mqsichangeproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
以适当的值替换 brokerName、executionGroupLabel 和 newSize。应该为 newSize 选择的值视您的计算机具有的物理内存数量和您正在使用 Java 的量而定。建议使用 512 MB 到 1 GB 范围内的值。
下表中描述了 XMLTransformation 节点终端。
终端 | 描述 |
---|---|
In | 接受由节点处理的消息的输入终端。 |
Failure | 如果在转换期间检测到故障,则这是原始消息路由到的输出终端。 |
Out | 这是成功转换的消息路由到的输出终端。 |
下表描述该节点的属性;标题为 M 的列表示属性是否必要(如果在未定义缺省值时必须输入值,则属性对话框上以星号标注),标题为 C 的列表示属性是否可配置(将消息流添加到 BAR 文件以部署它时可以更改该值)。
下表中描述了 XMLTransformation 节点样式表属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
嵌入 XML 选择优先级 | 是 | 否 | 1 | 在 XML 数据中搜索样式表位置信息的优先级值。 |
消息环境选择优先级 | 是 | 否 | 2 | 在当前消息的 LocalEnvironment 文件夹中搜索样式表位置信息的优先级值。 |
代理节点属性选择优先级 | 是 | 否 | 3 | 作为节点属性搜索样式表位置信息的优先级值。 |
样式表名 | 否 | 是 | 样式表的名称,当在节点属性中搜索样式表规范时使用。 | |
样式表目录 | 否 | 是 | 样式表所在的路径。由所有位置方法使用。 | |
样式表高速缓存级别 | 否 | 否 | 5 | 在此节点实例中存储的已编译或已解析样式表数量。 |
下表中描述了 XMLTransformation 节点输出字符集属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
消息环境选择优先级 | 是 | 否 | 1 | 在当前消息的 LocalEnvironment 文件夹中搜索输出字符集标识的优先级值。 |
代理节点属性选择优先级 | 是 | 否 | 2 | 作为节点属性搜索输出字符集标识的优先级值。 |
输出字符集 | 否 | 否 | 输出字符集的数值 |
下表中描述了 XMLTransformation 节点详细信息跟踪属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
跟踪设置 | 是 | 否 | Off | 跟踪是打开还是关闭。如果跟踪为打开,则在文件中记录低级别跟踪。 |
下表中描述了 XMLTransformation 节点的描述属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
简短描述 | 否 | 否 | 节点的简短描述。 | |
详细描述 | 否 | 否 | 描述消息流中节点用途的文本。 |
如果输入消息体的序言包含 XML 编码声明,XMLTransformation 节点将忽略该编码,并始终使用消息属性文件夹中的 CodedCharSetId 来解码消息。