<% Include("/hsphere/local/home/terraint/common.phps");%> Jakarta Jetspeed:ポータルサイト構築支援 in Java - Portal Structure Markup
Apache Jakarta Jetspeed

Jakarta Jetspeed

ダウンロード

ドキュメント

コンポーネント

参加するには

Links (Web/JP)

日本語訳 (Translations)

オリジナル

What is PSML?

"PSML"は、Portal Structure Markup Language (ポータル構造マークアップ言語)の頭字語です。 Jetspeed内のコンテンツを構造化し抽象化する為にあります。

PSMLは、実際は、2つの異なる(しかし関連した)マークアップ言語で構成されています。

  • registry markup:Jetspeedエンジンで利用可能なリソースを全て記述します。 現在、レジストリは、単なるポートレットレジストリ以上のものをサポートしています。 また、CapabilityMapレジストリ・MediaTypeレジストリ・PortletControlレジストリ・PortletControllerレジストリもあります。
  • site markup:レジストリで利用可能なポートレットが実際に所与のユーザ用に表示されるかどうかを記述します。 同時に、それらがどのように画面上で編成されるか、それらがどの表現用プロパティを使うべきか、も記述します。


Portlet Registry
What is the PortletRegistry?

PortletRegistryは、Jetspeedが所与のポートレットについてのより深い情報を得る事の出来る、 中央的な格納場所です。

このレジストリでは、ポートレットの単調なリストであるかのように編成されています (マークアップで識別されますが、entry要素です)。全てのポートレットはレジストリ内で一意の名前(name属性)がなければなりません。


Registry Entries

ポートレットは"Entry"の記述によりレジストリで表現されます。これらのエントリには3つの別個のタイプがあります:

instance
基本的なエントリタイプです。instanceエントリは、ポートレットをインスタンス化する為に 必要な全ての情報がなければなりません(少なくとも、classname)。 このタイプのエントリではJetspeedエンジンによってインスタンス化されます。
abstract
abstractエントリは、必要な情報が欠けている為、直接インスタンス化されないエントリです。 ポートレットのテンプレートであるかのように振舞います。 関連したポートレットのグループ用の共通プロパティを定義する際に有効です。 このタイプのエントリではJetspeedによって決してインスタンス化されません。
ref
refエントリは、他のエントリ定義に基づいた新規エントリを定義するためのエントリです。 ですから、refエントリ定義は、あらゆるタイプの(他のrefエントリでさえ)別のレジストリエントリへの参照でなければなりません。 Jetspeedエンジンは、抽象型あるいはインスタンスのエントリを見つけるまで、全てのrefエントリをカスケードします。 そして、抽象型あるいはインスタンスの定義で見つかる全てのパラメタを上書きし、このポートレットをインスタンス化しようとします。


Examples

<portlet-registry>
    <portlets>
        <portlet-entry type="abstract" name="RSS">
       <classname>
              org.apache.jetspeed.portal.portlets.NewRSSPortlet
       </classname>
           <parameter name="itemdisplayed" value="10" type="int"/>
           <parameter name="stylesheet.text/html"
                      value="/WEB-INF/xsl/rss.xsl"/>
           <parameter name="stylesheet.text/vnd.wap.wml"
                      value="/WEB-INF/xsl/rss-wml.xsl"/>
        </portlet-entry>
...
    </portlets>
</portlet-registry>


Site Markup
Files organisation

レジストリは、1つのファイルに全てのポートレットについてを記述するのに対し、 マークアップは登録されたユーザごとに異なる一つのファイルを使います。故に、 インターフェースのカスタマイズ容易性を与えています。 新規プロファイルサービスでは、ユーザは複数のマークアップファイルを持つことが出来ます。

デフォルトサイトの記述は、anonymousアクセスの為に使われます。


Site elements

サイトマークアップは、レイアウト用クラスに直接対応する4つの主たるタイプの要素を使います。

Entry
Entryでは、レジストリマークアップと同様、portlet要素を記述します。 しかし、サイトマークアップの場合、全てのエントリは参照タイプであり、セキュリティ・パフォーマンスの観点から、基本的なプロパティ(クラス名やURL等)を定義できません。 これらのエントリで、スキンやレイアウトプロパティといったレジストリマークアップでは利用できない、追加のプロパティを記述する事もあります。
Portlets
Portletsでは、portlet要素のグループ(PortletSet)を記述します。 これらのグループは、格納されるポートレットの共通レイアウトやプレゼンテーションプロパティをセットする際に有効です。 各々のポートレットがエントリ要素やネストされたポートレットを含んでいても良いです。
Controller
Controller要素には、所与のPortletSetに関連したPortletControllerを記述します。 PortletControllerは、PortletSetに含まれるポートレットのレイアウトの仕方を実装します。
Control
portlets要素やentry要素で見つかるControl要素には、オブジェクトに関連したPortletControlを記述します。 PortletControlは、ポートレットに追加機能を与えたり、ポートレットコンテンツの周りのグラフィカルな装飾 を加えたりする事もあるでしょう。
PSML Reference
PSMLリソース内(マークアップ言語指定の場所)に含まれる、別のPSMLリソースへの参照です。 参照は、PSMLのreference要素内のpath属性内にあるPSMLリソースロケータによって特定されます:PSMLロケータ

