N1 Service Provisioning System 4.1 リファレンスガイド

componentRef 要素

<componentRef> 要素は <componentRefList> 要素の子であり、当該コンポーネントによって参照されるコンポーネントを指定します。


注 –

componentRefs は、暗黙に PUBLIC アクセスモードとなります。


componentRef 要素属性

名前 

型 

必須 

構成可能 

説明 

modifier 

modifierEnum 

いいえ 

不可 

componentRef 修飾子 (詳細は下記) 

name 

identifier 

はい 

不可 

参照先コンポーネントのローカル名。 これは、すべての兄弟 <componentRef> 要素の中で一意となるようにする必要がある 

installMode 

次の 1 つ:  

  • TOPLEVEL

  • NESTED

いいえ 

不可 

参照先コンポーネントをインストールする方法。 指定しないと、デフォルトで NESTED が使用される 

componentRef modifier 属性

<componentRef> 要素の「modifier」属性は、コンポーネント参照の優先指定要件を指定します。

ABSTRACT の場合、コンポーネント参照の <component> 要素は省略されます。このため、この要素は非抽象派生コンポーネントによって指定する必要があります。 コンポーネント参照を抽象と宣言できるのは、コンポーネントも抽象と宣言されている場合だけです。 非抽象コンポーネント参照は、<component> 要素を宣言する必要があります。

FINAL の場合、コンポーネント参照は派生コンポーネントによって無効にできません。

指定しない場合、派生コンポーネントはコンポーネント参照を無効にするかどうかを選択できます。

componentRef installMode 属性

<componentRef> 要素の「installMode」属性は、参照先コンポーネントをインストールして対象化する方法を指定します。 参照先コンポーネントが TOPLEVEL としてインストールされている場合、1 つのプランで直接インストールされたかのように、ほかの任意のコンポーネントがそのコンポーネントを使用できます。 しかし、参照先コンポーネントが NESTED としてインストールされている場合、そのインストールの範囲は参照元コンポーネントのインストール範囲に暗黙に限定され、そのサービスも参照元コンポーネントでしか利用できません。

論理的に、入れ子になった参照先コンポーネントは参照元コンポーネントが要求する細かな機能単位を定義しますが、ほかのコンポーネントに役立つことはありません。 一方、最上位の参照先コンポーネントは参照元コンポーネントが使用するサービスを定義しますが、ほかのコンポーネントもこのサービスを使用することもできます。

入れ子になった参照先コンポーネントの有効期間は、参照元コンポーネントの有効期間と暗黙に同じになります。 入れ子になった参照先コンポーネントのインストールは参照元コンポーネントのインストールの最中にしか行えず、参照元コンポーネントがアンインストールされる際に暗黙にアンインストールされます。 これに対し、最上位の参照先コンポーネントの有効期間が参照元コンポーネントの有効期間と同じになることはありません。 最上位の参照先コンポーネントは、参照元コンポーネントのインストール時に参照元コンポーネントによってインストールすることも、あるいはほかの方法であらかじめインストールしておくか、あとからインストールすることもできます。 参照元コンポーネントがアンインストールされる場合、明示的に参照元コンポーネントによってアンインストールされないかぎり最上位の参照先コンポーネントはインストールされたままとなります。 また、ほかのコンポーネントも参照先コンポーネントをアンインストールできます。

componentRef 子要素

名前 

数 

説明 

type 

0 または 1 

当該参照先コンポーネントがインスタンスとなるべき型を指定する。 これは、包含する <componentRefList> によって指定される型のインスタンスでなければならない。 指定しないと、包含する <componentRefList> によって指定された型が使用される 

argList 

0 または 1 

参照先コンポーネントのインストール時にそれらのコンポーネント変数設定として使用される値の一覧。  

component 

1 1 

参照先コンポーネント 

1 抽象 componentRefs には含めることができません。

componentRef の継承と優先指定

デフォルトでは、派生コンポーネントはそのベースコンポーネントのすべてのコンポーネント参照を継承します。

ベースコンポーネントの <componentRefList> 要素が最終でない場合、派生コンポーネントはベースコンポーネントから継承されたコンポーネント参照に使用されていない名前を使用して、別のコンポーネント参照を定義できます。

派生コンポーネントは、同じ名前を使用してコンポーネント参照を宣言し直すことにより、非最終継承コンポーネント参照のコンポーネント参照を無効にできます。 コンポーネント参照が無効にされた場合には、コンポーネント参照の全コンテンツを宣言し直す必要があります。 優先する installMode は、本来の参照のものと同じでなければなりません。 優先する <type> 要素は、本来の型のインスタンスでなければなりません。 優先する <argList> 要素は、本来のものと結合されます (詳細は以下)。 <component> 要素は、優先する参照が非抽象の場合にかぎって指定されます。

コンポーネント参照を無効にすると、ベースコンポーネント内のものも含め、そのコンポーネント参照の使用はすべて無効にされた値に評価されます。


注 –

派生コンポーネントを非抽象と宣言する場合、ベースコンポーネントによって宣言された抽象的なコンポーネント参照は派生コンポーネントによって無効にする必要があります。