あるコンポーネントが出現した時の変数の値を更新する式です。要素のマップ式と同じ内容を定義できます。要素のマップ式については,「6.6.6(1) 要素のマップ式」を参照してください。一つのコンポーネントに対して,複数の変数式を指定できます。ただし,変数式で定義する変数は省略できないコンポーネントと同様に扱われ,出現回数は1回だけになります。
変数式の評価規則は次のとおりです。
- 変数式は,式を定義したコンポーネントが1回出現した時に評価されます。
- 変数式を定義したコンポーネントが省略された場合は,変数式は評価されません。
- 変数式は,式を定義したコンポーネントが出現した回数の分だけ評価されます。
- 変数のパスは,「フォーマット名@変数名」で表記します。
- 変数自体は,インデクスを持ちません。
- 一つのコンポーネントの中では,変数式は式定義順序に従って評価されます。
- 変数式に対しては,評価順序遅延(%delay)を指定できません。ただし,変数式を定義したコンポーネントに対して評価順序遅延(%delay)が指定されている場合は,変数式の評価順序も遅延します。
- 「¥n」やINDEX関数の引数など,変数式で使用する階層指定は,変数が所属するコンポーネントに基づいて決定されます。
- 「#」は,変数が所属するコンポーネントを表します。
- 変数式を定義したコンポーネントの親又は先祖のマップ式を引き継ぐ場合は,$パスを使用します。