XMLTransformation ノード

このトピックには、以下のセクションが含まれています。

目的

XSL (eXtensible Stylesheet Language) スタイル・シートで規定されている規則によれば、XMLTransformation ノードは、XML メッセージを XML メッセージの別のフォームに変換するために使用します。

以下の 3 つの方法のいずれかで、この変換に適用されるスタイル・シートの位置を指定することができます。

  1. ノード・プロパティーを使用することができます。 ノード・プロパティーを使用すると、この単一スタイル・シートで定義されている変換がこのノードで処理されるすべてのメッセージに確実に適用されます。
  2. メッセージ自体内の XML データの内容を使用することができます。 これにより、メッセージ自体が定義するスタイル・シートにしたがってメッセージが変換されます。
  3. 変更の始まりLocalEnvironment フォルダー内に値を設定することができます。XMLTransformation ノードの前にこの値を (Compute ノードなどで) 設定しなければなりません。 したがって、このメッセージに使用するスタイル・シートを判別するためにさまざまな入力データ (メッセージ・データの内容またはデータベース内の値など) を使用することができます。変更の終わり

変更の始まりスタイル・シートがメッセージ内に組み込まれておらず、ノード・キャッシュ・レベル (ノード・プロパティー 「スタイルシート・キャッシュ・レベル 」) が 0 より大きい場合は、変換に XSLT (eXtensible Stylesheet Language for Transformations) コンパイラーが使用されます。XSLT は使用するたびに構文解析されるわけではないので、XSLT がキャッシュに入れられるとパフォーマンスが向上します。変更の終わり

ワークベンチでは、XMLTransformation ノードは次のアイコンで表されます。

XMLTransformation ノード・アイコン

メッセージ・フロー内でのこのノードの使用

このノードの使用方法の例については、2 つのニュース組織が定期的に情報を交換する方法を考慮してください。 1 つの組織はテレビ局であり、もう一方は新聞社とします。 情報は類似していますが、これら 2 つの組織で使用される用語は異なっています。 このノードは、指定されたスタイル・シートの規則を適用することによって、ある形式を別の形式に変換できます。 メッセージ内にスタイル・シート (XML データまたは LocalEnvironment のいずれか) を指定する場合、同じノードが両方の変換を実行することができます。

XMLTransformation ノードの使用法の詳細については、XMLT サンプルを参照してください。

変更の始まり

デプロイされるスタイル・シートとデプロイされないスタイル・シート

XMLTransformation ノードでは、以下の 2 通りの方法でスタイル・シートを使用できます。
デプロイされるスタイル・シート
デプロイされるスタイル・シートとは、ブローカー・アーカイブ (bar) ファイルにインポートしてターゲット・システムにデプロイするスタイル・シートのことです。デプロイされるスタイル・シートは、WebSphere Message Broker によって管理されます。この方法でスタイル・シートをデプロイする機能は、バージョン 6.0 の新機能です。基本スタイル・シートとは、メッセージ・フローで参照されるルート・スタイル・シートのことです。例えば、Eclipse ワークスペースの基本スタイル・シートへの参照 C:¥¥project1¥a¥b.xsl は、a/b.xsl (または ./a/b.xsl) のように指定します。基本スタイル・シートは、その子孫のスタイル・シートを参照 (組み込みまたはインポート) できます。
デプロイされないスタイル・シート
デプロイされないスタイル・シートとは、XMLTransformation ノードがアクセスできる場所に保管されるスタイル・シートのことです。デプロイされないスタイル・シートは、WebSphere Message Broker によって管理されません。
詳しくは、スタイル・シートおよび XML ファイルのマイグレーションを参照してください。

デプロイ済みスタイル・シートまたは XML ファイルのデプロイメント

