Quando viene analizzato un messaggio di input, le strutture definite come gruppi nella serie di messaggi non sono rappresentate nella struttura ad albero logica, ma lo sono i child. Se si desidera fare riferimento o aggiornare i valori per gli elementi child di un gruppo, non includere il gruppo nell'istruzione ESQL. I gruppi non hanno tag che compaiono nel messaggi di istanza e non compaiono nella traccia utente della struttura ad albero logica del messaggio.
Prendere in considerazione il seguente messaggio 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 viene analizzato il messaggio di input, i valori sono memorizzati nella struttura ad albero logica come mostrato nella seguente sezione della traccia utente:
(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
Immediatamente dopo l'elemento denominato ID, la definizione del messaggio MRM utilizza un gruppo che ha una Composizione di Scelta. Il gruppo è definito con tre child: PassportNo, DrivingLicenceNo e CreditCardNo. La composizione di scelta ordina che i documenti dell'istanza utilizzino solo una di queste tre possibili alternative. L'esempio mostrato sopra utilizza l'elemento PassportNo.
Quando si fa riferimento a questo elemento nelle istruzioni ESQL, non specificare il gruppo a cui appartiene l'elemento. Ad esempio:
SET OutputRoot.MRM.PassportNo = 'J999999TT';
Se si definiscono i messaggi all'interno delle serie di messaggi che includono i formati fisici XML e TDS, è possibile stabilire dai dati del messaggio quale opzione di una scelta è stata selezionata, poiché le tag nel messaggio rappresentano una delle opzioni della scelta. Tuttavia, se i messaggi hanno il formato fisico CWF o sono messaggi TDS senza tag, questo non è chiaro dai dati del messaggio e sono i programmi applicativi che elaborano il messaggio che devono stabilire quale opzione della scelta è stata selezionata. Questa procedura è nota come gestione scelta non risolta. Per ulteriori informazioni, consultare la descrizione del valore di Scelta nelle Proprietà logiche del tipo complesso.