XMLサーバ/Cocoon自由自在!
第1回 Cocoonをセットアップしよう


XML文書の利点の1つは、自由な変換が可能な点だ。XMLを元に、Webブラウザに対応したXHTML、iモードなどの小型画面に対応したCHTML、あるいはプレーンテキストやPDFなど、1つの情報を元に複数のフォーマットを作成できる。それを実現してくれるXMLサーバが「Cocoon」だ。この連載では、CocoonによるXML文書の変換の実際を紹介していく。

太田一郎
ティアイエス株式会社
2001/9/1


CocoonでXMLパブリッシング

 XML文書をWebで配信したい。とりあえずそんなときは、その文書をXSLTのスタイルシートとともにWebサーバにアップロードします。Internet Explorer(以下IE)やMozillaなどのXSLTに対応したWebブラウザなら、これだけでOKです。XSLTに対応したWebブラウザなら、Webサーバに置いてあるXML文書とXSLTスタイルシートをダウンロードし、適切にXHTMLに変換したうえで表示してくれることでしょう。

 ところがこのやり方だと、そのXML文書を表示できるWebブラウザをXSLT対応のものだけに限定してしまいます。そこで登場してくるのが、ここで紹介するもう1つのアプローチです。Webサーバ側でXML文書に対してあらかじめXSLTの変換処理を施し、XHTMLの形にして配信します。この方式を用いれば、XHTMLを表示できるWebブラウザなら種類を選ばずに文書を表示させることができます。

 これを実現するためには、サーバ側にXMLを処理するための仕組み、平たくいえばソフトウェアが必要です。こんなソフトウェアの1つが今回紹介する「Cocoon」なのです。

 これから始まる本連載は、このCocoonのインストールから始まって、豊富な機能を順に紹介していきます。皆さんもCocoonを使って、WebでXML文書を公開してみましょう!

Cocoonの紹介

 Cocoonはオープンソースのソフトウェアであり、The Apache XML Projectのサブプロジェクトの1つとして開発されています。The Apache XML Projectといえば、「Xerces」や「Xalan」といったソフトウェアで有名です。XercesはDOM(Document Object Model)SAX(The Simple API for XML)を処理するためのソフトウェアであり、XalanはXSLTを処理するためのソフトウェアです。これらはXMLを処理するためのフリーのソフトウェアとしては非常に有名かつ実績のあるものであり、Cocoonもこれらを用いて実装されています。

 さて、Cocoonの出身は以上のとおりですが、実のところ何ができるのでしょうか? Cocoon自身は以下のような機能を提供するJavaサーブレットとして実装されています。

  • XSPを用いたXML文書の動的生成
  • XSLTを用いたXML文書の変換
  • XSL:FOを用いたPDF文書のレンダリング

 以下、順にこれらの機能を簡単に紹介しておきましょう。

(1)XSPを用いたXML文書の動的生成

 XSPとはeXtensible Server Pagesの略です。Javaをご存じの方なら、JavaServer Pagesの名前を連想されたかもしれません。不正確を承知で大胆に書くと、HTMLタグとJavaのコードを織り交ぜて書くのがJSPなら、XSPはXMLタグとJavaのコードを織り交ぜて書くものです。JSPと同じく、タグライブラリの形で機能を拡張することができます。すでに、データベースに簡単にアクセスするためのタグライブラリなどが用意されています。

(2)XSLTを用いたXML文書の変換

 XSLTを用いて、XML文書を別のスキーマのXML文書などに変換します。XML文書を、表示するためのXHTML文書に変換するという、本連載で取り上げるメインのトピックを実現してくれるものです。XSLTでXML文書を変換する、というこの機能だけならIEも同様の機能を持っており、そこに大差はないのですが、Cocoonの変換機能にはもう1つ大きな特徴があります。

 それは、アクセスしてきたWebブラウザの種類に応じて、適用するスタイルシートを切り替えることができるという機能です。近ごろでは、PC以外にも、さまざまなデバイスで動作するWebブラウザが存在します。例えばPDAに搭載されているWebブラウザや、もっと身近なところではiモードなどのブラウザフォンが該当しますね。

 Cocoonのこの機能を用いることで、1つの情報ソースからPC向けやiモード向けなどの複数の出力を作成するという、XML文書ならではの利点を活用することができます。

(3)XSL:FOを用いたPDF文書のレンダリング

 XSL:FOは、組版の情報を表現するためのタグセットです。The Apache XML Projectのサブプロジェクトの1つにFOPというソフトウェアがあります。これはXSL:FOの組版情報に基づいてレンダリングを行い、PDFファイルを生成するものです。CocoonにはこのFOPが組み込まれており、XSL:FOの文書をPDFファイルに変換することができます。

 これらの機能を1つ1つ実行できるのはもちろんですが、Cocoonのすごいところは、これらの機能を複数組み合わせて実行できる点です。例えば次のようなことが可能になります。まず、DBにアクセスしてXML文書を動的に生成します。次に、これにWebブラウザの種類に応じて適切なスタイルシートを適用し、表示用のXHTML文書に整形します。もしくは、XSL:FOの文書に変換したうえでPDFを生成することも可能です。Cocoonを使えばXML文書をさまざまなフォーマットに変換することが手軽に実現できるのです。

  Javaサーブレットエンジン:Tomcatのインストール

Index
XMLサーバ/Cocoon自由自在!
第1回 Cocoonをセットアップしよう
CocoonでXMLパブリッシング
  Javaサーブレットエンジン:Tomcatのインストール
  Cocoonのデフォルト画面を表示する

「XMLサーバ/Cocoon自由自在!」


XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間