Daten zwischen einer Liste und einem sich wiederholenden Element kopieren

Diese Aufgabe zeigt, wie Sie mit ESQL Daten von einer Liste in ein sich wiederholendes Element kopieren können.

Informationen zu dieser Task

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 Werts 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 Baumstrukturkopie von Eingabe zu Ausgabe an. Da das Ausgabeelement noch nicht vorhanden ist, wird es mit der Anweisung erstellt und der zugehörige Wert und Typ werden von der Eingabe aus definiert.
Verwenden Sie daher zum Erstellen der Ausgabenachricht mit dem erforderlichen Format unter Verwendung eines Eingabeelements des Typs xsd:listdie Funktion FIELDVALUE , um explizit nur den Wert des Eingabeelements abzurufen:
	SET OutputRoot.MRM.str1[M] = FIELDVALUE(InputBody.inner.*[M]);