WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

XSLTransform ノード

XSLTransform ノードを使用して、XSL (Extensible Stylesheet Language) スタイルシートに規定されている規則に従って、XML メッセージを別の形式のメッセージに変換します。さらに、生成されるメッセージの「メッセージ・ドメイン」、「メッセージ・セット」、「メッセージ・タイプ」、および「メッセージ形式」を設定します。

このノードは、以前は XMLTransformation ノードと呼ばれていました。

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

目的

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

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

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

入力メッセージ本体の先頭に XML エンコード方式の宣言が含まれる場合、 XSLTransform ノードはエンコード方式を無視し、 常にメッセージ・プロパティー・フォルダーの CodedCharSetId を使用してメッセージをデコードします。

XSLTransform ノードはパレットの「変換」ドロワーに含まれていて、WebSphere® Message Broker Toolkit内では次のアイコンによって表されます。

XMLTransformation ノード・アイコン

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

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

入力メッセージの DTD で定義される相対パスの外部エンティティー (例えば、<!DOCTYPE note [<!ENTITY chap1 SYSTEM "chap1.xml">]>) は使用できません。 絶対パスの定義を使用してください。

XSLTransform ノードは、ノードのプロパティーに設定された値を動的に変更するために使用できる、いくつかのローカル環境メッセージ・ツリー変数をサポートします。 詳細については、ローカル環境変数を使用したプロパティーの設定を参照してください。

XSLTransform ノードでは、以下の 2 つの異なった方法でスタイル・シートを使用できます。 詳細については、デプロイされるスタイル・シートとデプロイされないスタイル・シートを参照してください。

大規模な XML メッセージがあり、メモリー不足エラーを受け取る場合には、mqsireportproperties コマンドを使用して XSLT エンジンの Java™ ヒープ・サイズの現行値を確認します。
mqsireportproperties brokerName -e executionGroupLabel 
                                 -o ComIbmJVMManager -n jvmMaxHeapSize
mqsichangeproperties コマンドを使用して Java ヒープ・サイズを増やします。
mqsichangeproperties brokerName -e executionGroupLabel 
                                 -o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
上の例では、brokerNameexecutionGroupLabel、および newSize を適切な値に置き換えてください。

newSize に指定する値は、 コンピューターの物理メモリー量および Java をどの程度使用するかによって異なります。 通常、512 MB (536870912) から 1 GB (1073741824) の範囲の値で十分です。

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

サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。

XSLTransform ノードの構成

XSLTransform ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。

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

ターミナルおよびプロパティー

XSLTransform ノードのターミナルについては、次の表に説明されています。

ターミナル 説明
In ノードが処理するメッセージを受け入れる入力ターミナル。
Failure 変換でエラーが検出された場合に、オリジナル・メッセージがルーティングされる出力ターミナル。
Out 正常に変換されたメッセージがルーティングされる出力ターミナル。

以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。

XSLTransform ノードの「説明」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
ノード名 いいえ いいえ ノード・タイプ ノードの名前。
簡略説明 いいえ いいえ   ノードの簡単な説明
詳細説明 いいえ いいえ   メッセージ・フロー内のノードの目的を説明するテキスト

XSLTransform ノードの「スタイルシート」プロパティーについては、 次の表に説明されています。

プロパティー M C デフォルト 説明 mqsiapplybaroverride コマンド・プロパティー
スタイルシート名 いいえ はい   スタイル・シートの名前。 スタイル・シート仕様がノード・プロパティー内で検索される場合に使用されます。 ノード・プロパティーを使用してスタイル・シートを指定するには、「スタイルシート名」に必要な値を入力します。
以下のいずれかの方式を使用して、基本スタイル・シートを指定します。
  • 「スタイルシート名」の隣にある「参照」をクリックします。 確認された基本スタイル・シートとその子孫となるすべての相対参照スタイル・シートは、BAR ファイルへのメッセージ・フローの追加時に BAR ファイルへ自動的に追加されます (それとその親スタイル・シートの両方が使用可能な場合)。
  • すでにデプロイ済みかまたはデプロイの準備の整ったスタイル・シートを指定するには、「スタイルシート名」プロパティーを使用し、「スタイルシート・ディレクトリー」プロパティーをブランクのままにします。
  • メッセージ・フロー・エディターで、.xslt ファイルを XSLTransform ノードにドラッグします。 「スタイルシート名」が自動的に設定されます。
