ポイント#4 データとスタイルの分離
第一部「XML文書の作り方」では、XMLとHTMLの相違点を何点か述べたが、もう1つ両者の間には特徴的な違いがある。それはXMLはHTMLと違って、データとスタイルが別々に存在するという点である(HTMLでもスタイルシートを使えば同様のことがある程度可能だ)。
HTMLは、Webページとして表示されるデータと、それを表示するためのスタイルの指定が混在して存在する。例えば文字を太字にしたいならば<B>タグを、中ぞろえにしたいなら<CENTER>タグをといった具合に、データに対してスタイルを直接指定することができる。
一方、XML文書ではタグが自由に定義できるため、そもそもどのタグは太字で、どのタグは中ぞろえで、といった表示のスタイルに関するルールが存在しない。そのため、通常のXML文書をWebブラウザで見ても、ツリー構造でしか表示されないのだ。
そこで、XML文書に対して、HTMLと同じように文字に色を付けたり、太字にしたり、中ぞろえにしたり、といったスタイル設定を可能にするのがXSL(Extensible Style Sheet)とXSLT(XSL Transformation)だ。もともと、この2つの仕様はXSLとして1つの仕様の中に含まれていたのだが、その後XSLからXSLTが独立し、XSLTの方が先に仕様として勧告された。
XSLとXSLTのいずれも、XML文書に対応したスタイルシートを別ファイルとして定義することで、スタイルの設定を実現している。
XSLTはXML文書をHTMLやSVGやプレーンテキストといった、さまざまな形式にして出力する機能を備える。変換用のスクリプト言語だと考えてもいいだろう。スタイルシートはスクリプト言語としてプログラミングするようになっている。XSLTでXML文書のスタイルを設定する場合には、多くの場合XML文書をHTML文書などスタイル付きの文書に変換することで実現する。
一方のXSLは、XML文書専用のスタイルシート言語である。こちらはXML文書に対して、Webブラウザ上での表示だけでなく、印刷などまでも視野に入れた本格的なスタイルの設定が可能になるが、まだ仕様が固まっておらず、XSLをサポートしたアプリケーションもまだほとんどないため、現実に利用されるケースは少ない。
データとスタイルが別々に存在するおかげで、スタイル付きでデータを表示するには2つのファイルを必要とするのは一見厄介に思える。しかし、複数のスタイルシートを用意すれば、同じ1つのXML文書から複数の異なったWebページなどを作成することができ、データの活用の範囲が広がるのだ。
例えば商品リストのデータを持つXML文書があったとき、顧客ごとにスタイルシートを用意すれば顧客ごとに違ったお薦め商品の資料を作ることができる。もしくは、1つのXML文書から通常のHTML文書、PDAのような小型画面用のHTML文書、iモードのようなさらに小さい画面用のデータなどを生成可能だ。このようにスタイルシートが分かれているおかげで、場合に応じた表示切り替えが可能になり、XML文書の再利用性も高まる。またスタイルがデータから切り離されて単独で存在するため、データには影響を与えずに表示に関する変更や管理ができる、といった開発上の利点もある。
Copyright © ITmedia, Inc. All Rights Reserved.