<application-definition/> エレメントは、ポータル・アプリケーション、そのコンポーネント、ページ・レイアウト、およびナビゲーションを記述します。
このエレメントは、ポータル・トポロジー記述子の <ibm-portal-topology/> エレメントに含まれます。
アプリケーション定義の基本構造
以下の図は、このリリースのためにサポートされているアプリケーション定義のエレメントを表しています。
ibm-portal-topology.xsd スキーマ内にあるアプリケーション定義のその他のエレメントは、このリリースではサポートされていません。
最低限で、アプリケーション定義には、タイトル、コンポーネント・ツリー、およびレイアウト・ツリーが必要です。
以下のセクションでは、<application-definition/> エレメントとその属性およびサブエレメントが説明されています。
アプリケーション定義
<application-definition/> エレメントは、そのパッケージの一部である 1 つ以上のアプリケーションを定義します。
1 つのみ必須です。
以下の属性は、このエレメントで使用されます。
- appID
- 必須このポータル・アプリケーションの固有 ID を指定します。
appID は、portlet.xml 内の ID とは関連がありません。
一意性を確実にするには、コンソール・モジュール・エレメント - 固有 ID のためのガイドライン
を参照してください。
- version
- 必須アプリケーションの数値バージョンを指定します。
バージョンのフォーマットは、VersionString のシンプル・タイプの下の ibm-portal-base.xsd スキーマで定義されます。
タイトル
1 つのみ必須です。
<title/> エレメントは、アプリケーションのタイトルを提供します。
これが製品のリード・アプリケーションである場合は、ユーザーがコンソールにログインしたときに、このタイトルがウェルカム・ページに表示されます。
リード・アプリケーションは、トポロジー定義内に <about-page/> エレメントを含んでいるアプリケーションです。
製品のサブコンポーネントは、<PAA-ref/> エレメントを使用して、自身が属するリード・アプリケーションを指定します。
<title/> エレメントのコンテンツは、基本スキーマからシンプル・ストリング・エレメントとして指定できます。
ローカライズされたストリングを提供するには、タイトル・コンテンツ用の
<base:nls-string/> エレメントまたは
<base:nls-ref/> エレメントを使用します。
以下に例を示します。
<title>
<base:nls-string lang="en">Integrated Solutions Console Sample</base:nls-string>
</title>
必須
オプションで、複数が許可されています。
<requires/> エレメントは、このアプリケーションの前提条件であるポータル・アプリケーションの固有 ID を示しています。
アプリケーションの前提条件はどれも、あらかじめデプロイされている必要があります。
アプリケーションは複数の前提条件を持つことができます。
以下の属性は、このエレメントで使用されます。
- uniqueName
- 必須サーバー上にあらかじめデプロイされている必要のあるその他のアプリケーションの固有 ID を指定します。
この値は、必須アプリケーションのトポロジー記述子の <application-definition/> エレメントの appID 属性と一致している必要があります。
一致していない場合は、デプロイメントは失敗します。
- version
- 必須必須アプリケーションの <application-definition/> エレメントから数値バージョンを指定します。
このバージョンが、必須アプリケーションのバージョン・ストリングと等しくない場合は、デプロイメントは失敗します。
必須
以下の例は、ツリー・マージ・サンプルが、前提アプリケーションとしてページ・レイアウト・サンプルを示す方法を表示します。
<requires uniqueName="com.ibm.isclite.samples.PageLayout" version="6.1"/>
以下の例は、ページ・レイアウト・サンプルの <application-definition/> エレメントの属性を表示します。
これらの属性は、ツリー・マージ・サンプルの <requires/> エレメント上の属性の値として使用されます。
<application-definition appID="com.ibm.isclite.samples.PageLayout" version="6.1">
...
コンポーネント・ツリー
1 つのみ必須です。
<component-tree/> エレメントは、コンソール・モジュール内のすべてのポートレットを記述します。
コンポーネント定義のツリー構造は、ポータル・アプリケーション内のコンポーネントを組織するために使用できます。
この組織に関連したセマンティクスはなく、ポータルはそれに対応する実際のポータル・リソースを組織するためにこの構造に配慮しない場合があります。
以下のエレメントは、<component-tree/> エレメントのコンテンツを作成します。
- <portlet-definition/>
- オプションで、複数が許可されています。
このエレメントは 1 つのポートレットを記述しています。
ポートレットは、同じアーカイブに含まれているか、または既にサーバー上にデプロイされています。
ポートレット定義は、ポートレット War ファイル内の portlet.xml デプロイメント記述子で定義されたポートレットを参照します。
ポートレットは、レイアウト内のウィンドウと関連している場合があります。
ほとんどの場合、アプリケーション成果物はアーカイブ内で独自のデプロ
イメント記述子によって実際に定義され、<resource-link/> エレメント
がそれを参照するために使用されるので、ポータル・アプリケーション・ページのレイアウトおよびナビゲーション内に統合することが可能です。
以下のエレメントは、<portlet-definition/> のコンテンツを構成します。
- <title/>
- 必須で、1 つのみ許可されます。
このエレメントはポートレット定義のタイトルを提供します。
このタイトルは、このリリースのコンソール内に表示されません。
ローカライズされたストリングを提供するには、タイトル・コンテンツ用の <base:nls-string/> エレメントまたは <base:nls-ref/> エレメントを使用します。
- <resource-link/>
- 必須で、1 つのみ許可されます。
このエレメントは、PAA パッケージ内に含まれているか、または既にポータル内に別にデプロイ済みのポートレット定義へのリンクを提供します。
以下の属性は、このエレメントで使用されます。
- name
- portlet.xml 内の <portlet-name/> エレメントによって定義されているポートレットの名前を指定します。
ポートレットの名前が PAA 内で固有でない場合は、追加のポートレット・アプリケーション属性を指定する必要があります。
- type
- 値 static は、PAA パッケージがデプロイされるときにリソースが使用可能でなければならないことを指定します。
これはデフォルトで、このリリースでサポートされる唯一の値です。
- portletApplication
- portlet.xml 内の <portlet-app/> エレメントの ID 属性を指定します。
異なる PAA パッケージが、同じ名前のポートレットを持つ可能性があるので、それらにネーム・スペースを指定する必要があります。
以下の例は、ページ・レイアウト・サンプルの <resource-link/> エレメントを表示します。
<resource-link name="PageLayoutPortlet1"
portletApplication="com.ibm.isclite.samples.PageLayout" type="static"/>
以下の例は、ページ・レイアウト・サンプルの portlet.xml から抜粋したもので、前の <resource-link/> の例に必要な値を表示します。
...
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
version="1.0" id="com.ibm.isclite.samples.PageLayout"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd
http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
<portlet id="PageLayout_Portlet1" >
<portlet-name>PageLayoutPortlet1</portlet-name>
...
次の例も、ページ・レイアウト・サンプルからです。
この例では、<resource-link/> は既にポータルにデプロイされたポートレットからの値を使用します。
これらの値は、ツリー・マージ・サンプルからのポートレット (TempPortlet) の portlet.xml から来ています。
<portlet-definition uniqueName="com.ibm.isclite.TreeMerge.appElementDefinition.A">
<title>
<base:nls-string lang="en">TreeMergePortlet</base:nls-string>
</title>
<resource-link name="TempPortlet"
portletApplication="com.ibm.isclite.samples.TreeMerge" type="static"/>
</portlet-definition>
<portlet-entity uniqueName="com.ibm.isclite.TreeMerge.appElement.B"
portletDefinitionRef="com.ibm.isclite.TreeMerge.appElementDefinition.A">
<title>
<base:nls-string lang="en">TempPortlet</base:nls-string>
</title>
</portlet-entity>
- <portlet-entity/>
- オプションで、複数が許可されています。
このエレメントは、追加の構成値を持つポートレット定義のインスタンスを指定します。
ポートレット・エンティティーの uniqueName は、<window/> エレメントによって使用され、ポートレットをページ上に配置します。
指定されたポートレット定義は、現行のアーカイブ内にあるか、または既にサーバー上でデプロイされています。
以下の属性は、このエレメントで使用されます。
- uniqueName
- 必須ポートレット・エンティティーの固有 ID を指定します。
一意性を確実にするには、コンソール・モジュール・エレメント - 固有 ID のためのガイドライン
を参照してください。
- portletDefinitionRef
- 必須同じトポロジー記述子ファイル内のポートレット定義の固有の名前を参照します。
以下のエレメントは、ポートレット定義のコンテンツを作成します。
- <title/>
- オプションで、1 つのみ許可されます。
このエレメントはポートレット・エンティティーのタイトルを提供します。
ローカライズされたストリングを提供するには、タイトル・コンテンツ用の <base:nls-string/> エレメントまたは <base:nls-ref/> エレメントを使用します。
このタイトルはポートレット・ウィンドウ内で提供されます。
- <url-link/>
- オプションで複数のエレメントが許可されます。
このエレメントを使用して、コンソール・ナビゲーションへ追加される外部 URL へのリンクを組み込みます。
以下の属性は、このエレメントで使用されます。
- uniqueName
- 必須URL リンクの固有 ID を指定します。
一意性を確実にするには、コンソール・モジュール・エレメント - 固有 ID のためのガイドライン
を参照してください。
- absolute
- オプション。URL が絶対値 (true) であるかまたは相対値 (false) であるかを示します。
このリリースでは絶対値のみがサポートされ、デフォルト値は true です。
- url
- 必須コンソール・ナビゲーションに追加される外部アドレスまたは URL を指定します。
次の例では、会社のサポート・ページの URL が提供されています。
<url-link uniqueName="my.example.com.support.page" url="http://my.example.com/support" absolute="true"/>
次の例は、最初のポートレット定義と対応するポートレット・エンティティーを持つページ・レイアウト・サンプルの <component-tree/> エレメントの一部を表示します。
<component-tree uniqueName="com.ibm.isclite.pagelayout.appTree">
<!-- PageLayoutPortlet 1-->
<portlet-definition uniqueName="com.ibm.isclite.pagelayout.appElementDefinition.A">
<title>
<base:nls-string lang="en">RowPortlet</base:nls-string>
</title>
<resource-link name="PageLayoutPortlet1"
portletApplication="com.ibm.isclite.samples.PageLayout" type="static"/>
</portlet-definition>
<portlet-entity uniqueName="com.ibm.isclite.pagelayout.appElement.A"
portletDefinitionRef="com.ibm.isclite.pagelayout.appElementDefinition.A">
<title>
<base:nls-string lang="en">RowPortlet</base:nls-string>
</title>
</portlet-entity>
...
レイアウト・ツリー
1 つのみ必須です。
それぞれのレイアウト・エレメントは、ナビゲーション・エレメントによって開かれるページのレイアウトを記述します。
ページとレイアウト・エレメントの間には 1 対 1 の対応があります。
ページ・レイアウトは行と列のコンテナーによって判別されます。
それぞれの行または列は、1 つのポートレットを含むウィンドウをいくつでも含むことができます。
レイアウト・エレメント、コンテナー、およびウィンドウは、そのコンテ
ンツを含み完全に定義することも、後続のコンテンツが
追加されるときに入力できるよう空のテンプレートにすることもできます。
以下のエレメントは、レイアウト・ツリーのコンテンツを構成します。
- <layout-element/>
- オプションで複数が許可されます。
レイアウト・エレメントは、ポータル・ページのレイアウトを記述します。
アプリケーション内で定義したい各ページの 1 つのレイアウト・エレメントを提供します。
以下のエレメントは、レイアウト・エレメントのコンテンツを作成します。
- <title/>
- 1 つのみ必須です。
このエレメントはレイアウト・エレメントのタイトルを提供します。
ローカライズされたストリングを提供するには、タイトル・コンテンツ用の <base:nls-string/> エレメントまたは <base:nls-ref/> エレメントを使用します。
このタイトルは、対応するページのタイトルとして表示されます。
- <simple-container/>
- 最低 1 つ必要です。このエレメントはページ・レイアウト内の行または列を定義します。
このエレメントはネストすることができます。
以下の属性は、このエレメントで使用されます。
- uniqueName
- 必須レイアウト・エレメントの固有 ID を指定します。
一意性を確実にするには、コンソール・モジュール・エレメント - 固有 ID のためのガイドライン
を参照してください。
- orientation
- 必須コンテナーのコンテンツの配置方法を指定します。
値 row はコンテンツを左から右へ配置します。
値 column はコンテンツを上から下へ配置します。
以下のエレメントはこのエレメントのコンテンツを構成します。
- <window/>
- オプションで複数が許可されます。
ウィンドウは、ポートレット・コンテンツが挿入できるページ・レイアウト内の場所を記述しています。
ウィンドウは、アプリケーション成果物またはネストされたレイアウトのいずれかを含むことができます。
以下のエレメントは、このエレメントのコンテンツを作成します。
- <title/>
- オプションで、1 つのみ許可されます。
ローカライズされたストリングを提供するには、タイトル・コンテンツ用の <base:nls-string/> エレメントまたは <base:nls-ref/> エレメントを使用します。
このストリングは、<portlet-entity/> のタイトルが提供されない場合に、ポートレット・タイトル・バー内に表示されます。
ポートレット・エンティティーもウィンドウもタイトルを提供しない場合は、ポートレットの portlet.xml (<portlet-name/> エレメント) からタイトルを取得します。
- <component-definition-ref/>
- オプションですが、1 つのみ許可されます。
このエレメントは、このウィンドウに含まれるポートレットのコンポーネント定義の固有の名前への参照を指定します。
このページ・レイアウト・サンプルは、そのレイアウト・ツリー内に 6 つのレイアウト・エレメントを含んでいます。
これはページ上のコンテンツを配置するための異なる方法を表示する 6 つのページを提供します。
以下の例は、単純なコンテナーとウィンドウを持つ最初のレイアウト・エレメントを表示しています。
インライン・コメントも表示されます。
<layout-tree>
<!--PageLayout A contains Two Seperate Containers:
The first Container has row orientation with one window inside the container
The second Container has column orientation with one window inside the container
This layout uses is-spot to specify the application for the window.
Therefore you must specify the navigation-content in the navigation element
below that uses this layout element.
-->
<layout-element uniqueName="com.ibm.isclite.pagelayout.layoutElement.A">
<title>
<base:nls-string lang="en">Two independent Containers</base:nls-string>
</title>
<simple-container orientation="row"
uniqueName="com.ibm.isclite.pagelayout.container.A1A">
<simple-container orientation="row"
uniqueName="com.ibm.isclite.pagelayout.container.A1">
<window uniqueName="com.ibm.isclite.pagelayout.window.A1">
<title>
<base:nls-string lang="en">Row Portlet</base:nls-string>
</title>
<component-definition-ref>
com.ibm.isclite.pagelayout.appElement.A
</component-definition-ref>
</window>
</simple-container>
<simple-container orientation="column"
uniqueName="com.ibm.isclite.pagelayout.container.A2">
<window uniqueName="com.ibm.isclite.pagelayout.window.A2">
<title>
<base:nls-string lang="en">Column Portlet</base:nls-string>
</title>
</window>
</simple-container>
</simple-container>
</layout-element>
ナビゲーション・エレメント
オプションで、複数が許可されます。
<navigation-element/> エレメントは、ナビゲーション・ツリー内のエ
レメントまたはノード を記述しています。
このエレメントはネストすることができます。
ナビゲーション・エレメントはまた、インストール内で固有の名前も必要とします。
ナビゲーション・エレメントは、アプリケーションがデプロイされるときにポータル内で作成されるナビゲーション階層の構造を反映するツリー内に配置されます。
例えば、2 つの 1 次ノードと 2 つのブランチ・ノードを持つナビゲーション・ツリーは、それぞれが以下の構造を表します。
<navigation-element>
<navigation-element/>
<navigation-element/>
</navigation-element>
<navigation-element>
<navigation-element/>
<navigation-element/>
</navigation-element>
ほとんどの場合、ナビゲーション・エレメントは、ノードが選択されたときに表示されるページのレイアウト・エレメントを参照します。
以下は <navigation-element/> エレメントの属性です。
- hidden
- オプション。デフォルトは false です。true の場合は、この属性は、コンソール・ナビゲーション・ツリーからナビゲーション・エレメントを非表示にします。
この属性が親のナビゲーション・エレメントを非表示にする場合、すべての子も非表示になります。
空ストリングを含む parentTreeRef 属性を、各非表示ナビゲーション・エレメントと関連付けることを推奨します。
ナビゲーション・ノードを起動することを計画している場合、ナビゲーション・ノードはレイアウト・エレメントを指している必要があります。
つまり、ナビゲーション・エレメントは layoutElementRef 属性を含んでいる必要があります。
- uniqueName
- 必須ナビゲーション・エレメントの固有 ID を指定します。
一意性を確実にするには、コンソール・モジュール・エレメント - 固有 ID のためのガイドライン
を参照してください。
またこの属性を使用して、ほかの製品からのナビゲーション・エレメントをこの製品と関連付けることができます。
この場合、ナビゲーション・エレメントからタイトル・エレメントを省略する必要があります。
例えば、製品 A が、製品 B とも連動する「Setting the background color」というタイトルのナビゲーション・エレメントを持っている場合、製品 B は、タイトルなしで、製品 A からのこのノードと同じ固有の名前を指定するナビゲーション・エレメントを含みます。さらに、ワイルドカード・パターンを指定して、別の製品からの複数のナビゲーション・エレメントを含むことができます。
ワイルドカードは 2 つのダッシュ (
--) を使用して指定されます。
例えば、以下のパターンは、既にデプロイされて
com.ibm で始まる固有の名前を持つ製品からのすべてのナビゲーション・エレメントを含みます。
<navigation-element uniqueName=”com.ibm.--”>
</navigation-element>
- layoutElementRef
- オプション。ノードが選択されたときに表示されるページを指定します。
以下のエレメントは、ナビゲーション・エレメントのコンテンツを作成します。
- <title/>
- オプションで、1 つのみ許可されます。
このエレメントはナビゲーション内に表示されるノードのタイトルを示します。
このタイトルはまた、マイ・タスクのタスク・ツリー内、およびナビゲーション全体にわたるビュー選択メニュー内にも表示されます。
ビュー選択メニューの表示可能な幅の限定のために、タイトルの文字長を最小に保持するようにします。
ローカライズされたストリングを提供するには、タイトル・コンテンツ用の <base:nls-string/> エレメントまたは <base:nls-ref/> エレメントを使用します。
- <parent-tree/>
- オプションで、1 つのみ許可されます。
親ノードと、現行のナビゲーション・エレメントが配置される親ノード下の位置を指定します。
親ノードは、現行のアプリケーション定義の一部である必要はありません。
要求された親ノードが存在しない場合は、ナビゲーション・ツリーの下部に追加されて、親のアプリケーションがデプロイされるときに親の中にマージされます。
以下の属性は、このエレメントで使用されます。
- parentTreeRef
- 必須このノードがその下に配置されるナビゲーション・エレメントの固有の名前を示します。
- ordinal
- オプション。負ではない整数を提供して、特定の親ツリーの下のノードの相対順序を決定します。
ordinal が指定されない場合、または 2 つのナビゲーション・エレメント
があるナビゲーション・レベルの同じ ordinal を指定する場合は、ノードはそれがデプロイされた順序で配置されます。
以下のツリー・マージ・サンプルからの例は、<parent-tree/> エレメントを使用してナビゲーション・エレメントをページ・レイアウト・サンプルのためのナビゲーション内にマージする方法を表示します。
parentTreeRef 属性は、ページ・レイアウト・サンプルのための最上位レベルのナビゲーション・エレメントの固有の名前を指定します。
子のナビゲーション・エレメントは、ツリー・マージのための対応する最上位レベル・ノードの下に配置されます。
ordinal が指定されないと、このナビゲーション・ツリーは、ページ・レイアウトのナビゲーション・ツリーに追加されます。
<navigation-element uniqueName="com.ibm.isclite.samples.navigationElement.TreeMerge">
...
<parent-tree parentTreeRef="com.ibm.isclite.samples.navigationElement.Topology"/>
<navigation-element uniqueName="com.ibm.isclite.treemerge.navigationElement.A"
layoutElementRef="com.ibm.isclite.TreeMerge.layoutElement.A">
...
</navigation-element>
<navigation-element uniqueName="com.ibm.isclite.treemerge.navigationElement.B"
layoutElementRef="com.ibm.isclite.TreeMerge.layoutElement.B">
...
</navigation-element>
</navigation-element>
- <navigation-content/>
- オプションで、複数が許可されています。
このエレメントはページ・レイアウト内のウィンドウのコンテンツを定義します。
これを使用し、選択されているナビゲーション・エレメントに応じて、ラ
ンタイムにウィンドウのコンテンツを提供するか、または同じウィンドウに異なるポートレットをマップします。
以下の属性は、このエレメントで使用されます。
- uniqueName
- 必須ナビゲーション・コンテンツの固有 ID を指定します。
一意性を確実にするには、コンソール・モジュール・エレメント - 固有 ID のためのガイドライン
を参照してください。
- componentDefinitionRef
- 必須ウィンドウ内に提供するコンポーネント定義の固有の名前を示します。
コンポーネント定義は、ポートレット・エンティティーであるか、または URL リンクである場合があります。
コンポーネント定義が URL リンクを定義している場合は、windowRef 属性を省略します。
ウィンドウは外部 URL を提供できません。
- windowRef
- オプション。コンポーネント定義を提供するウィンドウの固有
の名前を示します。
この属性が指定されていないと、コンポーネント定義はレイアウト・エレメント全体に適用されます。
複数の <navigation-content/> エレメントが同じウィンドウを指定できます。
オプション。
ページ・レイアウト・サンプルからの以下の例は、<navigation-content/> エレメントの使用方法を表しています。
- ポートレットは、固有の名前 com.ibm.isclite.pagelayout.appElement.B でコンポーネント定義内で定義されます。
<portlet-entity uniqueName="com.ibm.isclite.pagelayout.appElement.B"
portletDefinitionRef="com.ibm.isclite.pagelayout.appElementDefinition.B">
<title>
<base:nls-string lang="en">ColumnPortlet</base:nls-string>
</title>
</portlet-entity>
- ウィンドウがコンポーネント定義の参照なしで定義されていることは、それが空のコンテンツを持っていることを意味します。
<simple-container orientation="column"
uniqueName="com.ibm.isclite.pagelayout.container.A2">
<window uniqueName="com.ibm.isclite.pagelayout.window.A2">
<title>
<base:nls-string lang="en">Column Portlet</base:nls-string>
</title>
</window>
</simple-container>
- ナビゲーション・コンテンツは、componentDefinitionRef 属性と
windowRef 属性のそれぞれにポートレットとウィンドウの固有の名前を指定します。
<!--This Navigation Element is for Layout A -->
<navigation-element uniqueName="com.ibm.isclite.pagelayout.navigationElement.pagelayoutA"
layoutElementRef="com.ibm.isclite.pagelayout.layoutElement.A">
<title>
<base:nls-string lang="en">2 Separate Containers</base:nls-string>
</title>
<navigation-content uniqueName="com.ibm.isclite.pagelayout.navigationContent.A2"
componentDefinitionRef="com.ibm.isclite.pagelayout.appElement.B"
windowRef="com.ibm.isclite.pagelayout.window.A2"/>
</navigation-element>
- <preference/>
- オプション。製品のアプリケーション定義の固有の名前を示します。
これを使用して、コンソール・ユーザーがナビゲーションをフィルタリングするための製品タイトルを選択するときに、製品のナビゲーション・ツリー内にノードを含みます。
以下に例を示します。
- ページ・レイアウト・サンプルは (アプリケーション定義のタイトル
・タグで定義されているとおり) Integrated Solutions Console Sample というタイトルでデプロイされます。
このタイトルは、ナビゲーション・ビュー選択リストの製品フィルターに追加されます。
- 続いて、ツリー・マージ・サンプルがデプロイされて、前提アプリケーションとしてページ・レイアウトを指定します。
コンソール・ユーザーが製品フィルター用の Integrated Solutions
Console Sample を選択するときにツリー・マージ用のナビゲーション・ノードも表示されることを確認するために、ナビゲーション・エレメントは以下の設定定義を含みます。
<preference name="ProductFilter">
<base:value>
<base:string>com.ibm.isclite.samples.PageLayout</base:string>
</base:value>
</preference>
注: 名前属性は ProductFilter に設定される必要があります。
<base:string/> エレメントは、前提条件製品のアプリケーション定義の固有の名前を示す必要があります。