ワンソース・マルチユースの要となるXSLT
XMLを使うと、1つのデータをホームページ表示に使ったり、紙印刷に回したりすることができるのはご存知のとおりです。しかし、それをどのような仕組みで行っているかについて、考えたことはあるでしょうか。
基本的なところから始めてみましょう。XMLでは、データの文書構造をテキスト形式で記述します。テキスト形式を使う理由は、異なるプラットフォーム間でも同じように読めるようにするため。つまり、プラットフォームの違いを気にせず、データ交換を行えるようにするためです。
よって、XMLが持つのはデータの構造記述のみです。各プラットフォームでデータを表現するための記述は(基本的には)持ちません。なぜなら、データを表現するという行為は、各プラットフォームに依存しているからです。表現データを持つということは、XMLデータの利点である互換性を消してしまうことに繋がります。
これを逆から考えてみましょう。XMLデータを各プラットフォーム上で表現してやる場合、XMLデータだけでは足りないことになります。XMLデータには、あらたに表現データであるレイアウト情報を付与してやらなくてはなりません。『XMLデータ』→『XMLデータ+レイアウト情報』というわけです。
この時に必要となってくる作業は次の2つです。
XMLデータのマルチプラットフォーム化
(1)
XMLデータを各プラットフォームが読み取れるデータ形式に変換する
(2)
(1)で変換したデータに対し、レイアウト情報を付与する
この内、1番の処理を担当しているのが、XSLT(eXtensible
Stylesheet Language
Transformations)です。XMLデータを構造変換するための一種のプログラム言語と考えて差し支え有りません。繰り返し命令や分岐命令なども使用でき、複雑なデータ変換に対応できるようになっています。XSLTで変換されたデータは、2番の手続きを経て、各プラットフォームで表現される形になるのです。 ここまでをまとめてみると、図1の様になります。プラットフォーム間でやりとりされているのは、XMLデータのみです。このデータはテキストデータですから、どのプラットフォームでも読むことが可能です。それぞれのプラットフォームで展開・表現しようと思ったとき、データにはレイアウト情報を付与する必要があります。そこで、XSLTでつくった変換フィルタにXMLデータを通して構造変換したデータを作り上げ、その後にレイアウト情報を付与します。各プラットフォームでは、変換後のデータを用いて表示を行います。
マルチユースを可能にする変換用ツールXSLT
上記の様に、XSLTを使用すると、XMLデータの構造を自由に変換することができます。しかも、データを変換するためのロジックと、XMLデータとは完全に分離されています。この事は、一体何を意味しているのでしょうか。
端的に言うと、XSLTで作った変換用フィルタを複数個用意すれば、1つのXMLデータを幾通りにも変換可能になるということです。1種類のデータを様々な形に変換し、利用することができるわけですから、もととなるデータが1つあれば、複数のプラットフォームへ簡単に展開させることができる事になります。また、いったん各プラットフォーム用の変換フィルタを作っておけば、以後必要に応じてデータ変換を容易に行えます。
XSLTは、もともとXMLデータの印刷・表示を行うための変換ツールの一環として使われていました。しかし現在では、XMLデータの一般的な変換用ツールとして見なされるようになっています。変換ロジックと、データとが分離しているという特性のためです。
XSLTを使用すれば、リレーショナルデータベース上のデータをXML形式に変換し、そのデータをHTMLデータに変換するといった事も容易に実現できます。
XMLの理想とする使用形態の一つに「ワンソース・マルチユース」があります。XSLTは、この理想を実現するために、大きな役割を果たしているのです。
Copy Right:日本プログレス株式会社
URL:
http://www.progress-japan.co.jp/