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.
<Carro> <tamanho>grande</tamanho> <cor>vermelho</cor> </Carro>O seguinte ESQL:
SET OutputRoot.XML.Data.Result[] = LIST{InputBody.Car.colour, 'green', 'blue'};produz os seguintes resultados:
<Dados> <Resultado>vermelho</Resultado> <Resultado>verde</Resultado> <Resultado>azul</Resultado> </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.
<Dados> <Campo>Keats</Campo> <Campo>Shelley</Campo> <Campo>Wordsworth</Campo> <Campo>Tennyson</Campo> <Campo>Byron</Campo> </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.XML.Data.Field[] = LIST{'Henri','McGough','Patten'};Produz a seguinte saída:
<Dados> <Campo>Henri</Campo> <Campo>McGough</Campo> <Campo>Patten</Campo> </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.