Quando uma mensagem de entrada é analisada, as estruturas definidas como grupos em seu conjunto de mensagens não são representadas na árvore lógica, mas seus filhos são. Se desejar referir-se a ou atualizar valores para elementos que são filhos de um grupo, não inclua o grupo na instrução ESQL. Os grupos não possuem marcações que aparecem nas mensagens de instância e não aparecem no rastreio do usuário da árvore de mensagem lógica.
Considere a seguinte mensagem 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>
Quando a mensagem de entrada é analisada, os valores são armazenados na árvore lógica, conforme mostrado na seguinte seção de rastreio do usuário:
(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
Imediatamente após o elemento denominado ID, a definição da mensagem MRM utiliza um grupo que possui uma Composição de Opção. O grupo é definido com três filhos: PassportNo, DrivingLicenceNo e CreditCardNo. A opção de composição estabelece que os documentos da instância devem utilizar apenas uma dessas três possíveis alternativas. O exemplo mostrado acima utiliza o elemento PassportNo.
Quando referir-se a este elemento em instruções ESQL, não especifique o grupo ao qual o elemento pertence. Por exemplo:
SET OutputRoot.MRM.PassportNo = 'J999999TT';
Se você definir mensagens em conjuntos de mensagens que incluem formatos físicos XML e TDS, poderá determinar a partir dos dados da mensagem qual opção de uma opção foi utilizada, porque as marcações na mensagem representam uma das opções da opção. No entanto, se suas mensagens tiverem formato físico CWF, ou forem mensagens TDS sem tag, isto não ficará evidente nos dados da mensagem e os programas aplicativos que processam a mensagem devem determinar qual opção da opção foi selecionada. Isso é conhecido como tratamento de opções não resolvido.Para obter informações adicionais, consulte a descrição do valor de Opção em Propriedades Lógicas de Tipo Complexo.