XML文書はデータの集合です。これをブラウザで表示させるには、スタイルシートを指定します。スタイルシートを指定すれば、ブラウザに読み込ませたときにその内容を自在にレイアウトして表示できます。
- XSLTスタイルシート -
ここでは、スタイルシートとしてリスト2のような“members01.xsl”を指定しています。
スタイルシートには、CSS(Cascading Style Sheet)と上記のリストにあるXSLT(eXtensible Stylesheet Language Trasformations)の2種類が使えます。
CSSは、ご存じの通りHTML文書中で<STYLE>タグを使ってフォントの指定などを行う際にも用いられます。指定方法が簡単で分かりやすいのが特徴ですが、凝った表示指定はできません。
一方XSLTは、XML文書中の特定の項目を取り出したり、指定した項目を基準にデータを並べ替えるなど、元のデータを加工して表示させることができます※4。ここでは、XSLTによるスタイル定義を用いてみます。
※4 XML文書の表示指定には、「1.データの構造をどのように見せるか」と「2.段落や表の形態など見せ方をどのようにするか」の2つの側面があり、前者をXSLTで、後者をXSL-FO(eXtensible Stylesheet Language - Formatting Object)という規格で規定しています。一般によく用いられるXSL(eXtensible Stylesheet Language)は、両者を併せた規格の総称と言えるでしょう。
リスト2:XML文書の表示方法を指定するスタイルシート~members01.xsl
- 宣言と名前空間 -
1行目の
<?xml version="1.0"...>
という指定は、XML文書のものと同じです。次の
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xml:lang="ja">
は、スタイルシート記述の基本要素となります。stylesheetはスタイルシートであることの宣言、langは使用する言語の宣言です。
xmlnsは名前空間(name space)定義の指定です。名前空間とは、文書ごとに異なるタグの意味やHTMLタグとの混乱を防ぐために指定する定義で、基本的な定義はW3Cによって規定されています。
XSLTスタイルシートには、HTMLで用いるタグも記述できます。例えば、XML文書中で<table>というタグを使った場合、それがHTMLの<table>タグなのかあるいは文書独自の定義をしたタグなのか分かりません。そこで名前空間を定義して、タグの適用される範囲を示します。基本的な名前空間は、上記のURLで示します。
最後に</xsl:stylesheet>と記述してタグを閉じます。
- HTMLタグも使える -
スタイルシートの中心となる表示方法の指定は、<xsl:template>~</xsl:template>タグの間に記述します。
match属性は、XML文書内のどのデータを取り出すかを指定します。ここで“/”を指定すると「すべてのデータを取り出す」指示になります。“/”はルート(根本)を意味し、タグによって定義されたデータ構造全体の根幹から始まるデータ――つまりデータ全体を表します。
<xsl:template match="/">
先述したように、スタイルシートには<xsl:...>で始まるXSLタグと共にHTMLのタグも記述できます。HTMLタグは加工されず、そのままブラウザに引き渡されます。
氏名:<xsl:value-of select="社員/氏名" /> <BR/>
改行を示す<BR>タグのように従来閉じるタグが不要だったタグも、スタイルシートでは<BR/>として閉じておきます。
ここでは両者を区別しやすいよう、HTMLタグを大文字で、XSLタグを小文字で記述しておきます。これは、あくまでソースを読みやすくするための手段であって、XHTMLではHTMLタグを小文字で記述するよう規定されています。
- 特定のデータを抽出できる -
先に<xsl:template match...>によって取り出したすべてのデータの中から、特定の項目だけを表示するには<xsl:value-of...>タグを使います。以下の指定では、“番号:”の文字に続けて「番号の項目に記述されている<値>」を太字で表示します。
<DIV><B>
番号:<xsl:value-of select="社員/番号" /> </B>
</DIV>
上記の<xsl:value-of select="社員/番号" />の最後にある“/”記号は、このタグを閉じるための指定です。
こうしてスタイルシートで指定した形式でXML文書をブラウザに表示させると、画面2のようになります。
XML文書自体は単に構造化されたデータ群を記述したものであり、表示方法は別途スタイルシートで指定します。スタイルシートを使った表示指定は、直接ブラウザに読み込ませて内容を表示させるために必要なだけであって、サーバー側のXML文書をクライアントに送信する場合は、サーバー側のアプリケーションで表示を制御することもできます。
今回はXMLの基本事項を紹介するため、直接テキストデータを記述しました。実際のWebアプリケーションでは、アプリケーションの側でXMLデータを生成して送受信することになります。
次回は、XMLでデータベースの処理結果を扱う際に必要な技術や注意点などを紹介します。
サンプルファイル (LZH形式 828 KB)
今回のサンプルファイル
members00.xml:スタイルシート指定しないXML文書
members01.xml:スタイルシートを指定したXML文書(リスト1)
members01.xsl:members01.xmlが参照するスタイルシート(リスト2)
|
|
|