ページ単位のレイアウトにも対応するフォーマット言語
●【XSLの仕組み】 XSL:XMLの表示体裁を決めたり、フォーマット変換をする言語 |
XMLの枠組みを用いて言語を作り、それを利用して「人間が見る」ための文書を作成する場合、そのXML文書をどのように表示するのかという問題が発生する。システム同士でやり取りし、その間に人間がXMLを参照する可能性がないならレイアウトする必要はまったくない。しかし、人が見る、もしくは見せるための文書であればワープロソフトで作った文書のように、キレイにフォーマットした形で画面やプリンタに出力したいというのは当然の欲求だろう。そこでXMLを勧告したW3Cでは、「XSL(Extensible Stylesheet Language)」および「XSLT (XSL Transform)」という仕様を用意している。
XSLはXMLに書式情報などを付加し、フォーマットされた形で画面およびプリンタなどに出力するための規格で、「XSL-FO(Formatting Object)」などとも呼ばれる。XSLを利用することで、XML上の情報に対してフォントの種類や文字の大きさ、行間などといった書式情報を定義し、見栄えを整えた形で画面上に表示する、あるいはプリンタから出力するといったことが可能になるわけだ。
XSLと同じくXML文書にレイアウト情報を付加できる仕様として「CSS(Cascading Style Sheets)」がある。CSSはHTMLで利用されることが圧倒的に多いが、XMLにも適用できる。XSLとCSSの違いは、CSSが画面への表示を重視しているのに対し、XSLは、それに加えて印刷まで視野に入れている点が挙げられる。それを端的に示しているのがページ概念の有無で、XSLはCSSで不可能なページ単位のレイアウト制御が可能だ。
もう1つのXSLTは、XML文書を別の文書に変換するための機能を定義した仕様である。もともとXSLの仕様の一部として考えられていたが、XSLの仕様が膨大で勧告となるまでに時間がかかりそうだったこと、そして単体の仕様としても利用価値が高いと判断されたことからXSLから分離し、XSLTは単独の仕様として勧告されることとなった。
XSLTでは、XMLをどのように変換するかを定義したルールをまず作る。それをXSLTに対応したソフトウェアに読み込ませると、ルールに従ってXML文書が変換されて出力される。ルールの作り方次第で、例えばXML文書をHTMLに、あるいは別のXML文書に変換するといったことができる。
XSLTのメリットには、「1ソースマルチユース」がある。例えばパソコン用、携帯電話用などデバイスごとのルールを作成しておき、1つのXMLにそれぞれのルールを適用、複数のHTMLを出力するといった例だ。
XML文書をフォーマットされた形で画面に出力したい、あるいはプリンタに出力したいという欲求は強く、XSLやXSLTを実装したソフトウェアはいくつも登場している。出力環境が整ったことで、XML形式でデータを取得し帳票形式で出力する、あるいはXMLを使っての文書作成といったソリューションが今後ますます充実すると予想される。