XMLNS ドメインのメッセージの操作

このトピックでは、XMLNS ドメインに属し、汎用 XML パーサーによって構文解析されるメッセージを処理する場合の情報を提供しています。 XML ドメインの拡張である XMLNS ドメインは、ネームスペースをサポートします。 XML ドメインのメッセージの操作にある XML メッセージに関する指針に従ってください。それとともに、メッセージ本体の内容の操作のトピックにある情報も適用してください。

以下の例は、ESQL を使ってネームスペースを処理する方法を示しています。 この例のメイン・モジュールの先頭ではネームスペース定数を宣言しているため、ESQL ステートメントでネームスペース URI 全体ではなく、接頭部を使用することができます。

このネームスペース定数は ESQL だけに影響を与え、出力メッセージ内の接頭部を制御しません。 生成される出力メッセージ内の接頭部は、ネームスペース宣言によって制御されます。 XML.NamespaceDecl 相関名を使用して、ネームスペース宣言をツリーに組み込むことができます。 その後、そのエレメントを使用して、出力メッセージ内にネームスペース宣言を生成します。

出力メッセージが生成されるとき、エレメントまたは属性を修飾するネームスペースに対応するネームスペース宣言が存在しない場合には、NSn という形式の接頭部のネームスペースが自動生成されます (n は正の整数)。

CREATE COMPUTE MODULE xmlns_doc_flow_Compute
CREATE ROUTINE Main() RETURNS BOOLEAN
BEGIN
CALL CopyMessageHeaders();

-- Declaration of namespace constants
DECLARE sp1 NAMESPACE 'http://www.ibm.com/space1';
DECLARE sp2 NAMESPACE 'http://www.ibm.com/space2';
DECLARE sp3 NAMESPACE 'http://www.ibm.com/space3';

-- Namespace declaration to associate prefix 'space1' with the namespace
SET OutputRoot.XMLNS.message.(XML.NamespaceDecl)xmlns:space1 = 'http://www.ibm.com/space1';  
SET OutputRoot.XMLNS.message.sp1:data1 = 'Hello!';      
 
-- Default Namespace declaration
SET OutputRoot.XMLNS.message.sp2:data2.(XML.NamespaceDecl)xmlns = 'http://www.ibm.com/space2';
SET OutputRoot.XMLNS.message.sp2:data2.sp2:subData1 = 'Hola!';
SET OutputRoot.XMLNS.message.sp2:data2.sp2:subData2 = 'Guten Tag!';

SET OutputRoot.XMLNS.message.sp3:data3 = 'Bonjour!';

SET OutputRoot.Properties.MessageDomain = 'XMLNS';

RETURN TRUE;
END;

CREATE ROUTINE CopyMessageHeaders() BEGIN
DECLARE I INTEGER 1;
DECLARE J INTEGER CARDINALITY(InputRoot.*[]);
WHILE I < J DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I = I + 1;
END WHILE;
END;

END MODULE;
この ESQL が実行されると、次の出力メッセージが生成されます。
<message xmlns:space1="http://www.ibm.com/space1">
 <space1:data1>Hello!</space1:data1>
 <data2 xmlns="http://www.ibm.com/space2">
  <subData1>Hola!</subData1>
  <subData2>Guten Tag!</subData2>
 </data2>
 <NS1:data3 xmlns:NS1="http://www.ibm.com/space3">Bonjour!</NS1:data3>
</message>
関連概念
メッセージ・フローの概要
XML パーサーおよびドメイン
ESQL の概要
関連タスク
メッセージ・フローの設計
メッセージ・フローの内容の定義
XML ドメインのメッセージの操作
関連資料
ESQL 参照
DECLARE ステートメント
SET ステートメント
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2005 Last updated: 11/07/2005
ac17330_