変更の始まりXMLTransformation ノードを構成する前に、スタイル・シートの扱い方について理解する必要があります。(スタイル・シートは、スタイル・シートだけでなく別の XML ファイルも参照できます。)デプロイされるスタイル・シートまたは XML ファイルを使用するには、以下のステップを行う必要があります。
  1. ファイルのファイル名拡張子が正しいことを確認する: デプロイされるスタイル・シートのファイル拡張子は、.xsl または .xslt のいずれかで、デプロイされる XML ファイルのファイル拡張子は .xml でなければなりません。
  2. ファイルを Eclipse ワークスペースにインポートする: デプロイされるスタイル・シートおよび XML ファイルはすべて、Eclipse ワークスペース・プロジェクトにインポートされなければなりません。 ロケーション依存の、デプロイされる子孫スタイル・シートまたは XML ファイルは、その親スタイル・シートに対して正しいディレクトリー構造に配置される必要があります。デプロイしたくないロケーション依存の子孫は Eclipse ワークスペースに置くべきではありません。
  3. 変更の始まりファイルへの参照がすべて相対参照になるようにする: 一般的に、デプロイされるスタイル・シートへの参照はすべて、その場所にかかわらず相対参照にする必要があります。基本スタイル・シートへの参照は、関連 Eclipse ワークスペース・プロジェクトのルートに対して相対的でなければなりません。

    唯一の例外は、XMLTransformation ノードの「スタイルシート名」プロパティーとして基本スタイル・シートを指定する場合です。 その場合、Eclipse ワークスペース内の正しいディレクトリー構造を指す絶対パスを使用できます。基本スタイル・シートが見つかった場合、システムはノード・プロパティーを自動的に正しい相対値にリセットします。そして基本スタイル・シート、および関連する Eclipse ワークスペース・プロジェクトで使用可能なその基本スタイル・シートのロケーション依存の子孫スタイル・シートすべての自動デプロイメントを実行します。基本スタイル・シートのロケーション依存の子孫スタイル・シート (または XML ファイル) への参照はすべて、その親スタイル・シートのロケーションに対する相対参照とする必要があります。例えば、スタイル・シート //project1/a/b.xsl//project1/a/c/d.xsl というスタイル・シートを参照する場合、この参照は c/d.xsl (または ./c/d.xsl) に変更しなければなりません。

    変更の終わり
  4. デプロイされない子スタイル・シートまたは XML ファイルを扱う: スタイル・シートは他のスタイル・シートを参照することができます。デプロイされない、相対的に参照される子スタイル・シート (または XML ファイル) がある場合 (その親はデプロイされている)、子スタイル・シートが broker work path/XSL/external (broker work path/XML/external) の下の正しい場所に配置されるようにしてください。ブローカーは自動的に、実行グループがデプロイするストレージ・ツリー、 broker work path/XSL/external、および broker work path/XML/external ツリーをそれぞれ相互に関連付けます。これはつまり、例えばブローカーのデプロイ済みストレージの中にデプロイされる基本スタイル・シート a/style.xsl にある文書 (b/c.xml) が見つからない場合に、ブローカーが b/c.xml の参照を求めて broker work path/XML/external/a/b ディレクトリー内の検索を自動的に実行するということです。すでにデプロイ済みであるもののワークスペースで使用可能になっていないファイルについても、相対パスの参照を使用する必要があります。
  5. 変更の始まりファイルをデプロイする: 必要なのはシステムによって選出されていないスタイル・シートまたは XML ファイルのみを手動でデプロイすることです (ツールがこれらのファイルに関する警告を出します)。ノードの「ブラウズ」をクリックするか、Eclipse ワークスペース内でスタイル・シートの場所の絶対パスを指定すると、スタイル・シートは bar ファイルに自動的に組み込まれます。

    手動デプロイを行うには、デプロイされるファイルをブローカー・アーカイブに追加し (ブローカー・アーカイブへのファイルの追加およびXSL スタイルシートへのキーワードの追加を参照)、ブローカー・アーカイブをデプロイします。

    変更の始まりXMLTransformation ノードを使用するすべての実行グループで、以下のアクションを実行できます。
    • スタイル・シートをブローカー上の broker work path/XSL/external ディレクトリーに組み込む。スタイル・シートを bar ファイルに組み込まないでください。

      broker work path/XSL/external ディレクトリー中のスタイル・シートが、デプロイされるスタイル・シートと同じパスと名前を共有している場合は、デプロイされるスタイル・シートが使用されます。

    • スタイル・シートを bar ファイルに組み込み、bar ファイルをデプロイする。複数の bar ファイルに同じスタイル・シート名が組み込まれている場合は、最後にデプロイされた bar ファイル中のスタイル・シートが使用されます。
    • スタイル・シートを独自の bar ファイル中にデプロイする。XMLTransformation ノードを使用する bar ファイルにスタイル・シートが組み込まれていない場合には、Message Brokers Toolkit は警告メッセージを発行します。
    変更の終わり
    変更の終わり
変更の終わり
変更の終わり

