variable エレメント

<variable> エレメントは、変数を定義し、式によって参照可能な 形式で情報を保持します。変数は、ルール・セット、ルール・ブロック、または ルールの各レベルで定義できます。

詳細

ルール・セット変数
ルール・セット全体に適用され、そのルール・セット内の式による 参照が可能です。
ルール・ブロック変数
ルール・ブロック内 (およびそのルール・ブロックに含まれるすべてのルール・ブロック内) にのみ適用され、 そのルール・ブロック内の任意の式による参照が可能です。
ルール変数
そのルール内の式にのみ適用されます。

変数には、ルール階層の異なるレベルで同じ名前を 指定することができます。変数がアクセスされると、その変数の最も ローカルな定義が使用されます。例えば、ルール・セット・レベル、ルール・ブロック・レベル、および ルール・レベルで同じ名前を持つ変数が定義されている場合、ルール・レベルの変数定義が そのルール内の式によって使用されます。

変数が ルール・セットまたはルール・ブロック・レベルで定義されている場合、複数のルールが 別々の時点でこれらの変数を取得し、設定します。このため、正しい変数値が 確実に保持されるようにするには、ルール・セット内で変数間の相互作用をどのように コーディングするかについて認識しておく必要があります。

変数がルール・セット・レベルまたは ルール・ブロック・レベルで定義されている場合、ルール・パターンに一致した後は 再初期化されません。

以下のいずれかの条件下においては、不正な変数値の設定を 回避するために、ルール・セット変数およびルール・ブロック変数の取得および設定時に ロックを使用します。
  • <onTimeOut> アクション中にタイマー・ルールが変数を取得または設定した 場合
  • Active Correlation Technology エンジンが組み込まれたアプリケーションが マルチスレッド化された場合

ルールがグループ化キーを使用して定義されている場合、 <variable> エレメントによって定義されたルール変数は、ライフ・サイクル・アクション内、 または <activateOnEvent> エレメントに含まれる <filteringPredicate> エレメント内、 あるいは <activationInterval> エレメントに含まれる <deactivateOnEvent> エレメントで 無効です。これは、この場合ルール変数がルール・インスタンスにのみ適用され、 これらの式の実行時にルール・インスタンスが存在しない ためです。

属性

<variable> には、以下の属性があります。

表 1. <variable> エレメントの属性
名前 説明 データ・タイプ 必須?
name 特定の変数を識別します。変数はその名前によって 参照されます。 xsd:NMTOKEN はい
dataType 変数に含まれる情報のタイプを識別します。 これは、java.lang.String のように、完全修飾されたデータ・タイプでなければなりません。 xsd:NMTOKEN はい

変数の命名上の制約

変数名には特定の 制約事項があります。このため、<variable> エレメントの name 属性の値には、 以下の制約事項があります。
  • 変数には、以下の文字のみを使用できます。
    • 大文字の ASCII ラテン文字 A から Z。Unicode 表記は、\u0041 から \u005a です。
    • 小文字の ASCII ラテン文字 a から z。Unicode 表記は、\u0061 から \u007a です。
    • ASCII のアンダースコアー (_)。Unicode 表記は、\u005f です。
    • ドル記号 ($)。Unicode 表記は、\u0024 です。
    • ASCII の数字 0 から 9。Unicode 表記は \u0030 から \u0039 です。
  • NULL は使用できません。
  • 空ストリングにすることはできません。
  • スペースは使用できません。
  • ピリオドは使用できません。
  • 形式を問わず (大文字、小文字、大/小文字混合のいずれの形式であっても) act_ で開始することはできません。

このエレメントを含むエレメント

このエレメントに含まれるエレメント

<variable> には、以下のエレメントが含まれます。

以下のエレメントは、表示されている順序でコーディングする必要があります。エレメントがオプションである場合、コーディングする必要はありませんが、コーディングするエレメントはすべて正しい順序になっている必要があります。

表 2. <variable> エレメントに含まれるエレメント
エレメント 必須/オプション
<comment> オプション。指定できるのは 0 回または 1 回です。
<varInitializer> 必須。指定できるのは 1 回のみです。
関連概念
変数