DFDL のエンコード情報

ブローカーがパーサーまたはシリアライザーを呼び出すとき、ブローカーは構文解析またはシリアライズされるデータの文字エンコード (CCSID) および数字のエンコード (バイト・オーダーおよび浮動小数点表記) を定義するエンコード情報をパーサーまたはシリアライザーに提供します。

DFDL ドメインのメッセージを構文解析またはシリアライズする場合、DFDL パーサーまたは DFDL シリアライザーが呼び出されます。 DFDL パーサーおよび DFDL シリアライザーがエンコード情報を使用する方法は、DFDL メッセージ・モデルによって定義されます。

DFDL メッセージ・モデルでは、各型定義で DFDL プロパティーを使用することによって、文字エンコード (CCSID) と数字のエンコード (バイト・オーダーと浮動小数点表記) を設定する必要があります。DFDL は外部変数のセットを事前定義し、それぞれが外部でオーバーライド可能なデフォルト値を持っています。これらの事前定義された変数を、ブローカーがオーバーライドしてエンコード情報で渡します。DFDL の事前定義された変数について詳しくは、WebSphere Message Broker の DFDL の事前定義された変数を参照してください。

DFDL メッセージ・モデルでエンコードのプロパティーを固有の静的なタイプに設定すると、DFDL パーサーと DFDL シリアライザーは、この静的なエンコード情報を使用してメッセージ・データを解釈し、各メッセージ・インスタンスに対してブローカーによって提供されているエンコード情報を無視します。DFDL メッセージ・モデルのエンコードのプロパティーを固有の静的なタイプに設定し、メッセージ・データが指定した形式でエンコードされない場合、次の問題が発生する可能性があります。

これらの問題を回避するには、DFDL メッセージ・モデルの DFDL エンコードのプロパティーを <Dynamically Set> に設定します。この設定により、DFDL パーサーは、ブローカーが、例えば、入力メッセージのトランスポート・ヘッダーから各メッセージ・インスタンスに対して取得するエンコード情報を使用することにより、データを正しく解釈します。 同様に、DFDL メッセージ・モデルの DFDL エンコードのプロパティーを <Dynamically Set> に設定すると、データが DFDL シリアライザーによって処理されるときに、ブローカーのプロパティーで定義される値に従い、ビット・ストリーム・データがエンコードされます。

Copyright IBM Corporation 2011Copyright IBM Corporation 2011.

概念トピック概念トピック | バージョン 1.0 | df20091_