-Standing over the shoulders of giant

XPathはインジェクションルールの記述式以外にも、テンプレートの位置検索で使おう。TapestryのServiceに近い考え方なんですが、リンクのURLを作るのと、URLを受け取って適切なリソースをディスパッチするのを同じモジュールでやることで複雑なナビゲーションも抽象化するのです。ここでXPath的なクエリーの考え方を入れて、エレメントの集合体としてTemplateProcessorツリーの一部を切りだしてサービスするのは可能です。すでに近い考えはImplicitPageで実現している。これをスマートにやれるようになると、テンプレートからコンテンツを切り出してXMLサービスするという点で、Ajaxにも結果として対応しちゃうんじゃないかな。今の各WEBフレームワークががんばってる、AjaxJavaScript製ルーターを埋め込むのを簡便にやるというほうではなくて、その後のリフレッシュパーツを容易に提供するという点です。通勤途中に思いつきました。でもこれはMayaの範囲じゃないね。
で、これはテンプレートを構造でもってないとできないので、カスタマイズ可能なXPathエンジンとHTML-SAXパーサー製品の無い言語系ではこれから1年から3年ぐらいは実現出来ない機能だと思います。Javaでも半年ぐらいはかかると思うけど。最近流行のPHPとかRubyでは、この辺の巨人たちが居るのでしょうか?Javaは10年業務で叩かれているから、とてつもない巨人たちがうろうろいるので、Standing over the shoulders of giantでできるんだけどね。
そして、実はTapestryでも本質的には出来ない。Tapestryもテンプレートの持ち方はツリーでもってなくて、テンプレートを穴抜き的に持ってるのです。jwcidがついているところだけXMLウェルフォームドが求められ、そうでないところはSGMLでよいのはそのためです。これも反面、Tapestryの偉大なところです。こうしないとHTML-SAXパーサーでゴリゴリやるMayaスタイルになっちゃう。このパース結果のツリーを有効活用できないと、ムダと言っても過言ではなかったのです。が、XPathをやるためにはどうしてもツリーウォークする構造になるので、Mayaのゴリゴリがかえってよかったかもしれない。ま、これもS2JSFのパクリですけど。
今度、Mayaがどこからどんなアイディアを拝借しているかというThe map of giant's shouldersを書いておかないといけないかな。結構コンテンツとして面白いと思うのですよ。地図の大半がTapestryとJSR245ですけどね。