このトピックには、以下のセクションが含まれています。
XSL (eXtensible Stylesheet Language) スタイル・シートで規定されている規則によれば、XMLTransformation ノードは、XML メッセージを XML メッセージの別のフォームに変換するために使用します。
以下の 3 つの方法のいずれかで、この変換に適用されるスタイル・シートの位置を指定することができます。
スタイル・シートがメッセージ内に組み込まれておらず、ノード・キャッシュ・レベル (ノード・プロパティー 「スタイルシート・キャッシュ・レベル 」) が 0 より大きい場合は、変換に XSLT (eXtensible Stylesheet Language for Transformations) コンパイラーが使用されます。XSLT は使用するたびに構文解析されるわけではないので、XSLT がキャッシュに入れられるとパフォーマンスが向上します。
ワークベンチでは、XMLTransformation ノードは次のアイコンで表されます。
このノードの使用方法の例については、2 つのニュース組織が定期的に情報を交換する方法を考慮してください。 1 つの組織はテレビ局であり、もう一方は新聞社とします。 情報は類似していますが、これら 2 つの組織で使用される用語は異なっています。 このノードは、指定されたスタイル・シートの規則を適用することによって、ある形式を別の形式に変換できます。 メッセージ内にスタイル・シート (XML データまたは LocalEnvironment のいずれか) を指定する場合、同じノードが両方の変換を実行することができます。
XMLTransformation ノードの使用法の詳細については、XMLT サンプルを参照してください。
唯一の例外は、XMLTransformation ノードの「スタイルシート名」プロパティーとして基本スタイル・シートを指定する場合です。 その場合、Eclipse ワークスペース内の正しいディレクトリー構造を指す絶対パスを使用できます。基本スタイル・シートが見つかった場合、システムはノード・プロパティーを自動的に正しい相対値にリセットします。そして基本スタイル・シート、および関連する Eclipse ワークスペース・プロジェクトで使用可能なその基本スタイル・シートのロケーション依存の子孫スタイル・シートすべての自動デプロイメントを実行します。基本スタイル・シートのロケーション依存の子孫スタイル・シート (または XML ファイル) への参照はすべて、その親スタイル・シートのロケーションに対する相対参照とする必要があります。例えば、スタイル・シート //project1/a/b.xsl が //project1/a/c/d.xsl というスタイル・シートを参照する場合、この参照は c/d.xsl (または ./c/d.xsl) に変更しなければなりません。
手動デプロイを行うには、デプロイされるファイルをブローカー・アーカイブに追加し (ブローカー・アーカイブへのファイルの追加およびXSL スタイルシートへのキーワードの追加を参照)、ブローカー・アーカイブをデプロイします。
broker work path/XSL/external ディレクトリー中のスタイル・シートが、デプロイされるスタイル・シートと同じパスと名前を共有している場合は、デプロイされるスタイル・シートが使用されます。
XMLTransformation ノードのインスタンスをメッセージ・フローに入れると、XMLTransformation ノードを構成することができます。エディター・ビューでノードを右クリックし、「プロパティー」をクリックします。 ノードの基本プロパティーが表示されます。
値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、プロパティー・ダイアログにアスタリスクが表示されます。
以下のように XMLTransformation ノードを構成します。
<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
このノードはバージョン 2.1 の SupportPac で使用可能であり、スタイル・シートの名前としてエレメント ComIbmXslMqsiStylesheetname が使用されていたため、現行ノードは両方のエレメントをチェックします。 両方が存在する場合、ComIbmXslXmltStylesheetname 内の値が優先されます。
推奨されていませんが、複数のプロパティーを同じ値に設定することができます。そのようにすると、ノードによって設定される優先順位の順序は、上記に示されているようにデフォルトの順序になります。
"ignore" という値を設定する場合、ノードは、スタイルシート ID の対応する位置を検索しません。 3 つのプロパティーすべてを "ignore" に設定すると、実行時エラーが生成されます。
ノード・プロパティーを使用して非デプロイ・スタイル・シートを指定する場合には、「スタイルシート名」に必要な値を入力します。 スタイルシート情報が検索され、希望する位置 (設定した選択優先順位値によって判別される) に見つかる場合、この値は無視されます。
キャッシュに入れられたスタイル・シートを (ファイル・システムでファイルを再デプロイするか置き換えて) 変更すると、キャッシュを保持する XMLTransformation ノードは、新しいメッセージを処理する前に、キャッシュに入れられたバージョンを変更された (最新の) バージョンに置き換えます。しかし、複数のスタイル・シートに変更を加えようとしている場合は、まず関連するメッセージ・フローを停止してから変更を加えてください。変更を加える前に関連するメッセージ・フローを停止しないと、実行中のメッセージ・フローで変更順序を保証できないので、変更を加えるスタイル・シートの間で非互換性が生じる可能性があります。mqsireload コマンドを使用してスタイル・シートを再ロードできますが、このコマンドにより非互換性が生じなくなるわけではありません。
例えば、変換の出力を utf-8 としてエンコードするには、このエレメント内のストリングとして 1208 を入力します。
このノードはバージョン 2.1 の SupportPac で使用可能であり、出力文字セットに対してエレメント ComIbmXslMqsiOutputcharset が使用されていたため、現行ノードは両方のエレメントをチェックします。 両方が存在する場合、ComIbmXslXmltOutputcharset 内の値が優先されます。
「出力文字セット」に値を設定する場合、入力する値は数値でなければなりません。例えば、変換の出力を UTF-16 としてエンコードするには、1200 を入力します。
推奨されていませんが、複数のプロパティーを同じ値に設定することができます。そのようにすると、ノードによって設定される優先順位の順序は、上記に示されているようにデフォルトの順序になります。
0 という値を設定する場合、ノードは文字セット ID の対応する位置を検索しません。
値が設定されていないか、選択優先順位が 0 に設定されているために、ノードがこれらの 2 つのソースのどちらからも出力文字セットを判別できない場合は、デフォルト値 1208 (UTF8) が使用されます。(XSL 仕様は、出力文字セットをスタイル・シートに指定できることを示しています。 ただし、XMLTransformation ノードはこの値を無視します。)
トレース情報は、トレース・ファイル XMLTTrace.log に書き込まれます。
1 つの XMLTransformation ノードに関して詳細トレースをオンに設定すると、実行グループ内のすべてのノードに対してオンになります。
「キャンセル」をクリックすると、ダイアログを閉じてプロパティーに対して行った変更をすべて破棄します。
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 (536870912) から 1 GB (1073741824) の範囲の値をお勧めします。
XMLTransformation ノード・ターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | 変換でエラーが検出された場合に、オリジナル・メッセージがルーティングされる出力ターミナル。 |
Out | 正常に変換されたメッセージがルーティングされる出力ターミナル。 |
以下の表でノードのプロパティーを説明します。M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、プロパティー・ダイアログにアスタリスクのマークが付きます)。C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを bar ファイルに追加してデプロイするとき、値を変更できます)。
XMLTransformation ノードの「スタイルシート」プロパティーについては、以下の表で説明しています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
XML 組み込み選択優先順位 | はい | いいえ | 1 | XML データ内のスタイルシート位置情報を検索するための優先順位の値。 |
メッセージ環境選択優先順位 | はい | いいえ | 2 | 現行メッセージの LocalEnvironment フォルダー内のスタイルシート位置情報を検索するための優先順位の値 |
ブローカー・ノード属性選択優先順位 | はい | いいえ | 3 | ノードのプロパティーとしてスタイルシート位置情報を検索するための優先順位の値 |
スタイルシート名 | いいえ | はい | スタイル・シートの名前。 スタイルシート仕様がノード・プロパティー内で検索される場合に使用されます。 | |
スタイルシート・ディレクトリー | いいえ | はい | スタイル・シートが位置付けられているパス。すべての位置メソッドによって使用されます。 | |
スタイルシート・キャッシュ・レベル | いいえ | いいえ | 5 | このノードのインスタンス内に保管されているコンパイル済みまたは解析済みのスタイルシートの数。 |
XMLTransformation ノードの「出力文字セット」プロパティーについては、以下の表で説明しています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
メッセージ環境選択優先順位 | はい | いいえ | 1 | 現行メッセージの LocalEnvironment フォルダー内の出力文字セット ID を検索するための優先順位の値。 |
ブローカー・ノード属性選択優先順位 | はい | いいえ | 2 | ノードのプロパティーとして出力文字セット ID を検索するための優先順位の値。 |
出力文字セット | いいえ | いいえ | 出力文字セットの数値。 |
XMLTransformation ノードの「詳細のトレース」プロパティーについては、以下の表で説明しています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
トレースの設定 | はい | いいえ | Off | トレースがオンかオフか。 トレースがオンである場合、ファイル内で低レベルのトレースが記録されます。 |
XMLTransformation ノードの「説明」プロパティーについては、以下の表で説明しています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
入力メッセージ本体の先頭に XML エンコード方式の宣言が含まれる場合、XMLTransformation ノードはエンコード方式を無視し、常にメッセージ・プロパティー・フォルダーの CodedCharSetId を使用してメッセージをデコードします。