[Seasar-user:1245] Re: Mayaの式言語サポート(Re: Mayaドキュメント初稿第2版)

Yokota Takehiko takehiko
2004年 11月 30日 (火) 15:49:43 JST


横田です。

On Tue, 30 Nov 2004 12:47:27 +0900
Masataka Kurihara <[E-MAIL ADDRESS DELETED]> wrote:

> 栗原です。

回答ありがとうございます。

>   記述の入れ子構造は考えていません。JSPの式言語の記述仕様に
> 準じています。${ }がネストするのは実現難しいと思います。

そうですか、それは残念です。

>   上記で要件を満たしているのか不明ですが、もし足りないようでし
> たら詳細教えてください。

私が開発しているKvasir/Soraというアプリケーションサーバ的CMSがありま
して、これではコンテンツをディレクトリ構造に配置しておき、コンテンツ
にリクエストがあった場合にはそのコンテンツに対応するテンプレートに従っ
てHTMLをレンダリングしてレスポンスとして返すようになっています。

それでテンプレートの形式として何種類かの書式(JSP、Velocity、独自形式
など)をサポートしているのですが、将来的にはMayaをテンプレート形式の
1つとしてサポートしたいと考えています。

ところで、Kvasir/Soraは独自の式言語体系を持っていて、Mayaテンプレート中
にもこの式言語を書けるようにしたいと思っています。この式言語はKvasir/Sora
の機能を容易に利用できるよう特殊な書式になっていまして、ネストした記述も
できるようになっています。意味は抜きにして例を書きますと、

  ${(this#)${type}.name}

のような感じです。

Mayaのドキュメントに「${   }で囲った値は、式言語として評価されます。式言語
はデフォルトでOGNLをサポートしますが、ELなど他の式言語やスクリプト言語もサ
ポートできる構造になっています。」とありましたので、ひょっとして上記のよう
な独自言語を利用できるようにカスタマイズできるかな、と考えたのですが、仕組み
としてはおそらくMayaが式言語解釈エンジンに式言語記述を渡して解釈結果を受け
取るようになっていて、そのためのインタフェースが用意されていて、そのインタ
フェースの実装クラスを作っておいてweb.xmlなどに「式言語の解釈にはこの実装ク
ラスを使う」と記述することで式言語エンジンを容易に差し替え可能になるのだろ
うと考えました。

ところが、Mayaが式言語を切り出す時点で入れ子記述を認識しないと、例えばMaya
テンプレート中に

  <span m:inject="c:out" m:value="${(this#)${type}.name}">

などと書いた時は「${(this#)${type}」までしか切り出してくれないのではないか、
そうであれば自分のやりたいことは実現できないのではないか、と考えたのです。
これが例えば「{」と「}」のバランスを考慮して切り出してくれるですとか、「"」
から「"」までの間を切り出してくれるですとか、そのようになっているのでしたら
うれしいのです。

返事は急ぎませんのでお時間が取れそうな時にご回答頂ければと思います。

それではよろしくお願いします。

--------
  YOKOTA Takehiko
    [E-MAIL ADDRESS DELETED]




Seasar-user メーリングリストの案内