国際化データ・ハンドラー は、特定のロケール向けにカスタマイズできるように作成されたデータ・ハンドラーです。ロケール は、エンド・ユーザーの特定の国、言語、または地域に固有のデータを処理する方法に関する情報をまとめた、ユーザー環境の要素です。ロケールは、通常はオペレーティング・システムの一部としてインストールされます。ロケール依存データを処理するデータ・ハンドラーを作成することを、データ・ハンドラーの国際化対応 (I18N) と呼びます。また、特定ロケール向けに国際化データ・ハンドラーを作成することを、データ・ハンドラーのローカリゼーション (L10N) と呼びます。
このセクションでは、国際化データ・ハンドラーに関する以下の情報について説明します。
ロケール は、ユーザー環境に関する以下の情報を提供します。
ロケール名は次のような形式になります。
ll_TT.codeset
ここで、ll は 2 文字の言語コード (通常は小文字)、TT は 2 文字の国および地域コード (通常は大文字)、codeset は関連する文字コード・セットの名前を表します。ロケール名の codeset 部分は、たいていの場合はオプションです。ロケールは、通常はオペレーティング・システム・インストールの一部としてインストールされます。
このセクションでは、データ・ハンドラーの国際化に関する以下の設計上の考慮事項について説明します。
国際化するには、データ・ハンドラーをロケール依存になるようにコード化する必要があります。つまり、データ・ハンドラーはロケールの設定を考慮して、そのロケールに適切なタスクを実行する必要があります。例えば、英語を使用するロケールの場合、データ・ハンドラーは英語のメッセージ・ファイルからエラー・メッセージを取得します。この製品でインストールされるデータ・ハンドラー・フレームワークは、国際化されています。開発したデータ・ハンドラーの国際化対応 (I18N) を完了する際は、そのデータ・ハンドラー・インプリメンテーションが国際化されていることを確認してください。
国際化データ・ハンドラーは、次のロケール依存設計原則に従う必要があります。
データ・ハンドラーは、直列化データ・アプリケーションとビジネス・オブジェクトの間の変換の際に、ロケール依存処理
(データ・フォーマット変換など)
を実行する必要があります。データ・ハンドラーの環境に関連するロケールを追跡するため、DataHandler
クラスには private
ロケール変数があります。この変数はデータ・ハンドラーが稼働するオペレーティング・システムのロケールに初期化されています。
データ・ハンドラー環境のロケール (この private locale 変数の値)
へは、実行時に表 52 の accessor メソッドを介してアクセスできます。
表 52. データ・ハンドラー環境のロケールにアクセスするメソッド
データ・ハンドラー・クラス | メソッド |
---|---|
DataHandler | getLocale(), setLocale() |
ビジネス・オブジェクトが作成されると、そのデータにロケールが関連付けられます。
このロケールは、作成されたビジネス・オブジェクトのデータに適用されます。ビジネス・オブジェクト定義の名前やその属性には適用されません (これらは英語ロケール en_US に関連するコード・セットの文字でなければなりません)。ビジネス・オブジェクトを作成するため、データ・ハンドラーでは表 53 に示すメソッドを使用できます。これらのメソッドは、DataHandler クラスの private ロケール変数にアクセスできます。これらのメソッドはビジネス・オブジェクトを作成するときに、private DataHandler ロケール変数の示すロケールをこのビジネス・オブジェクトに関連付けます。
ビジネス・オブジェクトを作成して、そのデータにロケールを設定するには、表 53 のメソッドを使用します。private
ロケール変数がビジネス・オブジェクトのデータに対して適切なロケールを示すようにするため、表 53
のメソッドを呼び出す前に、setLocale()
メソッドを使用することができます。
表 53. ビジネス・オブジェクトにロケールを割り当てるメソッド
データ・ハンドラー・クラス | メソッド |
---|---|
DataHandler | getBO() - パブリック, getBOName() |
あるコード・セットを使用するロケーションから別のコード・セットを使用するロケーションにデータを転送する場合、データの意味が保持されるような文字変換形式を実行する必要があります。Java 仮想マシン (JVM) 内の Java ランタイム環境では、Unicode 文字セットでデータを表します。Unicode 文字セットは、ほとんどの既知の文字コード・セット (単一バイトおよびマルチバイトの両方) の文字のエンコードが含まれる汎用文字セットです。Unicode にはいくつかのエンコード・フォーマットがあります。ビジネス・インテグレーション・システム内で最も頻繁に使用されるエンコードを以下に示します。
UCS-2 エンコードは、2 バイト (オクテット) でエンコードされた Unicode 文字セットです。
UTF-8 エンコードは、UNIX 環境で Unicode 文字データを使用するために設計されたものです。UTF-8 ではすべての ASCII コード値 (0...127) がサポートされるので、ASCII コード値が別のコードに解釈されることはありません。各コード値は通常 1 バイト値、2 バイト値、または 3 バイト値で表します。
IBM WebSphere Business Integration システム のほとんどのコンポーネントは Java で書かれています。したがって、ほとんどのシステム・コンポーネント間のデータ転送では、データは Unicode コード・セットでエンコード されるため、文字変換の必要はありません。
データ・ハンドラーは Java で書かれたコンポーネントなので、Unicode コード・セットの直列化データを処理します。また通常は、データの入力ストリームのソースも Unicode で処理されます。したがってデータ・ハンドラーは、通常は直列化データの文字変換を実行する必要はありません。ただし、入力データまたは出力データ内に、システム・デフォルトとは異なる文字エンコードのバイト配列が含まれている場合は、データ・ハンドラーはその文字エンコードを提供する必要があります。
データ・ハンドラーの環境に関連する文字エンコードを追跡するため、DataHandler
クラスには private
文字エンコード変数があります。この変数は、データ・ハンドラーが稼働するオペレーティング・システムのロケールに関連する文字エンコードに初期化されています。データ・ハンドラー環境の文字エンコード
(この private 文字エンコード変数の値) へは、実行時に表 54 の accessor メソッドを介してアクセスできます。
表 54. データ・ハンドラーの文字エンコードを検索するメソッド
データ・ハンドラー・クラス | メソッド |
---|---|
DataHandler | getEncoding(), setEncoding() |