在 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

紧跟在元素命名的标识后,MRM 消息定义使用具有选项组合的组。该组用以下三个子代进行定义:PassportNo、DrivingLicenceNo 和 CreditCardNo。 选项组合规定实例文档必须仅使用这三个可能的替代之一。上面显示的示例使用 PassportNo 元素。

当您用 ESQL 语句引用此元素时,您没有指定元素所属的组。例如:

SET OutputRoot.MRM.PassportNo = 'J999999TT';

如果您在消息集(包括 XML 和 TDS 物理格式)内定义消息,则可以确定从消息数据采用选项的那些选项,因为消息中的标记表示选项的选项之一。然而,如果您的消息具有 CWF 物理格式,或者是未 标记的 TDS 消息,它不会从消息数据清除,而处理消息的应用程序必须确定已选择选项的哪个选项。这称为未解析的选项处理。有关更多信息,请参阅复杂类型逻辑属性中关于选项的值的描述。

相关概念
消息流概述
ESQL 概述
消息建模
相关任务
设计消息流
定义消息流内容
管理 ESQL 文件
开发消息模型
相关参考
Compute 节点
Database 节点
Filter 节点
ESQL 引用
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac06040_