例 D–1 に、SMS_TEXT マッピングテーブルの例を示します。各行の終わりにある括弧の中の数字は、このテーブルのあとに示す 「説明テキスト」というタイトルのセクションでの項目番号と対応しています。
SMS_TEXT H|From:* H|F:$0$R$Y (1) H|Subject:* H|S:$0$R$Y (1) H|F:*<*>* H|F:$1$R$Y () H|F:*(*)* H|F:$0$2$R$Y (2) H|F:*"*"* H|F:$0$2$R$Y (3) H|F:*@* H|F:$0$R$Y (4) H|%:$ * H|$0:$1$R$Y (5) H|%:*$ H|$0:$1$R$Y (5) H|%:*$ $ * H|$0:$1$ $2$R$Y (6) B|*--* B|$0-$1$R (7) B|*..* B|$0.$1$R (7) B|*!!* B|$0!$1$R (7) B|*??* B|$0?$1$R (7) B|*$ $ * B|$0$ $1$R (6) B|$ * B|$0$R (5) B|*$ B|$0$R (5) |
上記の例の SMS_TEXT マッピングテーブルのエントリの説明を以下に示します。
上記の例では、マッピングの反復的適用の実装と制御にメタキャラクタ「$R」が使用されています。これらのマッピングを反復することによって、強力なフィルタリングが実行されます。たとえば、前後に付いている単一のスペースを削除する (6)、または 2 つのスペースを 1 つに削減する (7) という単純なマッピングは、全体として採用された場合に、前後に付いているすべてのスペースを削除し、連続する複数のスペースを単一のスペースに削減するフィルタとなります。このようなフィルタリングによって、各 SMS メッセージのサイズを小さくできます。
これらの 2 つのエントリによって、From: および Subject: ヘッダー行が SMS メッセージに含められます。From: および Subject: は、それぞれ F: と S: として略記されます。これら以外のエントリにも、From: および Subject: ヘッダー行にさらに影響を与えるものがあります。
このエントリは、<...> パターンを含む From: ヘッダー行を角括弧内のテキストのみにします。例:
F: "John C. Doe" <jdoe@siroe.com> (Hello)
これは、次のように置き換えられます。
F: jdoe@siroe.com
このエントリは、From: ヘッダー行の (...) パターン内のすべてを包括的に削除します。例:
F: "John C. Doe" <jdoe@siroe.com> (Hello)
これは、次のように置き換えられます。
F: "John C. Doe" <jdoe@siroe.com>
このエントリは、From: ヘッダー行の "..." パターン内のすべてを包括的に削除します。例:
F: "John C. Doe" <jdoe@siroe.com> (Hello)
これは、次のように置き換えられます。
F: <jdoe@siroe.com> (Hello)
このエントリは、From: ヘッダー行のアットマーク (@) の右側にあるものをすべて包括的に削除します。例:
F: "John C. Doe" <jdoe@siroe.com> (Hello)
これは、次のように置き換えられます。
F: "John C. Doe" <jdoe@
これらの 4 つのエントリは、メッセージヘッダーと本文の行から前後に付いているスペースを削除します。
これら 2 つのエントリは、メッセージのヘッダーと本文の行の 2 つのスペースを 1 つのスペースに削減します。
これらの 4 つのエントリは、二重になっているダッシュ、ピリオド、感嘆符、および疑問符を一致する文字の単一の不定発生に削減します。これによっても、SMS メッセージのバイト数を節約できます。
エントリの順序は非常に重要です。たとえば、所定の順序で、次のようなメッセージの From: ヘッダー行から始めます。
From: "John C. Doe" (Hello)
これは次のように短縮されます。
jdoe
この結果までの手順は次のとおりです。
次の From: ヘッダー行から始めます。
From: "John C. Doe" (Hello)
最初のマッピングエントリのパターンがこれと一致し、次の結果になります。
F: "John C. Doe" (Hello)
結果文字列の「$R」メタキャラクタによって、結果文字列は再度マッピングされます。
直前の手順の結果文字列にマッピングが適用されます。これによって、次の結果になります。
F: jdoe@siroe.com
マッピングの「$R」によって、一連のマッピング全体がこの手順の結果に再び適用されます。
次に、マッピングが適用され、次の結果になります。
F: jdoe
マッピングの「$R」によって、一連のマッピング全体がこの手順の結果に再び適用されます。
次に、マッピングが適用され、次の結果になります。
F:jdoe
マッピングの「$R」によって、一連のマッピング全体がこの手順の結果に再び適用されます。
ほかのエントリは一致しないため、最終的な結果文字列は次のとおりになります。
F:jdoe
これが SMS メッセージに取り込まれます。
imsimta test-mapping ユーティリティーを使用してマッピングテーブルをテストすることができます。次に例を示します。
# imsimta test -mapping -noimage_file -mapping_file=test.txt Enter table name: SMS_TEXT Input string: H|From: "John C. Doe" (Hello) Output string: H|F:jdoe Output flags: [0,1,2,89] Input string: ^D # |
imsimta test ユーティリティーの詳細については、『Sun Java System Messaging Server 6 2005Q4 Administration Reference』の「imsimta test」を参照してください。