DECLARE ステートメント

DECLARE ステートメントは、完全なネーム・スペース名の別名の役割をする定数を定義します。

構文

注:
  1. NAMESPACE および NAME 文節が使用された場合は、 値は暗黙的に定数かつタイプ CHARACTER (または CHAR) です。

定数はスキーマ、モジュール、ルーチン、または複合ステートメント (暗黙および明示の両方) 内で宣言できます。 それぞれの場合の動作は次のとおりです。

ルーチン内で宣言された定数または変数は、含まれているモジュールおよびスキーマ内で 宣言されているのと同じ名前のすべてのパラメーター、および同じ名前のすべての定数および 変数をオーバーレイします。

任意の 1 つのスキーマまたはモジュール内では、すべての定数が 1 つのネーム・スペースに入ります。 モジュール内で宣言された定数は、含んでいるスキーマ内で宣言されたのと 同じ名前およびタイプのすべての定数をオーバーレイします。

DECLARE ステートメント内の定数は、常に単一の非修飾 ID によって参照されます。

スキーマ・レベルでは、DECLARE ステートメントは定数の宣言だけをサポートします。

この関数はネーム・スペース定数とネーム・スペースの間の 1 対 1 マッピングの作成も行います。 これにより、内容支援 (このポイントで入力できるすべての有効なシンボルをリストする) および 影響分析 (このエレメントへのすべての参照をリストする) などの機能を組み込むことができます。

SpaceId (ネーム・スペース定数の名前と同等ではない) が検出されると、エラーが報告されます。 このことは、名前によるエレメントへの明示的参照にのみ適用されます。

次の例は、ネーム・スペース宣言をパス内の SpaceId として、 およびネーム・スペース式内の文字定数として使用した場合を例示しています。

              DECLARE prefixOne NAMESPACE 'http://www.example.com/PO1';

              -- On the right hand side of the assignment a namespace constant is being used as such while,
       -- on the left hand side, one is being used as an ordinary constant (that is, in an expression).
SET OutputRoot.XML.{prefixOne}:{'PurchaseOrder'} = InputRoot.XML.prefixOne:PurchaseOrder;

関連概念
ESQL

関連タスク
ESQL の開発
動的フィールド参照の作成

関連資料
構文の設定
ESQL のステートメント