国際化データ・ハンドラー

国際化データ・ハンドラー は、特定のロケール向けにカスタマイズできるように作成されたデータ・ハンドラーです。ロケール は、エンド・ユーザーの特定の国、言語、または地域に固有のデータを処理する方法に関する情報をまとめた、ユーザー環境の要素です。ロケールは、通常はオペレーティング・システムの一部としてインストールされます。ロケール依存データを処理するデータ・ハンドラーを作成することを、データ・ハンドラーの国際化対応 (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 のメソッドは、トップレベル・ビジネス・オブジェクトのロケールのみ を設定します。ビジネス・オブジェクトに子ビジネス・オブジェクトが含まれている場合は、その子ビジネス・オブジェクトではロケールがシステム・デフォルトに設定されるため、有効なロケール値がない場合があります。

ビジネス・オブジェクトを作成して、そのデータにロケールを設定するには、表 53 のメソッドを使用します。private ロケール変数がビジネス・オブジェクトのデータに対して適切なロケールを示すようにするため、表 53 のメソッドを呼び出す前にsetLocale() メソッドを使用することができます。

表 53. ビジネス・オブジェクトにロケールを割り当てるメソッド
データ・ハンドラー・クラス メソッド
DataHandler getBO() - パブリック, getBOName()

文字エンコード設計原則

あるコード・セットを使用するロケーションから別のコード・セットを使用するロケーションにデータを転送する場合、データの意味が保持されるような文字変換形式を実行する必要があります。Java 仮想マシン (JVM) 内の Java ランタイム環境では、Unicode 文字セットでデータを表します。Unicode 文字セットは、ほとんどの既知の文字コード・セット (単一バイトおよびマルチバイトの両方) の文字のエンコードが含まれる汎用文字セットです。Unicode にはいくつかのエンコード・フォーマットがあります。ビジネス・インテグレーション・システム内で最も頻繁に使用されるエンコードを以下に示します。

IBM WebSphere Business Integration システム のほとんどのコンポーネントは Java で書かれています。したがって、ほとんどのシステム・コンポーネント間のデータ転送では、データは Unicode コード・セットでエンコード されるため、文字変換の必要はありません。

データ・ハンドラーは Java で書かれたコンポーネントなので、Unicode コード・セットの直列化データを処理します。また通常は、データの入力ストリームのソースも Unicode で処理されます。したがってデータ・ハンドラーは、通常は直列化データの文字変換を実行する必要はありません。ただし、入力データまたは出力データ内に、システム・デフォルトとは異なる文字エンコードのバイト配列が含まれている場合は、データ・ハンドラーはその文字エンコードを提供する必要があります。

データ・ハンドラーの環境に関連する文字エンコードを追跡するため、DataHandler クラスには private 文字エンコード変数があります。この変数は、データ・ハンドラーが稼働するオペレーティング・システムのロケールに関連する文字エンコードに初期化されています。データ・ハンドラー環境の文字エンコード (この private 文字エンコード変数の値) へは、実行時に表 54 の accessor メソッドを介してアクセスできます。

表 54. データ・ハンドラーの文字エンコードを検索するメソッド
データ・ハンドラー・クラス メソッド
DataHandler getEncoding(), setEncoding()

Copyright IBM Corp. 2004