MRM ドメインのメッセージにおけるグループ内のエレメントへのアクセス

入力メッセージが構文解析される場合、ご使用のメッセージ・セットでグループとして定義された構造は論理ツリーでは表されませんが、その子は表されます。 グループの子であるエレメントの値を参照または更新する場合には、ESQL ステートメントにそのグループを組み込まないでください。 グループにはインスタンス・メッセージで表示されるタグがなく、論理メッセージ・ツリーのユーザー・トレース内にも表示されません。

次の Video メッセージをご覧ください。

<Customer xmlns:addr="http://www.ibm.com/AddressDetails" 
xmlns:brw="http://www.ibm.com/BorrowedDetails">
		 <Name LastName="Bloggs">
		 		 <Title>Mr</Title>
		 		 <FirstName>Fred</FirstName>
		 </Name>
		 <addr:Address>
		 		 <HouseNo>13</HouseNo>
		 		 <Street>Oak Street</Street>
		 		 <Town>Southampton</Town>
		 </addr:Address>
             <ID>P</ID>
		 <PassportNo>J123456TT</PassportNo>
		 <brw:Borrowed>
		 		 <VideoTitle>Fast Cars</VideoTitle>
		 		 <DueDate>2003-05-23T01:00:00</DueDate>
		 		 <Cost>3.50</Cost>
		 </brw:Borrowed>
		 <brw:Borrowed>
		 		 <VideoTitle>Cut To The Chase</VideoTitle>
		 		 <DueDate>2003-05-23T01:00:00</DueDate>
		 		 <Cost>3.00</Cost>
		 </brw:Borrowed>
		 <Magazine>0</Magazine>
</Customer>

入力メッセージが構文解析される場合には、次のセクションのユーザー・トレースに表示されているように、値は論理ツリーに保管されます。

(0x0100001B):MRM = (
    (0x01000013):Name = (
        (0x0300000B):LastName = 'Bloggs'
        (0x0300000B):Title = 'Mr'
        (0x0300000B):FirstName = 'Fred'
  )
    (0x01000013)http://www.ibm.com/AddressDetails:Address = (
        (0x0300000B):HouseNo = 13
        (0x0300000B):Street = 'Oak Street'
        (0x0300000B):Town = 'Southampton'
  )
    (0x0300000B):ID = 'P'
    (0x0300000B):PassportNo = 'J123456TT'
    (0x01000013)http://www.ibm.com/BorrowedDetails:Borrowed = (
        (0x0300000B):VideoTitle = 'Fast Cars'
        (0x0300000B):DueDate = TIMESTAMP '2003-05-23 00:00:00'
        (0x0300000B):Cost = 3.50
  )
    (0x01000013)http://www.ibm.com/BorrowedDetails:Borrowed = (
        (0x0300000B):VideoTitle = 'Cut To The Chase '
        (0x0300000B):DueDate = TIMESTAMP '2003-05-23 00:00:00'
        (0x0300000B):Cost = 3.00
  )
  (0x0300000B):Magazine = FALSE

ID という名前のエレメントのすぐ後に、MRM メッセージ定義は「選択 (Choice)」という「構成 (Composition)」を持つグループを使用します。 このグループは、PassportNo、DrivingLicenceNo、および CreditCardNo の 3 つの子によって定義されています。 この選択構成は、インスタンス文書では可能な 3 つの代案のいずれか 1 つのみを使用するように指示します。 上の例では、PassportNo エレメントが使用されています。

ESQL ステートメントでこのエレメントを参照する場合には、エレメントが属するグループを指定しないでください。以下に例を示します。

SET OutputRoot.MRM.PassportNo = 'J999999TT';

XML および TDS 物理形式を含むメッセージ・セット内でメッセージを定義する場合、メッセージ中のタグが選択のオプションのうちの 1 つを表すため、選択のどのオプションが使用されるかは、メッセージ・データから判別することができます。 しかし、メッセージに CWF 物理形式がある場合、またはタグなしの TDS メッセージである場合は、使用されるオプションはメッセージ・データからははっきりせず、メッセージを処理するアプリケーション・プログラムが選ばれる選択のオプションを決定する必要があります。 これは、未解決の選択処理と呼ばれます。 詳細は、複合タイプの論理プロパティー「選択 (Choice)」の値についての説明をご覧ください。

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

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

関連資料
Compute ノード
Database ノード
Filter ノード
ESQL