コンポーネントは、<component> 要素で囲まれます。1 つのコンポーネントのバージョンはすべて、同じ名前とパスを持つ必要があります。この要素の属性は、コンポーネントスコープ置換変数を参照できます。
<component> 要素には次の属性があります。
xmlns:xsi – 値 http://www.w3.org/2001/XMLSchema-instance を持つ必須文字列。
xsi:schemaLocation – オプション文字列。推奨値は http://www.sun.com/schema/SPS component.xsd です。
access – コンポーネントのアクセシビリティー (ほかのコンポーネントがそのコンポーネントをどのように参照できるか) を指定するオプション属性でです。次の 3 つの値が有効です。
PATH – コンポーネントを参照できるのはそのコンポーネントと同じパス内に存在するほかのコンポーネントだけです。 access=“PATH” の場合、そのコンポーネントを直接インストールすることはできず、入れ子になった参照を使用してほかのコンポーネントにそのコンポーネントを含めることしかできません。
PUBLIC – コンポーネントは任意のコンポーネントから参照でき、PATH アクセスで課せられる制限にも制約されません。これがデフォルト値です。
modifier – modifierEnum 型のオプション値で、コンポーネントに関する次のオーバーライド要件を指定します。
ABSTRACT – コンポーネントを「抽象コンポーネント」に指定します。抽象コンポーネントは、ほかのコンポーネントを拡張するためのベースコンポーネントとしてのみ機能し、インストールできません。抽象的な子要素を宣言できるのは抽象コンポーネントだけです。
FINAL – コンポーネントを「最終コンポーネント」として指定します。これは、そのコンポーネントは別のコンポーネントによる拡張が不可能であることを意味します。
この属性を指定しないと、コンポーネントの拡張とインストールが行えます (これがデフォルト)。
path – pathName 型のオプション値で、コンポーネントの絶対パス。この属性を指定しないと、ルートパス (/) がデフォルト値になります。値の名前は、コンポーネントが保存された時点で存在するフォルダである必要があります。
softwareVendor – オプション文字列で、当該コンポーネントでモデル化されたソフトウェアアプリケーションのベンダー名。
version – schemaVersion 型の必須値で、コンポーネントスキーマのバージョン。現在許可されている値は 5.0 と 5.1 だけです。
5.1 バージョンのスキーマは、5.0 バージョンと下位互換性があります。
platform – オプション文字列で、当該コンポーネントのインストール先として有効な物理ターゲットであるホストを含むホストセットの名前を指定します。
この属性を指定しないと、Remote Agent アプリケーションを含み、サポートされているプラットフォームである、すべてのホストが有効な物理ターゲットになります。この属性を指定する場合、当該コンポーネントをインストールするプランの物理ターゲットは、指定されたホストセットに含まれるホストのサブセットでなければなりません。指定されたホストセットの一部ではないホストが物理ターゲットに含まれる場合、プランは実行時エラーを出力します。このようなプラン実行時エラーは、プリフライトエラーとして報告されます。サポートされているプラットフォームホストセットに対応しない名前を指定した場合、コンポーネント保存時エラーになります。プラットフォームホストセットにはすべて接頭辞 system# プラグイン名が付けられます。コンポーネントプラットフォームセットがサポートされていない場合、プラットフォームが変更されるまで、新しいバージョンのコンポーネントをチェックすることはできません。サポートされていないプラットフォームホストセットを指す、既存のコンポーネントバージョンに対する操作は失敗します。
limitToHostSet – オプション文字列で、当該プランの有効な対象であるホストを含むホストセットの名前を指定します。
この属性を指定しないと、すべてのホストが有効な対象になります。この属性を指定する場合、指定された対象は、指定のホストセットに含まれるホストのサブセットでなければなりません。指定されたホストセットの一部ではないホストが対象に含まれる場合、プランは実行時エラーを出力します。このようなプラン実行時エラーは、プリフライトエラーとして報告されます。サポートされている既存のホストセットに対応しない名前を指定した場合、コンポーネント保存時エラーが発生します。指定されたホストセットがプラグインにより定義されたホストである場合、pluginName は、ホストセット名に対する接頭辞 (pluginName# hostSetName など) である必要があります。
platform 属性と limitToHostSet 属性では、2 つの大きな違いがあります。
1 つ目の違いは、platform は事前定義されたプラットフォームホストセットの 1 つを指定するのに対し、limitToHostSet はユーザー定義のホストセットを指定することです。 したがって、カスタムホストセットに基づいてインストールを制限する必要がある場合は limitToHostSet を使用する必要があります。
2 つ目の違いは、コンポーネントの対象を仮想ホストにした場合、limitToHostSet のテストはその仮想ホストに照らして行われるのに対し、platform のテストはその仮想ホストのルート物理ホストに照らして行われることです。
したがって、limitToHostSet を設定し platform は設定しないという方法をとることで、異なる物理プラットフォーム上に存在する特定の仮想ホスト(複数) にコンポーネントをインストールできます (WebLogic アプリケーションはこの方法を採用)。ただし、platform を設定し limitToHostSet は設定しないようにすると、指定のプラットフォームを持つ物理ホストをルート (親) とする任意のホスト上にコンポーネントをインストールできます。platform、limitToHostSet の両方を設定すると、両方の範囲を制約できます。
installPath – 必須文字列で、非派生コンポーネントにしか認められません。このパスは、当該コンポーネントのインストール時に使用されます。単純コンポーネントの場合、この値はコンポーネントのリソースをインストールするルートディレクトリにも相当します。当該コンポーネントのインスタンスがインストールされる際に、パスは共通書式で保存されます。「共通イントールパスの書式」を参照してください。
installPath 属性と limitToHostSet 属性を除き、component 属性は継承されません。
installPath 属性は継承されます。派生コンポーネントによりオーバーライドすることはできません。しかし、ベースコンポーネントはコンポーネント変数を使用してその値を指定でき、これらの変数の値をオーバーライドできます。
ベースコンポーネントが limitToHostSet を指定しなかった場合だけ、limitToHostSet 属性は継承され、派生コンポーネントでオーバーライドできます。
limitToHostSet 値は、ユーザーによって管理される可変のエンティティーを指定します。このため、ホストセットの関係をプラットフォームと同じように考えることはできません。
platform 属性は継承されません。しかし、派生コンポーネントの platform 属性値は、「ベースコンポーネント」の platform 属性値と同様に、一般的ではありません。派生コンポーネントで platform を指定しない場合は、platform はベースコンポーネントで指定できません (または any として指定する必要があります)。
<component> 要素には次の子要素があり、記載順で出現する必要があります。これらの子要素は、独自の子要素や属性 (両方も可能) を持つことができます。
<extends> – コンポーネントの派生元であるベースコンポーネントを宣言します
<varList> – コンポーネントとそのコンポーネントのリソースによって使用されるコンポーネントスコープ変数をリストします
<targetRef> – コンポーネントが「対象設定可能」であることを宣言します
<resourceRef> – 当該コンポーネントによって管理されるリソースを指定します
<componentRefList> – 当該コンポーネントによって参照されるコンポーネントの一覧を指定します
<installList> – 1 つ以上の名前付き <install> ステップブロックを含みます
<uninstallList> – 1 つ以上の名前付き <uninstall> ステップブロックを含みます
<snapshotList> – 1 つ以上の名前付き <snapshot> ブロックを含みます
<controlList> – 当該コンポーネントで利用できる <control> ブロックをリストします
<diff> – 当該コンポーネントで比較を実行する際に比較エンジンによって使用される命令をリストします