松柏 銀杏 API var 0.90

XML データから複雑なオブジェクトグラフを生成する実行環境を提供します。

参照:
          説明

パッケージ
shohaku.ginkgo ライブラリを構成する基礎的なインターフェースと実装を提供します。
shohaku.ginkgo.rule ライブラリの構成ルールのデフォルト実装を提供します。
shohaku.ginkgo.tags タグライブラリの共通的な振る舞いを定義する機能を提供します。
shohaku.ginkgo.tags.core.base 基本的なデータ型を生成するタグを提供します。
shohaku.ginkgo.tags.core.beans Java Bean の制御や生成を実行するタグを提供します。
shohaku.ginkgo.tags.core.collections コレクションを生成するタグを提供します。
shohaku.ginkgo.tags.core.context ドキュメントのコンテキスト情報を制御するタグを提供します。
shohaku.ginkgo.tags.core.io 入出力機能のタグを提供します。
shohaku.ginkgo.tags.core.logic 反復処理や条件式等のノード階層を制御するタグを提供します。
shohaku.ginkgo.tags.core.math 任意精度の整数 (BigInteger)、および任意精度の 10 進数 (BigDecimal) のタグを提供します。
shohaku.ginkgo.tags.core.net ネットワーク機能のタグを提供します。
shohaku.ginkgo.tags.core.resource リソースを読み取る機能のタグを提供します。
shohaku.ginkgo.tags.core.util 多様な値を生成するユーティリティーのタグを提供します。
shohaku.ginkgo.type 型宣言によるデータ変換を行う為の、銀杏API固有のデータ型を提供します。

 

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 が必要です。