ネームスペースのサポートを使用できる MRM ドメイン内のメッセージ内容へのアクセス

MRM パーサーによって構文解析されたメッセージには、 ネームスペース・サポートを活用することができます。

メッセージのエレメントにアクセスしたいとき、ネームスペースが使用可能であれば、 エレメントへの ESQL 参照をコーディングする際に、ネームスペースを組み込む必要があります。 そうしない場合は、ブローカーが notarget ネームスペースを検索します。 notarget ネームスペースにエレメントが見つからないと、ブローカーは メッセージ・ディクショナリー (つまり、デプロイされたメッセージ・セット) 内の 他のすべての既知のネームスペースを検索します。 パフォーマンスおよび保全性の理由で、適用可能な場合はどこでもネームスペースを指定してください。

ネームスペースが使用可能であるときにエレメントを参照する最も効率のよい方法は、 ネームスペース定数を定義し、これを適切な ESQL ステートメントで使用することです。 これで、ESQL コードがより読み取りやすく、管理しやすくなります。

DECLARE NAMESPACE ステートメントを使用して定数を次のように定義することができます。

DECLARE ns01 NAMESPACE 'http://www.ns01.com'
.
.
SET OutputRoot.MRM.Element1 = InputBody.ns01:Element1;

ns01 は、宣言される方法のために、ネームスペースとして正しく解釈されます。

また、CHARACTER 変数を使ってネームスペースを宣言することもできます。

DECLARE ns02 CHARACTER 'http://www.ns02.com'
.
.
SET OutputRoot.MRM.Element2 = InputBody.{ns02}:Element2;

このメソッドを使用する場合、宣言される変数を中括弧で囲んで、 確実にネームスペースとして解釈されるようにすることが必要です。

CHARACTER 変数が変更されることが考えられる場合、 CONSTANT CHARACTER 宣言を使用することができます。

DECLARE ns03 CONSTANT CHARACTER 'http://www.ns03.com'
.
.
SET OutputRoot.MRM.Element3 = InputBody.{ns03}:Element3;

モジュールまたは関数内で、ネームスペース、定数、および変数を宣言できます。 しかし、スキーマ有効範囲 (つまり、モジュール有効範囲の外部) では、ネームスペースまたは定数だけを宣言できます。

ビデオ のサンプルは、ネームスペースの使用のより詳細な例を提供します。

ネームスペースはバージョン 2.1 ではサポートされていないため、ネームスペースを利用するメッセージ・セットまたはメッセージ・フローをバージョン 2.1 ブローカーへデプロイすることはできません。

関連概念
メッセージ・フロー
ESQL
メッセージのモデル化
ネーム・スペース

関連タスク
メッセージ・フローの設計
メッセージ・フローの内容の定義
ESQL ファイルの管理
メッセージ・モデルの開発

関連資料
Compute ノード
Database ノード
Filter ノード
ESQL
DECLARE ステートメント
SET ステートメント