<controlList> 要素は <component> 要素のオプションの子であり、当該コンポーネントで利用できる制御ブロックをリストします。この要素を使用する場合、この要素は 1 回しか出現できません。
この要素には制御ブロックである必須子要素 <control>があります。複数の <control> 要素を指定できます。
デフォルトでは、派生コンポーネントはそのベースコンポーネントの、アクセスが可能な <controlList> 要素コンテンツを継承します。派生コンポーネントが <controlList> を宣言する場合、そのコンテンツはベースコンポーネントのコンテンツと完全に結合されます。派生コンポーネントは新しい <control> 要素を宣言することで継承された要素をオーバーライドできますが、ベースコンポーネントによって宣言された要素を削除することはできません。
<control> 要素は、当該コンポーネントで利用できる制御ブロックを定義します。制御ブロックは、当該コンポーネントのインストールが完了したあとで実行できる一連のステップです。たとえば、データベースアプリケーションのコンポーネントに制御ブロックを含め、データベースの「起動」または「停止」を行えます。 <call> ステップは、名前で制御ブロックを呼び出すことができます。この呼び出しにより、制御ブロックステップが順に実行されます。
<control> 要素の子は、オプションの <paramList> 要素とそれに続く本体から構成されます。この本体は、オプションのローカル <varList> 要素と、それに続くゼロ個以上の「共通」ステップから構成されます。詳細は、「共有ステップ」を参照してください。制御ブロックが抽象と宣言されている場合、本体は含められません。
デフォルトでは、派生コンポーネントはそのベースコンポーネントの、アクセス可能なすべての制御ブロックを継承します。制御ブロックをオーバーライドするセマンティクスは、インストールブロックをオーバーライドするセマンティクスと同じです。
<control> 要素には次の属性があります。
access – accessEnum 型のオプション属性で、制御ブロックのアクセシビリティを指定します。次の値が有効です。
PUBLIC – アクセスは制限されません。これがデフォルト値です。
PROTECTED – アクセスは同じパス内の派生コンポーネントとエンティティに制限されます。
PATH – アクセスは同じパス内のエンティティに制限されます。
PRIVATE – アクセスは当該コンポーネントに制限されます。
コンポーネントから直接実行できるのは PUBLIC ブロックだけです。
modifier – modifierEnum 型のオプション属性で、制御ブロックのオーバーライド要件を指定します。次の値が有効です。
ABSTRACT – ブロックに本体を含めることはできません。その代わりに本体は、非抽象派生コンポーネントによって指定する必要があります。制御ブロックを抽象と宣言できるのは、コンポーネントも抽象と宣言されている場合だけです。抽象ブロックは専用にはできません。非抽象ブロックの場合、本体を宣言する必要があります。
FINAL – 制御ブロックを派生コンポーネントによってオーバーライドすることはできません。
この属性を指定しない場合、派生コンポーネントはブロックをオーバーライドするかどうかを選択できます。
name – entityName 型の必須属性で、制御ブロックの名前。これは、制御を実行するために <call> ステップから参照されます。