実践! XMLアプリケーションサーバ「BXS」
3. XMLのサンプルを表示させてみる
実際にXML文書を自分で書いてみる前に、あらかじめ用意されているXML文書のサンプルを確認してみましょう。ここでは先ほどデモで確認したXMLのファイルを取り上げてみます。
■ XML文書をXHTMLに変換
XML文書とXSLTのファイルは、それぞれ、BXSをインストールした場所の以下のサブディレクトリに格納されています。
webapps/demo/xml/
このディレクトリにあるhello.xmlとhello.xslが、先ほど見たデモにあたります。読み進めつつ、実際にこれらのファイルを修正していろいろ試してみるとよいでしょう。まずは、下記のhello.xmlというXML文書を試してみます。
<?xml version="1.0"?> |
リスト1 hello.xml。タイトルが定義されているだけのシンプルなXML文書 |
このサンプルのルートタグは<page>となっています。このXML文書のコンテンツともいえるメッセージ情報は、<title>タグの中に格納されています。
このhello.xmlをBXS上でXSLTスタイルシートによってXHTMLに変換し、Webブラウザで参照できるようにしてみます。XSLTスタイルシートであるhello.xslでは、hello.xmlの中からメッセージの内容(<title>タグの中身)を取り出し、以下のようなXHTMLに加工して出力します。BXSを使うことで、XML文書をXSLTでXHTMLに変換し、それをWebサーバで送出することが可能になるわけです。
<html> |
リスト2 スタイルシートのhello.xsl を適用して得られるXHTML形式の出力 |
■ 変換の仕組みはXSLT
上記のXHTML文書とXML文書を見比べると、<title>タグの中のメッセージが<head>と<body>の中にそれぞれ埋めこまれていることが分かります。以上の入力と出力のイメージをざっとつかんだところで、XML文書をXHTML文書に変換するXSLT文書、hello.xslを見てみましょう。
<?xml version="1.0"
encoding="Shift_JIS"?>
|
リスト3 スタイルシートhello.xslの内容 |
ここではあまり詳しくXSLTについて解説は行いませんが、以下にざっとポイントになるところを解説しておきます。
<xsl:stylesheet>タグ
XSLスタイルシートもXML文書ですが、ルートタグにあたるのが<xsl:stylesheet…>タグです。ここではネームスペースの宣言などをしておく必要がありますが、とりあえずここでは「おまじない」として置いておきます。詳しくはXML Namespaceの資料などを参照してください。
<xsl:template>タグ
XSLTの核となる記述です。元のタグをどんなタグに変換するのかをここに書き並べます。ここでは、<page>タグを見つけたら、<html><head>……以下のタグを順に出力していき、<head>および<body>タグのそれぞれ中ほどで元のファイルの<title>タグの内容を取り出して出力しています。
<xsl:value-of>タグ
元のXML文書のタグの値(属性値やタグに挟まれたデータ)を取り出します。select属性に、どのタグの値を取ってくるのか、XPathと呼ばれる言語を用いて指定します。XPathについても本稿では解説しませんが、イメージ的には普通のファイルシステムのパス指定に似たようなものだと思って大きく間違いはありません。
以上、ざっとサンプルを簡単に説明してみました。内容がなんとなく分かった方は以下のような課題にチャレンジしてみると面白いかもしれません。
- titleタグの内容を書き換えてみる
- 出力するタグの内容を変えてみる(tableで表示してみるなど)
- title以外のタグを元の文書に追加し、それも表示してみる
サンプルを堪能したら、いよいよWebページの作成に挑戦してみることにしましょう。
「4. XMLでWebページを作ろう」 |
- 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」の詳細も紹介する
|
|