将 MRM 消息解析到逻辑树中时,将使用和创建 MRM 元素相同的方式,把它们包含的属性和数据创建为名称-值对。这表示您编码用来查询和更新属性中所保存数据的 ESQL 将引用处于相似方式的属性。
<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
SET OutputRoot.MRM.Name.LastName = 'Smith';
编写 ESQL 代码时,请注意属性的排列次序。当解析属性时,逻辑树在 MRM 元素的子元素前插入相应的名称-值。在前一个示例中,子元素标题和 FirstName 出现在属性 LastName 后的逻辑消息树中。在 “代理应用程序开发”透视图 中,“大纲”视图在元素后显示属性。当您编码 ESQL 来构造输出消息时,必须在任何子元素前为属性定义名称-值。