バイト配列のメッセージ・ペイロードへのトランスコーディング
メディエーションは、メッセージの意味を変えることなくバイト配列をメッセージ・ペイロードにトランスコードすることができます。
メディエーションは、例えばメッセージを記録した後などに、バイト配列からメッセージ・ペイロードを再構成できます。
メッセージを
再構成するには、SIDataGraphFactory API によって提供されるすべてのメソッド
createDataGraph を
呼び出します。このメソッドは、バイト配列とフォーマット・ストリングを必要とし、以下の例で示すように、メソッドに渡されたフォーマットに従ってバイトを構文解析することで、新規データ・グラフを作成します。
DataGraph newDataGraph = SIDataGraphFactory.getInstance().createDataGraph(byteArray, newFormat);
以下の表で、バイト配列を SIMessage データ・グラフにトランスコードする際のルールを説明します。
フォーマットの引数 | 事前の条件 | 出力 |
---|---|---|
JMS: | なし | NULL を戻します。 |
JMS:text | java.lang.String(inputBytes, "UTF-8") は、例外になりません。 | フォーマット JMS:text の新規データ・グラフのインスタンスを戻します。パス data/value のグラフの値は、java.lang.String(inputBytes, "UTF-8") と等しい値を持っています。 |
JMS:bytes | inputBytes は NULL ではありません。 | フォーマット JMS:bytes の新規データ・グラフのインスタンスを戻します。 パス data/value のグラフの値は、inputBytes バイト配列のコピーです。 |
JMS:stream | バイト配列は XML で、XML スキーマ定義の JmsStreamBody タイプに関して有効です。 | フォーマット JMS:stream の新規データ・グラフのインスタンスを戻します。 パス data/value のグラフの値のタイプは List で、XML 文書のそれぞれのエレメントのタイプおよび値に応じた単純な型付きの値のシーケンスを含んでいます。 |
JMS:object | 非ヌル 注: バイト配列が有効なシリアライズド・オブジェクトであることを確認する必要があります。
|
フォーマット JMS:object の新規データ・グラフのインスタンスを戻します。 パス data/value のグラフの値は、inputBytes バイト配列のコピーです。 |
SOAP: | バイト・バッファーは、関連する WSDL モデルに関して有効な SOAP を含んでいます。 | バイト・バッファーが参照する WSDL が定義したタイプ・システムの新規データ・グラフ、 および SOAP ペイロードが定義したグラフの値を戻します。 |
Bean: | バイト・バッファーは、関連する WSDL モデルに関して有効な Bean を含んでいます。 | バイト・バッファーが参照する WSDL が定義したタイプ・システムの新規データ・グラフ、 および Bean ペイロードが定義したグラフの値を戻します。 |