作成 2003/5/8
実験環境
ECS(Element Construction Set)は、マークアップ言語(XMLやHTML) の要素を生成するためのJavaのAPIです。 タグをオブジェクトとして操作する、DOMの発想に近いでしょうか。 タグが全てJavaBeansとして用意されており、オブジェクトを操作することで、 HTMLなどの文書を組み立てることができます。
例えば、サーブレットにHTMLを書くとき、こう書くかわりに
out.println("<html>"); out.println("<title>hello</title>"); out.println("<body>"); out.println("Hello!"); out.println("</body>"); out.println("</html>");
こう書けます。
Html html = new Html(); html.addElement(new Head().addElement(new Title("hello"))); html.addElement(new Body().addElement("Hello!"));
Jakarta公式サイト
http://jakarta.apache.org/ecs/index.html
Jakartaの杜翻訳
http://www.terra-intl.com/jakarta/ecs/
ダウンロードは公式サイトより、 ECSと依存ライブラリ(libのxercesとか)のjarをクラスパスに通せば、 実行可能です。
HTMLを組み立てるサンプルはドキュメントにあるとおりで、 動かしてもあまり感動しないので、 ここでは、ECSのHtml2ECSというクラスを使ってみます。 これは、htmlからECSソースファイルを作成するツールです (実験的なクラスとのこと)。
このHTMLを
リスト、hoge.html
<html> <body> <h2>Hello!</h2> </body> </html>
html2ecsで変換すると
リスト、html2ecs.bat
java -cp ecs-1.4.1.jar;lib\xerces-1.2.2.jar org.apache.ecs.html2ecs.Html2Ecs hoge.html > hoge.txt
おおお!HTMLがECSのソースの断片になりました!
リスト、hoge.txt
new org.apache.ecs.html.Html().addElement( new org.apache.ecs.html.Body().addElement( new org.apache.ecs.html.H2().addElement(.addElement("Hello!") ) ) ) new org.apache.ecs.html.Html()
でも、xercesのXMLパーサーで解析しているので、閉じタグがないと、 解析失敗しちゃいます。
現在のリリース1.4.1は2000年12月リリースで その後どうなったんだろう?ECSは死んだのか?それとも違う方向に発展したのか?
WebアプリのViewとしてECSを使うのは、ちょっと疲れそうです。 簡単な例ならいいけど、長いHTMLを組み立てるのは、、、 見た目の変更に柔軟ではない気がします。 どちらかといえば、解析ツール、変換ツールとして、面白そうな感じがします。 あるいは、カスタムタグから利用するツールとしてもいいかもしれません。