ブローカーがパーサーまたはシリアライザーを呼び出すとき、ブローカーは構文解析またはシリアライズされるデータの文字エンコード (CCSID) および数字のエンコード (バイト・オーダーおよび浮動小数点表記) を定義するエンコード情報をパーサーまたはシリアライザーに提供します。
DFDL ドメインのメッセージを構文解析またはシリアライズする場合、DFDL パーサーまたは DFDL シリアライザーが呼び出されます。 DFDL パーサーおよび DFDL シリアライザーがエンコード情報を使用する方法は、DFDL メッセージ・モデルによって定義されます。
DFDL メッセージ・モデルでは、各型定義で DFDL プロパティーを使用することによって、文字エンコード (CCSID) と数字のエンコード (バイト・オーダーと浮動小数点表記) を設定する必要があります。DFDL は外部変数のセットを事前定義し、それぞれが外部でオーバーライド可能なデフォルト値を持っています。これらの事前定義された変数を、ブローカーがオーバーライドしてエンコード情報で渡します。DFDL の事前定義された変数について詳しくは、WebSphere Message Broker の DFDL の事前定義された変数を参照してください。
これらの問題を回避するには、DFDL メッセージ・モデルの DFDL エンコードのプロパティーを <Dynamically Set> に設定します。この設定により、DFDL パーサーは、ブローカーが、例えば、入力メッセージのトランスポート・ヘッダーから各メッセージ・インスタンスに対して取得するエンコード情報を使用することにより、データを正しく解釈します。 同様に、DFDL メッセージ・モデルの DFDL エンコードのプロパティーを <Dynamically Set> に設定すると、データが DFDL シリアライザーによって処理されるときに、ブローカーのプロパティーで定義される値に従い、ビット・ストリーム・データがエンコードされます。