変数設定値には、数の制限なしに外部コンポーネント置換参照を含めることができます。 外部コンポーネント置換参照は、以下のどちらかです。
:[primary-component:varname] :[primary-component:secondary-component-list:varname] |
外部コンポーネント置換参照には、空白は含まれません。
上の primary-component は、以下のどちらかです。
explicit-external-component secondary-component |
また secondary-component は、以下のどれかです。
nested-component toplevel-component dependee-component |
secondary-component-list は、コロンで区切られた 1 つ以上の secondary-component のシーケンスです。
varname は、事前定義された置換変数名、または参照コンポーネントによって宣言された動的置換変数名です。
explicit-external-component は、特定の場所の特定のホストにインストールする予定のコンポーネントを明示的に指定し、第 2 章「インストール済みコンポーネント」で説明されている <installedComponent> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 構文は以下のとおりです。
component-target:explicit-component-reference |
上の component-target は目標コンポーネントをインストールするホストを指定し、以下のどちらかになります。
component component(host-redirect) |
最初の派生関数は、生成コンテキスト内の現在の対象ホストを指定します。 2 番目の派生関数は、ホストの切り替えの説明どおり、host-redirect によって指定された ROX ホスト を指します。
上の explicit-component-reference は、component-target によって指定された対象ホストにインストール済みのコンポーネントへの参照です。 explicit-component-reference は、最小限インストール済みコンポーネントの名前を含み、以下のようにバージョンとインストールパスを含む場合もあります。
full-component-name full-component-name#version full-component-name@{path} full-component-name#version@{path} |
上の full-component-name は、目標コンポーネントへの絶対参照または相対参照です。 相対参照は、explicit-component-reference を含むプランまたはコンポーネントに相対して展開されます。 パスは、目標コンポーネントのインストールパスを表す絶対パス名、または展開時に目標コンポーネントの絶対インストールパスを表す置換変数参照です。 絶対パス名に「}」が含まれる場合は、「}}」としてエスケープしなければなりません。
nested-component は、現在のコンポーネントによって宣言された入れ子コンポーネント参照によって参照されるコンポーネントを指定し、第 2 章「インストール済みコンポーネントターゲッター」で説明されている <nestedRef> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 構文は以下のとおりです。
nestedRef:component-reference-name |
上の component-reference-name は、現在のコンポーネント内の「NESTED」 installMode を持つ <componentRef> 要素の名前です。
nested-component を使用できるのは、現在のコンポーネントが複合コンポーネントの場合だけです。また、複合コンポーネント内に外部コンポーネント置換参照がある場合は、primary-component としてのみ使用できます。 変数の評価時には参照コンポーネントがインストールされていないので、primary-component として使用する場合は、コンポーネント変数のデフォルト値または優先変数設定として使用することはできません。
toplevel-component は、現在のコンポーネントによって宣言された最上位コンポーネント参照によって参照するコンポーネントを指定し、第 2 章の「インストール済みコンポーネントターゲッター」で説明されている <toplevelRef> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 書式は以下のどれかです。
toplevelRef:component-reference-name toplevelRef:component-reference-name@{path} toplevelRef(host-redirect):component-reference-name toplevelRef(host-redirect):component-reference-name@{path} |
上の component-reference-name は、現在のコンポーネント内の "TOPLEVEL" installMode を持つ <componentRef> 要素の名前です。
上の path と host-redirect は、それぞれ参照コンポーネントがインストールされる予定の場所とホストです。 host-redirect の構文は、「ホストの切り替え」の項で説明されています。
toplevel-component を使用できるのは、現在のコンポーネントが複合コンポーネントの場合だけです。また、複合コンポーネント内に外部コンポーネント置換参照がある場合は、primary-component としてのみ使用できます。 primary-component として使用される場合は、参照コンポーネントがすでにインストール済みでないかぎり、コンポーネント変数のデフォルト値または優先変数設定として使用することはできません。
dependee-component は、<createDependency> 手順によって作られた依存関係の結果、現在のコンポーネントが依存しているコンポーネントを指定し、第 2 章「インストール済みコンポーネントターゲッター」で説明されている <dependee> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 構文は以下のとおりです。
dependee:dependency-name |
上の dependency-name は、現在のコンポーネントによって作成された依存関係の名前です。
外部コンポーネント置換参照がコンポーネント内にある場合、dependee-component は primary-component としてしか使用できません。 変数の評価時に依存関係が確立していないので、primary-component として使用する場合は、コンポーネント変数のデフォルト値または優先変数設定として使用することはできません。
system-service-component は、現在の対象の物理的なルートホストにインストールされる予定のシステムサービスコンポーネントを指定し、第 2 章「インストール済みコンポーネントターゲッター」で説明されている <systemService> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 構文は以下のとおりです。
systemService:system-service-name
system-type-component は、特定の場所の特定のホストに一番最近インストールされたあるコンポーネント型から派生したコンポーネントを指定し、第 2 章の「インストール済みコンポーネントターゲッター」で説明されている <systemType> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 書式は以下のとおりです。
systemType:component-type-name
systemType:component-type-name@{path}
systemType(host-redirect):component-type-name
systemType(host-redirect):component-type-name@{path}
ここでは path はオプションです。指定された場合は、目標コンポーネントをインストールするパスを示します。 host-redirect もオプションです。これは、ホストの切り替えの説明どおり目標コンポーネントがインストールされるホストを示します。
container-component は、入れ子参照として現在のコンポーネントを含むコンポーネントを指定します。 構文は以下のとおりです。
container |
外部コンポーネント置換参照が、他の「コンテナ」コンポーネントによって入れ子コンポーネントとしてインストールされたコンポーネント内にある場合、container-component は primary-component としてしか使用できません。