Zuordnung einer Liste zu einem sich wiederholendem Element

Betrachten Sie das Format der folgenden XML-Eingabenachricht:
   <MRM>
     <inner>abcde fghij 12345</inner>
   </MRM> 
Dabei ist dem Element 'inner' der Typ xsd:list zugeordnet. Ihm sind also drei Zeichenfolgewerte statt eines einzelnen Wertes zugeordnet.
Sie können die drei Werte in eine Ausgabenachricht kopieren, in der jeder Wert wie folgt einer Instanz der sich wiederholenden Elemente zugeordnet ist:
   <MRM>
     <str1>abcde</str1>
     <str1>fghij</str1>
     <str1>12345</str1>
   </MRM> 
Es kann davon ausgegangen werden, dass die folgende ESQL-Syntax gültig ist:
   DECLARE D INTEGER;
   SET D = CARDINALITY(InputBody.str1.*[]);
   DECLARE M INTEGER 1;
   WHILE M <= D DO
      SET OutputRoot.MRM.str1[M] = InputBody.inner.*[M];
      SET M = M + 1;
   END WHILE;
Die Anweisung
	SET OutputRoot.MRM.str1[M] = InputBody.inner.*[M];
fordert eine Kopie der Baumstruktur von der Quelle in das Ziel an. Da das Zielelement noch nicht vorhanden ist, wird es mit der Anweisung erstellt, und der zugehörige Wert und Typ werden von der Quelle aus definiert.
Um bei einem Eingabeelement des Typs xsd:list die Ausgabenachricht mit dem erforderlichen Format zu erstellen, müssen Sie deshalb die FIELDVALUE-Funktion verwenden, um explizit nur den Wert des Quellenelements abzurufen:
	SET OutputRoot.MRM.str1[M] = FIELDVALUE(InputBody.inner.*[M]);
Zugehörige Tasks
ESQL erstellen
Zugriff auf Elemente im Nachrichtenhauptteil
Zugehörige Verweise
SET-Anweisung
FIELDVALUE-Funktion
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:29:34

ak20820_