ATTACH ステートメントは、メッセージ・ツリーの一部をメッセージ階層の新しい部分として接続します。
>>-ATTACH--dynamic reference--TO--field reference---------------> >--AS--+-FIRSTCHILD------+------------------------------------->< +-LASTCHILD-------+ +-PREVIOUSSIBLING-+ '-NEXTSIBLING-----'
次の例は、ATTACH ステートメントの使用方法を示すものです。DETACH ステートメントで説明する DETACH ステートメントと一緒に使用して、メッセージ構造を変更する方法が示されています。DETACH ステートメントに指定する動的参照は、Environment、LocalEnvironment、OutputRoot、OutputExceptionList、または InputLocalEnvironment など、変更可能なメッセージ・ツリーを指すものでなければなりません。
ATTACH の使用に際しては、いくらかの制限があります。 一般に、Compute ノードの出力ツリーから切り離されたエレメントは、環境ツリーまたは入力ツリーに付加できません。
<Data>
<Order>
<Item>cheese
<Type>stilton</Type>
</Item>
<Item>bread</Item>
</Order>
<Order>
<Item>garlic</Item>
<Item>wine</Item>
</Order>
</Data>
次の ESQL ステートメントは、 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;
次に示す新しいメッセージ構造を戻します。 <Data>
<Order>
<Item>bread</Item>
</Order>
<Order>
<Item>garlic</Item>
<Item>wine</Item>
<Item>cheese
<Type>stilton</Type>
</Item>
</Order>
</Data>
動的参照については、動的フィールド参照の作成を参照してください。