Bei der Analyse einer Eingabenachricht werden nicht die Strukturen, die Sie als Gruppen in Ihrer Nachrichtengruppe definiert haben, in der logischen Baumstruktur dargestellt, sondern die untergeordneten Elemente. Wenn Sie auf Werte für Elemente verweisen möchten, die untergeordnete Elemente einer Gruppe sind, oder diese Werte aktualisieren möchten, dürfen Sie die Gruppe nicht in die ESQL-Anweisung aufnehmen. Gruppen haben keine Tags, die in Nachrichteninstanzen vorkommen, und treten nicht in der Benutzertrace der logischen Nachrichtenbaumstruktur auf.
Betrachten Sie folgende Video-Nachricht:
<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>
Sobald die Eingabenachricht syntaktisch analysiert wird, werden die Werte in der logischen Baumstruktur gespeichert. Siehe hierzu den folgenden Ausschnitt eines Benutzertrace:
(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
In direkter Folge auf das Element namens "ID" verwendet die MRM-Nachrichtendefinition eine Gruppe, deren Zusammensetzung auf Auswahl gesetzt ist. Die Gruppe ist mit drei untergeordneten Elementen definiert: PassportNo, DrivingLicenceNo und CreditCardNo. Die Zusammensetzung der Auswahl legt fest, dass Instanzdokumente nur eine dieser drei möglichen Alternativen verwenden dürfen. Im Beispiel oben wird das PassportNo-Element verwendet.
Wenn Sie in ESQL-Anweisungen auf dieses Element verweisen, geben Sie nicht die Gruppe an, der das Element angehört. Beispiel:
SET OutputRoot.MRM.PassportNo = 'J999999TT';
Wenn Sie Nachrichten in Nachrichtengruppen definieren, welche die physischen Formate XML und TDS umfassen, können Sie anhand der Nachrichtendaten bestimmen, welche Auswahloption gewählt wurde, da die Tags in der Nachricht eine der Auswahloptionen darstellen. Wenn Ihre Nachrichten jedoch das physische Format CWF haben oder es sich dabei um TDS-Nachrichten ohne Tags handelt, müssen die Anwendungsprogramme, die die Nachricht verarbeiten, bestimmen, welche Auswahloption ("Choice") ausgewählt wurde. Man nennt dies Handhabung unaufgelöster Auswahlfelder. Weitere Informationen finden Sie in der Beschreibung des Wertes Auswahl unter Logische Eigenschaften des komplexen Typs.