El constructor LIST es una función compleja que se utiliza para generar de forma explícita listas de valores que se pueden asignar a campos de un mensaje de salida.
LIST consta de una secuencia de valores sin nombre. Cuando se asigna a una referencia de campo de matriz (lo que se indica añadiendo como sufijo [] al último elemento de la referencia), cada valor se asigna de forma secuencial a un elemento de la matriz. No se puede asignar LIST a una referencia de campo que no sea de matriz.
<Car>
<size>big</size>
<color>red</color>
</Car>
El ESQL siguiente: SET OutputRoot.XMLNS.Data.Result[] = LIST{InputBody.Car.colour,
'green',
'blue'};
genera los resultados siguientes: <Data>
<Result>red</Result>
<Result>green</Result>
<Result>blue</Result>
</Data>
En el caso de LIST, no hay un nombre explícito asociado a cada valor. Los valores se asignan en secuencia a los elementos de la matriz del campo de mensaje especificada como el destino de la asignación. Para encerrar los elementos de LIST se utilizan llaves en lugar de paréntesis.<Data>
<Field>Keats</Field>
<Field>Shelley</Field>
<Field>Wordsworth</Field>
<Field>Tennyson</Field>
<Field>Byron</Field>
</Data>
El ESQL siguiente: -- Copiar todo el mensaje de entrada en el mensaje de salida,
-- incluida la matriz del campo de mensajes XML como anteriormente
SET OutputRoot = InputRoot;
SET OutputRoot.XMLNS.Data.Field[] = LIST{'Henri','McGough','Patten'};
genera la salida siguiente: <Data>
<Field>Henri</Field>
<Field>McGough</Field>
<Field>Patten</Field>
</Data>
Los miembros anteriores de la matriz Data.Field[] se han descartado. Al asignar una lista de valores nueva a una matriz de campo de mensajes existente se suprimen todos los elementos de la matriz existente antes de que se asignen los nuevos.