L'istruzione ATTACH collega una parte di una struttura ad albero del messaggio in una nuova posizione nella gerarchia dei messaggi.
L'esempio riportato di seguito illustra come utilizzare l'istruzione ATTACH, insieme all'istruzione DETACH descritta in Istruzione DETACH, per modificare una struttura di messaggi. Il riferimento dinamico fornito all'istruzione DETACH deve puntare ad una struttura ad albero del messaggio modificabile, come, ad esempio, Environment, LocalEnvironment, OutputRoot, OutputExceptionList oppure InputLocalEnvironment.
Esistono alcune limitazioni per l'utilizzo di ATTACH. In generale, gli elementi scollegati dalle strutture ad albero di output di un nodo Compute non vengono collegate all'ambiente o alle strutture ad albero di input.
<Data> <Order> <Item>cheese <Type>stilton</Type> </Item> <Item>bread</Item> </Order> <Order> <Item>garlic</Item> <Item>wine</Item> </Order> </Data>le seguenti istruzioni ESQL:
SET OutputRoot = InputRoot; DECLARE ref1 REFERENCE TO OutputRoot.XML.Data.Order[1].Item[1]; DETACH ref1; ATTACH ref1 TO OutputRoot.XML.Data.Order[2] AS LASTCHILD;risulta nella seguente nuova struttura dei messaggi:
<Data> <Order> <Item>bread</Item> </Order> <Order> <Item>garlic</Item> <Item>wine</Item> <Item>cheese <Type>stilton</Type> </Item> </Order> </Data>
Per informazioni relative ai riferimenti dinamici, consultare Creazione di riferimenti di campo dinamici.