実践! XMLアプリケーションサーバ「BXS」
1. データの内容に基づいた表示の加工
前回のフロントページのサンプルでは、ニュースのタグを取り出し、それをそのままXHTMLのタグに変換していただけでした。とりあえずこれで用は足りるのですが、もう一工夫してみましょう。例えば、サンプルということで今回はデータの件数自体が非常に少なかったのですが、実際には何十件とあることも考えられます。このような場合、ただ単純にデータを並べて表示するだけでは見る方も大変です。内容の把握ができないような表示の仕方をするのであれば、最初からデータを表示しないのとそう変わりません。
魅力的で、かつWebサイトの訪問者にとって便利なWebページを作ろうと考えるのであれば、どのデータが重要で、何を一番先に見てもらいたいのか、データをただ漫然とXML化するだけでなく、そのプレゼンテーションについても十分考えることが大切と言えます。
ここではその出発点として、データの種類や重要度に基づいてそれらを表示するようなサンプルを作成してみましょう
■ブックマークのページを作ろう
前回サンプルとして取り上げたのは、個人のホームページの入り口をイメージしたフロントページでした。今回はその延長という意味で個人のホームページによくある、ブックマークのページを取り上げてみます。
ブックマークのページの構成ですが、基本的には以下のような情報の繰り返しになっていることが多いと思います。
- サイト名
- URL
- カテゴリ(分類)
- 簡単な紹介
XML文書としてこれらのデータを表現する場合、DTDの設計の仕方にはいくつかバリエーションが考えられますが、ここではリスト1に示すようなXML文書(bookmark.xml)として表現することにしてみます。
<?xml version="1.0" encoding="utf-8"
?> |
リスト1 XML文書化されたブックマークのページ |
このXML文書をざっと解説しておきましょう。ルートタグは<bookmark>としてあります。続いて、各サイトの名称(label属性)、URL(url属性)、カテゴリ(category 属性)、そして簡単な紹介を<site>タグで定義するようになっています。さらに上記の項目に加えて、「おすすめ度(rate属性)」の情報も追加してあります。カテゴリは識別子で区別していますが、それぞれの識別子がどんなカテゴリを表すのか<category>タグで定義してあります。ここではとりあえず日本語の見出し(label属性)のみ定義しておきました。
■ブックマークのXML文書をスタイルシートでXHTMLに変換
さて、これをとりあえず前回のように、ただ単純にXHTML形式に変換してみましょう。リスト1のファイルをリスト2(bookmark.xsl)に示すスタイルシートのファイルとともに、BXSのwebapps/demo/bookmarkの下に置いて、Webブラウザで出力を確認してみてください。BXSがXML文書をスタイルシートに従って変換し、Webブラウザ上にHTMLが画面1のような出力結果が得られましたか?
<?xml version="1.0" encoding="UTF-8"
?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <!-- ページ全体の枠組み --> <xsl:template match="/bookmark"> <html> <head><title>ブックマークのページ</title></head> <body> <center><h1>私のブックマーク(単純にソートして表示)</h1></center> <hr /> <dl> <xsl:apply-templates select="./site"> <xsl:sort order="ascending" select="@category" /> </xsl:apply-templates> </dl> <hr /> </body> </html> </xsl:template> <!-- サイト紹介 --> <xsl:template match="site"> <dt><a href="{@url}"><xsl:value-of select="@label" /></a></dt> <dd><xsl:value-of select="." /></dd> </xsl:template> </xsl:stylesheet> |
リスト 2 : bookmark.xsl。とりあえず表示してみる |
画面1 bookmark.xmlをbookmark.xslのスタイルシートでHTMLに変換して、Webブラウザで表示した結果 |
ここでスタイルシートの内容について一応確認しておきましょう。ルートの<bookmark>タグを、<html>、<head>および<body>タグに展開しています。ここで<body>タグを出力する際に、<apply-templates>を用いて<site>タグをブックマークのリストに展開します。
これでは<site>タグを順に出力しているだけなので、ただ漠然とサイト名が並んでいるだけに見えます。カテゴリ情報も表示されていないので、どんなサイトが、どんな順で並んでいるのか、一見しただけでは把握できません。もう少し改良してみましょう。
「2. さらにXSLTスタイルシートを改良 」 |
- 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」の詳細も紹介する
|
|