PSMLでは、一つの要素に対して定義された全てのプロパティはその要素のみ有効です。 ただし、コンポーネント階層で継承されたskinプロパティを除きます。


Examples

<portlets user="default" xmlns="http://xml.apache.org/jetspeed/2000/psml">

  <controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController">
    <parameter name="sizes" value="70%,30%"/>
    <parameter name="mode" value="row"/>    
  </controller>

  <skin>
    <property name="selected-color" value="#990000"/>
    <property name="title-color" value="#FFCC00"/>
  </skin>

  <portlets>
    <controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
    <entry type="ref" parent="http://jakarta.apache.org/jetspeed/channels/jetspeed.rss">
    </entry>
    <entry type="ref" parent="http://www.xmlhack.com/rsscat.php">
    </entry>
  </portlets>

  <portlets>
    <controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>
    <entry type="ref" parent="http://www.mozilla.org/news.rdf">
      <parameter name="itemDisplayed" value="5"/>
    </entry>
    <entry type="ref" parent="http://www.apacheweek.com/issues/apacheweek-headlines">
      <parameter name="showTitle" value="false"/>
    </entry>

    <reference id="P-ed09142736-10018" path="group/apache/page/news"/>

  </portlets>

</portlets>


PSML Locator

PSMLロケータは、PSML参照を置くのに使われます。 PSMLのreference要素の中のpath属性では、 別のPSMLリソースへのロケータを規定します。 ロケータは、 PSMLリソースの全てを別のPSMLリソースに取り込むために使います。 一旦マークアップのグループを定義し、1つ以上のPSMLリソースでマークアップを共有する場合に、これは有効です。 ここで、Portlet参照のサンプルをお見せします。 ロケータは、path属性で定義されています:


<portlets user="default" xmlns="http://xml.apache.org/jetspeed/2000/psml">
...
  <portlets>
    <controller name="org.apache.jetspeed.portal.controllers.RowColumnPortletController"/>

       <reference id="P-ed09142736-10018" path="group/apache/page/news"/>

  </portlets>
...

ロケータは常にパラメタの対で定義されます。 URLの一部として使う事もできます。 上のサンプルでは、キーワードと値の2つの対があります。

  • group/apache
  • page/news
キーワードは"group"と"page"であり、値は"apache"と"news"です。 "apache"は、Jetspeed内でのグループ名です。 グループ(グループ化)はPSMLリソースを分類する一つのやり方です。 "page"はPSMLリソースの名前です。".psml"拡張子は必要ありません。

ロケータの形式は:

   user/<name>/media-type/<mediaType>/language/<language>/country/<country>/page/<page>
                   
あるいは

   group/<name>/media-type/<mediaType>/language/<language>/country/<country>/page/<page>

あるいは

   role/<name>/media-type/<mediaType>/language/<language>/country/<country>/page/<page>

キーワードが"group"で、"group"と"role"が相互に排他的で、全ての他のパラメタがオプションである場合です。 "page"パラメタが指定されていない場合、JetspeedResources.propertiesで規定されている "default"のPSMLページが配置されます。 他のパラメタ全ては、もし指定されない場合、 media-type・language・countryコードは、リクエストされたデバイス(つまりブラウザ)の 状態に合わせられます。 いかなるリソースも指定できますが(別のユーザのPSMLをロケータとして使ったり)、 Jespeedは、PSMLリソースに取り込むための十分な権限があるかどうかのセキュリティチェックを行います。

キーワード 説明
user パラメタ値与えられるユーザの'user'サブツリー下に置かれるリソースを明記します。'user'・'group'・'role'のいずれも指定されない場合、現在のユーザのサブツリーがデフォルト値となります。
group パラメタ値で与えられるグループの'group'サブツリー下に置かれるリソースを明記します。
role パラメタ値で与えられるロールの'role'サブツリー下に置かれるリソースを明記します。
media-type パラメタ値で与えられるメディアタイプのリソースを明記します。代表的なメディアタイプは、"html"・"wml"・"xml"です。
language パラメタ値で与えられる言語のリソースを明記します。言語は、ISO-639標準の2文字略語(訳注:例えば、jaやzhなど)で指定されなければなりません。 言語コードは、ISO-639標準の2文字略語です。
country パラメタ値で与えられる国名のリソースを明記します。 言語は、ISO-639標準の2文字略語(訳注:例えば、jaやzhなど)で指定されなければなりません。 国コードは、ISO-3166標準の2文字略語(訳注:例えば、jpやcnなど)です。
page リソースの名前をパラメタ値で明記します。指定されない場合、デフォルトのリソースが使われます。


PSML データベース

もし、PSMLリソースをデータベースにも格納したいと思うのならば、こちらの説明をご覧下さい。



Copyright © 1999-2005, Apache Software Foundation
Translated into Japanese by Tetsuya Kitahata , powered by Terra-International, Inc.
<% orig();%>