N1 Grid Service Provisioning System 5.0 XML スキーマリファレンスガイド

<componentRefList> 要素

<componentRefList> 要素は <component> 要素のオプションの子であり、当該コンポーネントによって参照されるコンポーネントの一覧を指定します。この要素は、<resourceRef> 要素とは併用できません。この要素およびその子の構成可能属性は、コンポーネント置換変数を参照できます。この要素を使用する場合、この要素は 1 回しか出現できません。

コンポーネントが複合コンポーネントから派生する場合、あるいは <resourceRef> 要素を含まない非派生コンポーネントである場合、そのコンポーネントは複合コンポーネントになります。派生コンポーネントが複合コンポーネントから派生している場合、その派生コンポーネントに含めることができるのは <componentRefList> 要素だけです。

<componentRefList> 要素には、次のオプションの子要素があります。

デフォルトでは、派生コンポーネントはそのベースコンポーネントの <componentRefList> 要素のコンテンツを継承します。派生コンポーネントが <componentRefList> を宣言する場合、そのコンテンツはベースコンポーネントのコンテンツと完全に結合されます。派生コンポーネントは、新しい <componentRef> 要素を宣言することで継承された要素をオーバーライドできます。ベースコンポーネントによって宣言された要素を削除することはできません。

派生コンポーネントは、親コンポーネントの <componentRefList> 要素によって宣言されている <type> 要素をオーバーライドできます。このためには、<componentRefList> 内の <type> 属性を宣言し直します。この場合、オーバーライドされる型は、オリジナルの型のインスタンスであるか、あるいはオリジナルの型が指定されている必要があります。さらに、すべての参照先コンポーネント (ベースコンポーネントから継承されるものを含む) はオーバーライドされる型のインスタンスでなければなりません。

<componentRefList> 要素の属性

<componentRefList> 要素には 1 つのオプション属性 modifier があり、これはリソースのオーバーライド要件を指定します。この属性を指定する場合、値は FINAL でなければなりませんが、これは派生コンポーネントが新しい <componentRef> 要素を宣言できないことを意味します。

この属性を指定しない場合、派生コンポーネントは新しい <componentRef> 要素を追加できます。どちらの場合も、派生コンポーネントは <type> 要素と非最終継承 <componentRef> 要素をオーバーライドできます。ベースコンポーネントの <componentRefList> modifier 属性が FINAL である場合、派生コンポーネントの modifier 属性も FINAL である必要があります。

<componentRefList> 要素の modifierFINAL である場合、含まれる各 <componentRef>modifier 属性は必ずしも FINAL ではありません。

<componentRef> 要素

<componentRef> 要素は <componentRefList> 要素の子で、当該コンポーネントによって参照されるコンポーネントを指定します。この要素は、暗黙的に PUBLIC アクセスとなります。

<componentRef> 要素には子要素があり、それらは次の順序で出現する必要があります。

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

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

派生コンポーネントは、同じ名前を持つコンポーネント参照を宣言し直すことにより、非最終継承コンポーネント参照のコンポーネント参照をオーバーライドできます。コンポーネント参照がオーバーライドされた場合には、コンポーネント参照の全コンテンツを宣言し直す必要があります。オーバーライドする installMode は、オリジナルの参照のものと同じでなければなりません。オーバーライドする <type> 要素は、オリジナルの型のインスタンスでなければなりません。オーバーライドする <argList> 要素は、オリジナルのものと結合されます。詳細は、<argList> 要素」を参照してください。<component> 要素は、オーバーライドする参照が非抽象の場合にのみ指定されます。

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

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

<componentRef> 要素の属性

<componentRef> 要素には次の属性があります。

<argList> 要素

<argList> 要素は <componentRef> 要素の子で、参照先コンポーネントのインストール時に、そのコンポーネント変数設定として使用される値の一覧を指定します。この <argList> の書式は、 <call> ステップの <argList> 子要素の書式と同じです。詳細は、<call> ステップ」を参照してください。

参照が ABSTRACT の場合、<argList> 要素の各属性は、参照先コンポーネントにおけるコンポーネント変数または宣言された型を指定します。<argList> 要素の属性の値は、参照先コンポーネントのインストール時に、指定されたコンポーネント変数に使用されるオーバーライド値です。

コンポーネント参照が派生コンポーネントによってオーバーライドされる場合、ベースコンポーネントおよび派生コンポーネントの <argList> 要素は、効率よく結合されます。この結合は、ベースコンポーネントの <argList> のコンテンツを参照先コンポーネントに適用し、続いて派生コンポーネントの <argList> を適用することによって行われます。ベースコンポーネント参照の <argList> を処理する場合、考慮されるのはベースコンポーネント参照の宣言された型で定義された変数だけです。

<argList> で指定されていないコンポーネント変数は、インストール時にそれらのデフォルト値を使用します。<argList> が指定されていない場合、参照先コンポーネントがインストールされ、またそのすべての変数のデフォルト値を使用します。<argList> で指定される参照先コンポーネントの変数は、参照元コンポーネントからアクセス可能でなければなりません。また、これらの変数はアクセスモード FINAL ではなく、PUBLIC または PROTECTED で宣言されていなければなりません。

最上位の参照先コンポーネントの場合、<argList> 要素が使用されるのは参照先コンポーネントが参照元コンポーネントによってインストールされている場合だけです。参照先コンポーネントは、ほかの方法でインストールされていることもあります。この場合、<argList> は意味を持ちません。

<component> 要素

<component> 要素は <componentRef> 要素の子で、参照先コンポーネントを特定します。この要素の構造は、host 属性が許可されない点を除き、<component> リポジトリコンポーネントターゲッターと同じです。参照先コンポーネントバージョンは、包含コンポーネントの保存時にリポジトリ内に存在する必要があります。

version 属性を指定しないと、version は包含コンポーネントの保存時に存在する参照先コンポーネントの最新バージョンに解決されます。参照先コンポーネントのバージョンが存在しない場合、保存時のエラーが発生します。包含コンポーネントが保存されると、当該コンポーネントが参照するすべてのコンポーネントのバージョンがロックされます。参照先コンポーネントは、コンテナコンポーネントの新しいバージョンを作成しない限り変更できません。