La sentencia ATTACH asocia una parte de un árbol de mensaje a una posición nueva de la jerarquía de menajes.
>>-ATTACH--referencia dinámica--TO--referencia campo------------> >--AS--+-FIRSTCHILD------+------------------------------------->< +-LASTCHILD-------+ +-PREVIOUSSIBLING-+ '-NEXTSIBLING-----'
El ejemplo siguiente ilustra cómo se utiliza la sentencia ATTACH, junto con la sentencia DETACH descrita en Sentencia DETACH, para modificar una estructura de mensajes. La referencia dinámica que se proporciona a la sentencia DETACH debe apuntar a un árbol de mensaje modificable como, por ejemplo, Environment, LocalEnvironment, OutputRoot, OutputExceptionList o InputLocalEnvironment.
Hay algunas limitaciones en el uso de ATTACH. En general, los elementos separados de los árboles de salida de un nodo Compute no se asocian a los árboles de entorno o de entrada.
<Data>
<Order>
<Item>queso
<Type>stilton</Type>
</Item>
<Item>pan</Item>
</Order>
<Order>
<Item>ajo</Item>
<Item>vino</Item>
</Order>
</Data>
las sentencias ESQL siguientes: SET OutputRoot = InputRoot;
DECLARE ref1 REFERENCE TO OutputRoot.XMLNSC.Data.Order[1].Item[1];
DETACH ref1;
ATTACH ref1 TO OutputRoot.XMLNSC.Data.Order[2] AS LASTCHILD;
dan como resultado la siguiente estructura de mensajes nueva: <Data>
<Order>
<Item>pan</Item>
</Order>
<Order>
<Item>ajo</Item>
<Item>vino</Item>
<Item>queso
<Type>stilton</Type>
</Item>
</Order>
</Data>
Para obtener información acerca de las referencias dinámicas, consulte Creación de referencias de campo dinámicas.