XML データから複雑なオブジェクトグラフを生成する実行環境を提供します。JDK1.4以降に対応しています。
このAPIは 銀杏(ギンキョウ:イチョウの意。植樹した後、孫の代になって実が食べられることから「公孫樹」とも言われます)の名を持ちます。
* ginkgo は学術名です、本来は "Ginkyo" ですが誤記が定着したようです(地域によって "kgo" を "kyo"と読むので正しいとの説もあります)。
このライブラリは XML をコンフィギュレーションに利用する用途に向いていると思われます。
基本的には、XML からのデータ生成ライブラリであり、JSP タグ風の制御文も埋め込める事からマクロ的な利用も可能です。
このライブラリは XML タグを Tag クラスにマッピングし、 Tag オブジェクトのツリー構造に変換します。
マッピング情報は外部ファイルに定義されるため、それを修正することで柔軟に構造を変更できます。
各タグはオブジェクト生成、名前階層の指定、コンテキスト制御、反復処理等の機能を持ちます。
各機能は Tag オブジェクトにカプセル化され、多くの場合に他のタグに関する事前知識を持たずに相互に協調する事が可能です。
また実行環境がタグ間のパイプラインとして働くため、タグ間での対話的な制御も可能です。
タグの属性やテキストをJavaオブジェクトに変換する処理は実行環境が自動で行います。
タグクラスに宣言されているプロパティ型を基に変換処理を行うため、タグ作成者はプロパティを宣言するのみで変換後のデータを受け取れます。
デフォルトで多彩な変換機能が用意されていますが、必要に応じて拡張も可能です。
また属性やテキストに、式言語を組み込む事が出来ます。
デフォルトでは、松柏APIが提供する OGDL(オブジェクトグラフ記述言語)が利用できます。
試してはいませんが、OGNL や JXEL 等を組み込む事も簡単にできると思います。
省力化の為、基本的な機能はコアタグのライブラリとして提供されています。
タグライブラリの構成情報は XML ファイルで定義され、個別のマッピングファイルに宣言する事で利用できます。
コアライブラリを利用する場合はマッピングファイルに以下の宣言を追加します。
<library id="ginkgo" class-path="shohaku/ginkgo/tags/ginkgo-tag-library.xml" />
<library id="core" class-path="shohaku/ginkgo/tags/core/core-tag-library.xml" />
構成情報を再定義することも可能です。それによりタグの関係を柔軟に変更する事ができます。
実装例として松韻APIに多彩な実装が存在します。
依存パッケージ:
・JDK1.4以降に対応しています。
・松柏 コア API 0.91 が必要です。
・松柏 OGDL API 0.91 が必要です。