A função complexa do construtor LIST é utilizada explicitamente para gerar linhas de valores que podem ser designados a campos em uma mensagem de saída.
Uma LIST consiste em uma seqüência de valores não denominados. Quando designado a uma referência de campo de matriz (indicada por [] sufixada ao último elemento da referência), cada valor é designado em seqüência a um elemento da matriz. Uma LIST não pode ser designada a uma referência de campo de sem-matriz.
<Car> <size>big</size> <color>red</color> </Car>O seguinte ESQL:
SET OutputRoot.XML.Data.Result[] = LIST{InputBody.Car.colour, 'green', 'blue'};produz os seguintes resultados:
<Data> <Result>red</Result> <Result>green</Result> <Result>blue</Result> </Data>Em caso de uma LIST, não existe nenhum nome explícito associado a cada valor. Os valores são designados em seqüência a elementos da matriz do campo de mensagem especificados como o destino da designação. São utilizadas chaves em vez de parênteses para circundar os itens de LIST.
<Data> <Field>Keats</Field> <Field>Shelley</Field> <Field>Wordsworth</Field> <Field>Tennyson</Field> <Field>Byron</Field> </Data>o seguinte ESQL:
-- Copie a mensagem de entrada inteira na mensagem de saída, -- incluindo a matriz do campo de mensagem XML conforme acima SET OutputRoot = InputRoot; SET OutputRoot.XML.Data.Field[] = LIST{'Henri','McGough','Patten'};Produz a seguinte saída:
<Data> <Field>Henri</Field> <Field>McGough</Field> <Field>Patten</Field> </Data>Os membros anteriores da matriz Data.Field[] foram descartados. A designação de uma nova lista de valores a uma matriz de campo de mensagens já existente remove todos os elementos na matriz existente antes da designação de novos.