第2回 XML文書をCocoonでパブリッシュする
Cocoonの機能を使えば、XML文書をHTMLやPDFなどさまざまな形式のデータに変換できる。今回はその最も基本的な機能としてXML文書をHTMLに変換し、Webブラウザで参照するところまでを解説する。CocoonのXMLサーバとしての基本的な機能が理解いただけるだろう。
太田一郎
ティアイエス株式会社
2001/10/13
Hello.xmlをWebブラウザに表示する |
「第1回 Cocoonをセットアップしよう」では、CocoonおよびTomcatのセットアップについて解説しました。今回から、Cocoonの実際の利用方法、すなわちXML文書のWebパブリッシングについて解説していきたいと思います。
今回はまず、非常に簡単なXSLTのサンプルを作成してCocoonの動作を確認した後、XMLで表現された注文伝票のデータをWebブラウザで表示することに挑戦します。なお、本連載では基本的に、XMLとXSLTの基礎知識については習得済みという前提で話を進めていますが、ところどころ話の流れを理解するうえで必要な事柄については解説していきますのでご安心ください。
■XML版の“Hello World”を表示
それでは早速、簡単なサンプルから見ていくことにしましょう。定番ですが、Hello World サンプルを用意しました(リスト1)。このXML文書をCocoonでHTMLに変換し、Webブラウザで見てみることにしましょう。
<?xml version="1.0" encoding="Shift_JIS"
?>
|
リスト1 hello.xml |
リスト1を見ていただければすぐにお分かりになるかと思いますが、内容としては非常に簡単なものです。唯一のタグにしてルートタグである<message>の中に、メッセージの情報を記述しています。注意すべきは、XML宣言の直後にあるプロセッシング・インストラクションの指定です。
<?xml-stylesheet type="text/xsl"
href="hello.xsl" ?> |
ここではまず、HTMLとして表示するためのスタイルシートhello.xslを<?xml-stylesheet?>で指定しています。WebブラウザにXSLTの変換処理を行わせるのであれば、この記述だけで十分です。
しかし次の行でさらに、<?cocoon-process?>というプロセッシング・インストラクションが指定されています。これはCocoonに対し、指定されたスタイルシートを用いて変換を行うことを指示するものです。これがなければCocoonでの変換処理は行われませんので注意してください。
■HTMLへ変換するスタイルシート
次に変換に用いる実際のスタイルシートを見てみましょう。これはリスト2のようになります。
<?xml version="1.0" encoding="Shift_JIS"
?> |
リスト2 hello.xsl |
このスタイルシートで注目すべきところは以下の2点です。
- <xsl:output>による出力形式の指定
- <xsl:value-of>によるエレメント値の取り出し
(1) <xsl:output>による出力形式の指定
変換した結果のフォーマットについての付加情報を指定するもので、出力フォーマット(HTML/XML/プレーンテキスト)、エンコーディング、DOCTYPEの指定が可能です。ここでは、出力フォーマットとして「HTML」、エンコーディングとして「Shift_JIS」、そしてDOCTYPEとして「XHTML 1.0 Strict」を指定しています。
(2) <xsl:value-of>によるエレメント値の取り出し
<xsl:value-of>は、XSLTで最もよく使うタグの1つであり、XML文書の任意の位置のエレメント/属性の値を取り出すものです。ここでは、“/message”の値、すなわちルートタグ<message>の値を取り出しています。
■CocoonでXMLからHTMLへ
ではCocoonを用いて、このサンプルを表示させてみましょう。前回準備したCocoon用のWebアプリケーションのディレクトリに、hello.xmlおよびhello.xslを置いてください。前回の説明どおりにCocoonおよびTomcatをセットアップしているなら、C:\Cocoon\samplesにファイルを置くことになります(Windowsの場合)。
Tomcatが起動していることを確認して、以下のURLをオープンしてください。
http://localhost:8080/cocoon/hello.xml |
画面1のような表示が確認できれば問題ありません。
画面1 Hello World サンプルの動作を確認してみる |
また、このXMLからHTMLの変換処理が、WebブラウザでなくTomcat側で行われていることを確認してみましょう。ソースを表示させてみてください。
画面2 変換された結果を確認 |
図2はMozillaにて、URLのソースを表示させたものですが、hello.xmlが、HTMLに変換されていることが確認できます。つまり、Webブラウザには変換後のHTMLが届いたことが分かります。
注文データを表形式で出力 |
Index | |
XMLサーバ/Cocoon自由自在! 第2回 XML文書をCocoonでパブリッシュする |
|
Hello.xmlをWebブラウザで表示する | |
注文データを表形式で出力 |
「XMLサーバ/Cocoon自由自在!」 |
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|