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.XML.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.XML.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.