La sentencia ATTACH asocia una parte de un árbol de mensaje a una posición nueva de la jerarquía de menajes.
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.XML.Data.Order[1].Item[1]; DETACH ref1; ATTACH ref1 TO OutputRoot.XML.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.