In XML-Schemas sind Elemente oder Attribute zulässig, die eine Liste mit Werten beinhalten, die auf einem einfachen Typ mit einzelnen durch Leerzeichen getrennten Werten basieren.
<message1> <listE1 listAttr="one two three"> four five six</listE1> </message1>
In der daraus resultierenden Nachrichtenbaumstruktur wird der Typ xsd::list als ein Knotenname mit einem anonymen untergeordneten Wertelement für jeden Listeneintrag dargestellt. Dies ermöglicht die Bearbeitung sich wiederholender Listen, ohne dass Informationen verloren gehen.
MRM listEl (Name) listAttr (Name) "one" (Wert) "two" (Wert) "three" (Wert) "four" (Wert) "five" (Wert) "six" (Wert)
SET OutputRoot.MRM.listEl.listAttr.*[3] = ...ändert das dritte Element von listAttr.
<MRM> <inner>abcde fghij 12345</inner> </MRM>. Dabei ist dem Element 'inner' der Typxsd::list zugeordnet. Ihm sind also drei Zeichenfolgewerte anstatt eines einzelnen Werts zugeordnet.
<MRM> <str1>abcde</str1> <str1>fghij</str1> <str1>12345</str1> </MRM>wird davon ausgegangen, 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;
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 erstellt und der zugehörige Wert und Typ werden von der Quelle aus definiert.
Dies ist mit Verhalten von ESQL konsistent, jedoch können Pseudo-Gültigkeitsfehlerauftreten, wenn den Elementen der Typ list zugeordnet ist.
SET OutputRoot.MRM.str1[M] = FIELDVALUE(InputBody.inner.*[M]);