stylesheetName

XSLTransform ノードの「拡張」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明 mqsiapplybaroverride コマンド・プロパティー
スタイルシート・ディレクトリー いいえ はい   スタイル・シートが位置付けられているパス。 このパスは、すべての位置メソッドによって使用されます。

スタイルシート ID が完全修飾されている場合、「スタイルシート・ディレクトリー」プロパティーは無視されます。 そうでない場合、このプロパティー内に設定されている値は、見つかった場所に関係なく、その仕様の先頭に追加されます。

stylesheetPath
スタイルシート・キャッシュ・レベル いいえ いいえ 5 このノードのインスタンス内に保管されているコンパイル済みまたは解析済みのスタイル・シートの数。

ゼロ (0) から 100 までの間の正整数を入力します。 デフォルト値は 5 です。 このプロパティーをゼロ (0) に設定すると、スタイルシートはキャッシュされず、スタイル・シートはコンパイルされずに解釈されます。 メッセージ・フローがローカル環境を使用してスタイル・シートを動的に設定していない場合、同じスタイル・シートが常に使用され、ゼロより大きい値があれば確実にコンパイルされます。 メッセージ・フローがスタイル・シートを動的に設定する場合、パフォーマンスを改善するためにその値を調整できます。 このプロパティーに正整数以外の文字を設定すると、フロー構成例外エラー・メッセージが出されます。

スタイルシート・キャッシュは、 ノードの存続期間中は保存され、ノードがフローから削除されるとき、フローが削除されるとき、または実行グループが停止されるときに消去されます。

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

このプロパティーを設定するときには、パフォーマンスを考慮してください。 通常、このプロパティーをデフォルト値の 5 より大きい値に指定すると、スタイル・シートの再コンパイルの可能性が減るため、パフォーマンスが向上します。 ただし、キャッシュ付きスタイル・シートは Java 仮想マシン (JVM) ヒープ・スペースを使用します。キャッシュ付きスタイル・シートを多く保持し過ぎると JVM が遅くなる可能性があります。 加えて、キャッシュ付きスタイル・シートが定常的に使用されないのにこのプロパティーを大きい数値に設定した場合、スタイル・シートのコンパイルによってプロセッサーの使用量が増すために、パフォーマンスに影響が及ぶ可能性があります。 したがって、このプロパティーを最も適切な値に設定するために、使用するスタイル・シートの数とスタイル・シートのサイズ、JVM ヒープ・スペースのサイズ、使用パターンの間でバランスを取る必要があります。 JVM ヒープ・スペースの詳細については、JVM ヒープのサイジングを参照してください。

 

XSLTransform ノードの「出力メッセージの構文解析」プロパティーについては、以下の表で説明しています。

プロパティー M C デフォルト 説明
メッセージ・ドメイン いいえ いいえ BLOB 出力メッセージと関連付けられたメッセージ・ドメイン。 特定のパーサーを出力メッセージに関連付けるには、 「メッセージ・ドメイン」に新しいドメインを指定します。 デフォルト値は BLOB です。 このドメインは、出力メッセージに適用されます。 あるいは、「継承」を使用して、入力メッセージを所有するパーサーを関連付けます。 XML は推奨されていません。代わりに XMLNSC を使用してください。

状況により、ユーザー定義のパーサーを指定することもできます。

メッセージ・セット いいえ いいえ   出力メッセージと関連付けられたメッセージ・セット。 MRM パーサーを使用するか、または検証モードで XMLNSC パーサーを使用する場合、使用するメッセージ・セットを選択します。 ドメインとして MRM または XMLNSC を選択すると、選択可能なメッセージ・セットがこのリストに取り込まれます。

このプロパティーを設定して、その後にプロジェクトの依存関係を更新してこのメッセージ・セットの参照を削除すると、警告が発行されます。 「メッセージ・セット」プロパティーを更新するか、このメッセージ・セット・プロジェクトへの参照を復元してください。

