Powered by SmartDoc

XSL-FO とはなにか?

ドキュメントをXML化する目的は、Webページを作成したり、電子的に配布するデータを作り出す、電子的なマニュアルを作成する、など、いろいろあります。しかし、どのような意図でXMLドキュメントを作成するにしても奇麗にレイアウトして「紙」に印刷することは欠かすことができません。

ところが、XMLはHTMLとは異なり、タグの名前やドキュメントの構造を自由に定義できます。このため、XMLのタグを、そのまま印刷のためのレイアウト指定に用いることはできません。

これはSGMLでも同じ事情です。ドキュメントをSGMLやXMLで作成した時、それを奇麗に組版して印刷するのは技術的に大きな課題となっています。今までは、このために主として次のような方法が使われてきました。

しかし、これらの方法には問題があります。一番大きな問題は、XMLコンテンツをアプリケーション独自の形式に変換してしまうことです。変換後のファイルは元のXMLコンテンツとは切り離されたアプリケーション独自のものになります。もし、XMLコンテンツを変更したら、変換からレイアウトまでの操作をもう一度繰り返さなければなりません。

これでは、折角XMLでコンテンツを作った意味が薄くなってしまいます。

コンテンツXML化の効果を上げるにはXMLコンテンツから組版・印刷まで一連のフローを確立しなければなりません。

「Extensible Markup Language」(XSL-FO)仕様(1)は、このような要請に応えることができます。

XSL-FOは、Webの標準を定める団体であるW3Cで、「XMLを奇麗にレイアウトして組版するための仕様」として、策定が進んでいるものです。

  1. XSLスタイルシートという言葉は、現在、非常に混乱しています。「Extensible Markup Language」仕様は、当初、XSLT(変換言語)、XPATH(パス指定方法)と一緒に検討されていました。ところが、1999年4月にXSLT、XPATHが独立して別仕様になったこと。Internet Explorerが、独自仕様のXSLスタイルシートを使ってXMLをHTMLに変換して表示するようになっているなどが原因です。