<var> 要素は、<component> 要素の子である <varlist> の子です。<var> 要素はコンポーネント置換変数を宣言します。変数の名前と、宣言する必要がある各置換変数の値デフォルト値を指定する必要があります。
デフォルトでは、派生コンポーネントはそのベースコンポーネントのすべてのアクセス可能変数 (アクセスモード、修飾子、デフォルト値、プロンプトなど) を継承します。<var> 要素は <varList> 要素内で 1 回または複数回出現できます。
派生コンポーネントは、ベースコンポーネントから継承されている変数に含まれない名前を使用することで、追加の変数を定義できます。派生コンポーネントは、同じ名前を使用して変数を宣言し直すことにより、継承された非最終変数のプロンプト、デフォルト値、修飾子、アクセスモードなどをオーバーライドできます。変数をオーバーライドする場合は、変数の全コンテンツ (プロンプト、デフォルト値、アクセスモード、修飾子など) を宣言し直す必要があります。デフォルト値は、オーバーライドする変数が非抽象である場合にのみ指定できます。アクセスモードは、ベースコンポーネントのモードよりも厳しくすることはできません。
変数をオーバーライドすると、ベースコンポーネント内の参照も含め、その変数に対する参照はすべてオーバーライドされた値に評価されます。
派生コンポーネントを非抽象と宣言する場合、ベースコンポーネントによって宣言された抽象変数は派生コンポーネントによってオーバーライドする必要があります。
<var> 要素には次の属性があります。
access – accessEnum 型のオプション値で、変数のアクセシビリティを指定します。この属性は次の値を取ることができます。
PUBLIC – アクセスはまったく制限されません。これがデフォルトです。
PROTECTED – アクセスは同じパス内の派生コンポーネントとエンティティに制限されます。
PATH – アクセスは同じパス内のエンティティに制限されます。
PRIVATE – アクセスは当該コンポーネントに制限されます。
modifier – modifierEnum 型のオプション値で、変数のオーバーライド要件を指定します。この属性は次の値を取ることができます。
ABSTRACT – 変数の default 属性は省略されます。このため、この属性は 非抽象派生コンポーネントによって指定する必要があります。変数を抽象と宣言できるのは、コンポーネントも抽象と宣言されている場合だけです。抽象変数は専用には設定できません。非抽象変数は、デフォルト値を宣言する必要があります。
FINAL – 変数を派生コンポーネントによってオーバーライドすることはできません。
この属性を指定しない場合、派生コンポーネントは変数をオーバーライドするかどうかを選択できます。
name – identifier 型の必須値で、置換変数の名前。<varList> 要素内の <var> 要素により宣言される各変数名は一意でなければなりません。
default – 非抽象変数用の必須文字列で、置換変数のデフォルト値。この値には、ほかの置換変数、セッション変数、ターゲットホスト属性、インストールされているコンポーネント変数に対する参照を含めることができます。ただし、抽象変数はデフォルト値を定義できないため、この属性は抽象変数には使用できません。