実践! 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"?>
<?xml-stylesheet href="hello.xsl" type="text/xsl"?>
<page>
  <title>Hello Baykit</title>
</page>
リスト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>
  <head>
    <title>Hello Baykit</title>
  </head>
  <body>
    <center>
    <h1>Hello Baykit</h1>
    </center>
  </body>
</html>
リスト2 スタイルシートのhello.xsl を適用して得られるXHTML形式の出力

■ 変換の仕組みはXSLT

 上記のXHTML文書とXML文書を見比べると、<title>タグの中のメッセージが<head>と<body>の中にそれぞれ埋めこまれていることが分かります。以上の入力と出力のイメージをざっとつかんだところで、XML文書をXHTML文書に変換するXSLT文書、hello.xslを見てみましょう。

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


<xsl:output indent="yes" method="html"/>

<xsl:template match="page">
<html>
  <head>
    <title>
      <xsl:value-of select="title"/>
    </title>
  </head>
  <body>
    <center>
      <h1>
        <xsl:value-of select="title"/>
      </h1>
    </center>
  </body>
</html>
</xsl:template>


</xsl:stylesheet>
リスト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ページを作ろう」

Index
実践! XMLアプリケーションサーバ「BXS」
第1回 XMLでWebサイトを作ろう
  1. Baykit XML Serverとは
  2. インストールしよう
3. XMLのサンプルを表示させてみる
  4. XMLでWebページを作ろう
第2回 XSTLによるダイナミックな変換の実際
  1. データの内容に基づいた表示の加工
  2. さらにXSLTスタイルシートを改良
  3. Webブラウザ別のスタイルシートを用意
  4. Webブラウザごとに出力を切り替える




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

注目のテーマ

HTML5+UX 記事ランキング

本日月間