複数の区切り文字の使用

データ・エレメント分離」をメソッド「データ・パターンの使用」に設定すると、文字セットまたはストリング・セットのうちの 1 つで区切られたフィールドを持つメッセージを構文解析することができます。

例えば、区切り文字として ';' または '/' のいずれかの文字を使用できる 2 つの数値フィールドをもった単純なメッセージを考慮してみます。使用できるアプローチには、次の 2 とおりがあります。

  1. メッセージ・ツリーに追加されるデータ・エレメントとして区切り文字をモデル化します。メッセージが再書き込みされると、入力メッセージのようになります。
    次のようなモデルを考慮してみます。
    Composition = Sequence
    Data Element Separation = Use Data Pattern
    FieldA Data Pattern = [0-9]*
    Delim Data Pattern = [;/] optionally with a default value.
    FieldB Data Pattern = [0-9]*

    構文解析後のエレメント FieldA および FieldB には、数字 0 - 9 の中の任意の数字が入り、エレメント Delim には ";" または "/" が入っています。

  2. ツリーには追加されない 区切り文字として区切り文字を認識します。メッセージが再書き込みされるときには、望ましい方の区切り文字 (モデル内での指定どおりのもの) が使用されます。
    次のようなモデルを考慮してみます。
    Composition = Choice
    Data Element Separation = Use Data Pattern
    SubType1 Data Pattern = [0-9]*;[0-9]*
    (Composition = Sequence
    Data Element Separation = All Elements Delimited
    Delimiter = ';')
    			FieldA
    			FieldB
    SubType2 Data Pattern = [0-9]*/[0-9]*
    (Composition = Sequence
    Data Element Separation = All Elements Delimited
    Delimiter = '/')
    			FieldA
    			FieldB

    これらの正規表現では、メッセージ内に出現する可能性のある 2 つのオプションが区別され、それらは通常の区切られた構造として構文解析されます。 構文解析後のエレメント FieldA および FieldB にはそれぞれ数字 0 - 9 の中の任意の数字が入っています。入力メッセージ内で検出された区切り文字はエレメント内に保管されません

    このアプローチを洗練するには、子に別々の名前を使うか、または SubType1 および SubType2 に別々のエレメントを使って、どの区切り文字が使用されるかを知らせたり、どの区切り文字を出力メッセージに組み込むかを制御したりすることができます。

関連概念
メッセージのモデル化
メッセージ・モデル
TDS 形式: 論理モデルとの関係
関連タスク
メッセージ・モデルの開発
メッセージ定義ファイルの処理
メッセージ・モデル・オブジェクトの処理
関連資料
メッセージ・モデルの参照情報
メッセージ・モデル・オブジェクトのプロパティー
追加の MRM ドメイン情報
追加の TDS 情報
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ad09890_