La funzione complessa del costruttore LIST viene utilizzata per generare in modo esplicito elenchi di valori che possono essere assegnati ai campi in un messaggio di output.
LIST è formata da una sequenza di valori senza nomi. Quando assegnata ad un riferimento di campo di array (indicato da [] preceduto dall'ultimo elemento del riferimento), ciascun valore viene assegnato in sequenza da un elemento dell'array. LIST non può essere assegnata a riferimenti di campo non di array.
<Car> <size>big</size> <color>red</color> </Car>Il seguente codice ESQL:
SET OutputRoot.XML.Data.Result[] = LIST{InputBody.Car.colour, 'green', 'blue'};produce i seguenti risultati:
<Data> <Result>red</Result> <Result>green</Result> <Result>blue</Result> </Data>Nel caso di LIST, non esiste alcun nome esplicito associato a ciascun valore. I valori vengono assegnati in sequenza agli elementi dell'array del campo di messaggio specificati come destinazione dell'assegnazione. Per racchiudere gli elementi di LIST vengono utilizzate le parentesi graffe invece delle normali parentesi.
<Data> <Field>Keats</Field> <Field>Shelley</Field> <Field>Wordsworth</Field> <Field>Tennyson</Field> <Field>Byron</Field> </Data>Il seguente codice ESQL:
-- Copy the entire input message to the output message, -- including the XML message field array as above SET OutputRoot = InputRoot; SET OutputRoot.XML.Data.Field[] = LIST{'Henri','McGough','Patten'};Produce il seguente output:
<Data> <Field>Henri</Field> <Field>McGough</Field> <Field>Patten</Field> </Data>I membri precedenti dell'array Data.Field[] sono stati eliminati. L'assegnazione di un nuovo elenco di valori ad un array del campo di messaggi esistente rimuove tutti gli elementi nell'array esistente prima che vengano assegnati i nuovi elementi.