メッセージ・タイプ いいえ いいえ   出力メッセージと関連付けられたメッセージ・タイプ。 MRM パーサーを使用する場合は、「メッセージ・タイプ」のリストから、適切なメッセージ・タイプを選択します。 このリストには、選択したメッセージ・セットで定義されたメッセージが取り込まれます。
メッセージ形式 いいえ いいえ   出力メッセージと関連付けられたメッセージ形式。 MRM パーサーを使用する場合は、「メッセージ形式」のリストから、出力メッセージの XML 物理形式を選択します。 このリストには、このメッセージ・セット用に定義されたすべての物理形式が掲載されます。
文字セット いいえ いいえ   出力メッセージの文字セットの数値。 ノード・プロパティーを使用して、出力メッセージの文字セットを指定するには、「文字セット」に必要な値を指定します。 指定する値は数値でなければなりません。例えば、出力メッセージを UTF-16 でエンコードするには、1200 を指定します。

XSLTransform ノードの「パーサー・オプション」については、次の表に説明されています。

プロパティー M C デフォルト 説明
構文解析のタイミング いいえ いいえ 要求時 このプロパティーは、出力メッセージを構文解析する時を制御します。 有効な値は、「要求時」「即時」、および「完全」です。 「解析のタイミング」は、デフォルトによって、「要求時」に設定されます。これにより、メッセージの構文解析が遅延されます。 メッセージが即時に解析されるようにするには、要求時の構文解析を参照してください。
XML スキーマ・データ・タイプを使用してツリーを構築する いいえ いいえ 選択されていない このプロパティーは、XML スキーマから取得されたデータ・タイプを使って、XMLNSC パーサーがメッセージ・ツリー内に構文エレメントを作成するかどうかを制御します。 「妥当性検査」プロパティーを「内容」または「内容と値」に設定した場合にのみ、このプロパティーを選択できます。 詳しくは、XMLNSC ドメインでのメッセージの操作を参照してください。
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 いいえ いいえ いいえ このプロパティーは、XMLNS ドメイン内の出力メッセージに XMLNSC コンパクト・パーサーを使用するかどうかを制御します。 このプロパティーを設定すると、入力 MQRFH2 ヘッダーまたはドメインが XMLNS の場合、出力ターミナルに接続されているノードの XMLNSC の下にメッセージ・データが表示されます。

XSLTransform ノードの「妥当性検査」プロパティーについては、次の表に説明されています。 メッセージ・セットに照らしてメッセージの本体をパーサーで妥当性検査するには、妥当性検査プロパティーを設定します。 (メッセージがノードの Failure ターミナルに伝搬される場合には、妥当性検査は行われません。) 詳細については、メッセージの妥当性検査および妥当性検査プロパティーを参照してください。

プロパティー M C デフォルト 説明
妥当性検査 いいえ はい なし このプロパティーは、出力メッセージの妥当性検査を行うかどうかを制御します。 有効な値は、「なし」「内容」「内容と値」、および「継承」です。
失敗時の処置 いいえ いいえ 例外 このプロパティーは、出力メッセージの妥当性検査が失敗した場合の動作を制御します。 「妥当性検査」「内容と値」または「内容」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」「ローカル・エラー・ログ」「例外」、および「例外リスト」です。

XSLTransform ノードの「詳細のトレース」プロパティーについては、 次の表に説明されています。

プロパティー M C デフォルト 説明
トレース設定 はい いいえ Off このプロパティーは推奨されていません。 代わりにユーザー・トレースを開始してください。 ユーザー・トレースには、同一の XSL トレース情報が含まれています。 このプロパティーを設定すれば、ユーザー・トレースに影響を及ぼしません。

WebSphere Message Broker の以前のバージョンでは、このプロパティーがトレースのオン/オフを制御していました。 トレースがオンである場合、ファイル内で低レベルのトレースが記録されます。

ノードのモニター・プロパティーが、次の表に説明されています。
プロパティー M C デフォルト 説明
イベント いいえ いいえ なし ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。

「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:45:32


参照トピック参照トピック | バージョン 8.0.0.5 | ac12490_