XSL 変換 (XSLT) メディエーション・プリミティブを使用して、メッセージを変換します。
XSL 変換メディエーション・プリミティブを使用すると、XSL 変換を使用してメッセージを変換することができます。
サービスを統合する際に、受信側のサービスが処理できる形式にデータを変換しなければならないことがよくあります。こうした場合に XSL 変換メディエーション・プリミティブを使用すると、メッセージ・タイプを変換することができます。
XSL 変換メディエーション・プリミティブには、 入力端末 (in)、出力端末 (out)、障害端末 (fail) がそれぞれ 1 台ずつ存在します。 in 端末はメッセージの受信用に接続され、その他の端末はメッセージの送信用に接続されています。入力メッセージにより変換が起動され、変換が正常に行われた場合は、変更されたメッセージが out 端末によって伝搬されます。変換中に例外が発生すると、fail 端末により、failInfo エレメントに含まれる例外情報と共に元のメッセージが伝搬されます。
XSL 変換メディエーション・プリミティブは、XSLT 1.0 変換を使用してメッセージを操作するための単純なメカニズムを提供します。 入力メッセージと出力メッセージをマッピングすることにより、SMO のヘッダー、コンテキスト、本体を変更することができます。
メッセージを変換するには、XSL 変換メディエーション・プリミティブからマッピング・ファイルにアクセスする必要があります。マッピング・ファイルは、マッピング・ファイル・プロパティーを使用して指定します。XML マッピング・ファイルまたは XSL スタイルシートのいずれかをマッピング・ファイルとして使用することができます。
XSL 変換メディエーション・プリミティブを作成すると、WebSphere® Integration Developer を使用して、「プロパティー」ビューの「詳細」タブで新規の XML マップを作成できます。 あるいは、既存の XML マップを参照して、適しているものを選択することもできます。
XML マップを作成する場合は、メッセージ・ルート (XPath 1.0 式) を指定します。メディエーション・フローの場合、このメッセージ・ルートは SMO 内の /、/headers、/context、または /body を参照します。メッセージ・ルートは変換のルートを指定するものであり、入力メッセージと出力メッセージの両方に適用されます。メッセージ・ルートが / である場合、変換は SMO 全体に適用されます。
XML マッピング・エディターを使用する場合、マッピングが作成されると、実行時に変換を行う XSL スタイルシートが生成されます。XML マッピング・エディターを使用する前に XSL 変換プリミティブの入力端末と出力端末をワイヤーした場合、入力メッセージ・タイプと出力メッセージ・タイプは自動的に入力されます。詳しくは、WebSphere Integration Developer のトピック『新規 XML マップの作成』を参照してください。
XML マッピング・エディターを使用する必要はありません。代わりに、既存の XSL スタイルシートを使用して変換を実行できます。スタイルシートを選択するためには、そのスタイルシートがメディエーション・モジュール・プロジェクト・ディレクトリー内に存在している必要があります。詳しくは、WebSphere Integration Developer のトピック 『既存の XSL スタイルシートの使用』を参照してください。
WebSphere Integration Developer バージョン 6.1 では、XSL 変換プリミティブの XML マッピング・エディターが新しくなっています。以前のバージョンで作成した XML マップを編集するには、それらを新しいフォーマットにマイグレーションする必要があります。マイグレーションの詳細については、WebSphere Integration Developer のトピック『XSL 変換プリミティブのマイグレーション』を参照してください。
メッセージ・タイプの異なるメディエーション・プリミティブを接続する必要がある場合は、XSL 変換メディエーション・プリミティブを使用してメッセージ・タイプを変換できます。
メッセージを変換するには、XSL 変換プリミティブまたはビジネス・オブジェクト・マップ・メディエーション・プリミティブを使用します。重要な違いは、XSL 変換プリミティブでは、スタイルシートを使用して XML 形式で変換を実行するのに対して、ビジネス・オブジェクト・マップ・プリミティブでは、サービス・データ・オブジェクト (SDO) を使用してビジネス・オブジェクト上で変換を実行するという点です。既存の XML マップまたは XSL スタイルシートがある場合は、それを XSL 変換プリミティブと組み合わせて再利用できる可能性があります。また、既存のビジネス・オブジェクト・マップがある場合は、それをビジネス・オブジェクト・マップ・プリミティブと組み合わせて再利用できる可能性があります。ある種類の変換では XSL 形式の方が実行しやすく、一方でビジネス・オブジェクト・マップを使用する方が実行しやすい変換もあります。
既存の XML マッピング・ファイルを参照することも、新規マッピング・ファイルを作成することもできます。XML マッピング・ファイルには、実行時に変換を行う XSL スタイルシートが生成されています。
既存の XSL スタイルシートが、メディエーション・モジュールと同じプロジェクト内に存在する場合は、それらのスタイルシートを参照できます。
ルートとして /、/headers、または /context を選択した場合、XML マッピング・エディターを使用して、すべての SMO セクションを明示的にマップする必要があります。そのようにしなければ、実行時にエラーが発生する可能性があります。SMO のヘッダーまたはコンテキスト・セクションの情報を何も変更する必要がない場合は、マッピングの開始点として /body を使用できます。
プロパティー | 有効な値 | デフォルト |
---|---|---|
マッピング・ファイル | ストリング | |
ルート | ストリング: 変換のルートを表す XPath 式 | /body |
入力の妥当性検査 | ブール値: true または false | false |
XSL 変換メディエーション・プリミティブを使用する場合は、以下を考慮する必要があります。