XMLTransformation ノードの構成

XMLTransformation ノードのインスタンスをメッセージ・フローに入れると、XMLTransformation ノードを構成することができます。エディター・ビューでノードを右クリックし、「プロパティー」をクリックします。 ノードの基本プロパティーが表示されます。

値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、プロパティー・ダイアログにアスタリスクが表示されます。

以下のように XMLTransformation ノードを構成します。

  1. XML 組み込み選択優先順位」、「メッセージ環境選択優先順位 」、および「ブローカー・ノード属性選択優先順位」プロパティーの値を選択します。 設定する値は、スタイルシート情報の代替位置を検索する順序を判別します。 最高優先順位設定は 1 です。デフォルトの順序は、以下のとおりです。
    1. 変更の始まりXML 組み込み選択の優先順位」。1 というデフォルト値を持っています。ノードは、スタイルシートのロケーション情報を求めてメッセージ XML データを検索します。例えば、XML データには以下が含まれている場合があります。
      <?xml-stylesheet type="text/xsl" href="foo.xsl"?>
      変更の終わり
    2. メッセージ環境選択優先順位」。 2 というデフォルト値を持っています。ノードは、ComIbmXslXmltStylesheetname と呼ばれるエレメント内に保管されているスタイルシート情報に関する現行メッセージと関連した LocalEnvironment を検索します。

      このノードはバージョン 2.1 の SupportPac で使用可能であり、スタイル・シートの名前としてエレメント ComIbmXslMqsiStylesheetname が使用されていたため、現行ノードは両方のエレメントをチェックします。 両方が存在する場合、ComIbmXslXmltStylesheetname 内の値が優先されます。

    3. ブローカー・ノード属性選択優先順位」。3 というデフォルト値を持っています。 ノードは、ノード・プロパティー「スタイルシート名」および「スタイルシート・ディレクトリー」を使用して、正しい値を判別します。

    推奨されていませんが、複数のプロパティーを同じ値に設定することができます。そのようにすると、ノードによって設定される優先順位の順序は、上記に示されているようにデフォルトの順序になります。

    "ignore" という値を設定する場合、ノードは、スタイルシート ID の対応する位置を検索しません。 3 つのプロパティーすべてを "ignore" に設定すると、実行時エラーが生成されます。

  2. ノード・プロパティーを使用して非デプロイ・スタイル・シートを指定する場合には、「スタイルシート名」に必要な値を入力します。 スタイルシート情報が検索され、希望する位置 (設定した選択優先順位値によって判別される) に見つかる場合、この値は無視されます。

    基本スタイル・シートを指定する場合には次の 2 つの方法でこれを行えます。
    1. ワークスペースの「スタイルシート」プロパティー・フィールドの近くの「ブラウズ」ボタンを使用する方法。 確認された基本スタイル・シートとその子孫となるすべての相対参照スタイル・シートは、.bar ファイルへのメッセージ・フローの追加時にbar ファイルへ自動的に追加されます (ただし、それとその親スタイル・シートの両方が使用可能な場合に限ります)。
    2. すでにデプロイ済みまたはこれからデプロイされるスタイル・シートの識別の場合、「スタイルシート名」プロパティーのみを使用でき、「スタイルシート・ディレクトリー」プロパティーは空のままとしておかなければならない。
  3. スタイルシート ID が完全修飾されている場合、「スタイルシート・ディレクトリー」は無視されます。 そうでない場合、このプロパティー内に設定されている値は、見つかった場所に関係なく、その仕様の先頭に追加されます。
  4. 変更の始まりスタイルシート・キャッシュ・レベル 」で、このノードのインスタンスに保管されているコンパイル済みまたは解析済みのスタイルシートの数を指定します。デフォルト値は 5 です。 スタイルシート・キャッシュは、ノードの存続期間中は保存されます。 これは、ノードがフローから削除されるとき、フローが削除されるとき、または実行グループが停止されるときに消去されます。

    キャッシュに入れられたスタイル・シートを (ファイル・システムでファイルを再デプロイするか置き換えて) 変更すると、キャッシュを保持する XMLTransformation ノードは、新しいメッセージを処理する前に、キャッシュに入れられたバージョンを変更された (最新の) バージョンに置き換えます。しかし、複数のスタイル・シートに変更を加えようとしている場合は、まず関連するメッセージ・フローを停止してから変更を加えてください。変更を加える前に関連するメッセージ・フローを停止しないと、実行中のメッセージ・フローで変更順序を保証できないので、変更を加えるスタイル・シートの間で非互換性が生じる可能性があります。mqsireload コマンドを使用してスタイル・シートを再ロードできますが、このコマンドにより非互換性が生じなくなるわけではありません。

    変更の終わり
  5. 出力メッセージに使用する文字セットを見つけるためにノードが有効な位置を検索する順序を指定するには、プロパティー・ダイアログ・ナビゲーターで「出力文字セット」を選択します。最高優先順位設定は 1 です。デフォルトの順序は、以下のとおりです。
    1. メッセージ環境選択優先順位」。 1 というデフォルト値を持っています。 ノードは、ComIbmXslXmltOutputcharset と呼ばれるエレメント内に保管されている文字セット情報に関する現行メッセージと関連した LocalEnvironment を検索します。

      例えば、変換の出力を utf-8 としてエンコードするには、このエレメント内のストリングとして 1208 を入力します。

      このノードはバージョン 2.1 の SupportPac で使用可能であり、出力文字セットに対してエレメント ComIbmXslMqsiOutputcharset が使用されていたため、現行ノードは両方のエレメントをチェックします。 両方が存在する場合、ComIbmXslXmltOutputcharset 内の値が優先されます。

    2. ブローカー・ノード属性選択優先順位」。2 というデフォルト値を持っています。 ノードは、プロパティー「出力文字セット」を使用して、正しい値を判別します。

      出力文字セット」に値を設定する場合、入力する値は数値でなければなりません。例えば、変換の出力を UTF-16 としてエンコードするには、1200 を入力します。

    推奨されていませんが、複数のプロパティーを同じ値に設定することができます。そのようにすると、ノードによって設定される優先順位の順序は、上記に示されているようにデフォルトの順序になります。

    0 という値を設定する場合、ノードは文字セット ID の対応する位置を検索しません。

    値が設定されていないか、選択優先順位が 0 に設定されているために、ノードがこれらの 2 つのソースのどちらからも出力文字セットを判別できない場合は、デフォルト値 1208 (UTF8) が使用されます。(XSL 仕様は、出力文字セットをスタイル・シートに指定できることを示しています。 ただし、XMLTransformation ノードはこの値を無視します。)

  6. XMLTransformation ノードのアクションをトレースするには、プロパティー・ダイアログ・ナビゲーターで「詳細のトレース」を選択します。「詳細のトレース」プロパティーのデフォルト値は Off です。 トレースをアクティブにするには、プロパティーを On に設定します。

    トレース情報は、トレース・ファイル XMLTTrace.log に書き込まれます。

    • z/OS システムでは、ファイルは <broker_dir>/output にあります (<broker_dir> は、ブローカーをインストールしたディレクトリー)。
    • Windows システムでは、ファイルは <broker work path>¥common¥log にあります。
    • UNIX システムでは、ファイルは <broker work path>¥common¥log にあります。

    1 つの XMLTransformation ノードに関して詳細トレースをオンに設定すると、実行グループ内のすべてのノードに対してオンになります。

    注: このプロパティーは現在推奨されていません。 ユーザー・デバッグ・トレースが使用可能な場合、関連するトレースはすべてユーザー・トレースに入れられるようになりました。 XMLTransformation ノードの「詳細のトレース」の設定は、どのユーザー・トレースにも影響を与えません。
  7. 簡略説明または詳細説明 (あるいはその両方) を入力するには、プロパティー・ダイアログ・ナビゲーターの「説明」を選択します。
  8. 「適用」をクリックすると、プロパティー・ダイアログを閉じずに XMLTransformation ノードが変更されます。「OK」をクリックすると、変更を適用してプロパティー・ダイアログを閉じます。

    「キャンセル」をクリックすると、ダイアログを閉じてプロパティーに対して行った変更をすべて破棄します。

  9. 変更の始まり実行グループを停止して再始動します。変更の終わり
大規模な XML メッセージの処理中に「メモリー不足」エラーを受け取る場合には、mqsireportproperties コマンドを使用して XSLT エンジンの Java ヒープ・サイズの現行値を確認し、mqsichangeproperties コマンドを使用してその値を増やすことができます。
mqsireportproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize
mqsichangeproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
brokerNameexecutionGroupLabel、および 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 を使用してメッセージをデコードします。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ac12490_