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.XMLNS.Data.Result[] = LIST{InputBody.Car.colour,
'green',
'blue'};
produz os
seguintes resultados: <Data>
<Result>red</Result>
<Result>green</Result>
<Result>blue</Result>
</Dados>
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>
</Dados>
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.XMLNS.Data.Field[] = LIST{'Henri','McGough','Patten'};
Produz a seguinte saída: <Data>
<Field>Henri</Field>
<Field>McGough</Field>
<Field>Patten</Field>
</Dados>
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.