XSL FO Sample Copyright © 2002-2008 Antenna House, Inc. All rights reserved.
SVGを使ったすかしの例
ドキュメントをXML化する目的は、Webページを作成したり、電子的に配布するデータを作り出す、電子的なマニュアルを作成する、など、いろいろあります。しかし、どのような意図でXMLドキュメントを作成するにしても奇麗にレイアウトして「紙」に印刷することを欠かすことができません。
しかし、ドキュメントをSGMLやXMLで作成した時、それを奇麗に組版して印刷するのは技術的に難しい課題です。SGMLの時代からドキュメントをSGML化することで、ワン・ソース・マルチユースが実現できると言われてきましたが、現実には紙に印刷することさえ簡単には実現できませんでした。
SGML、XMLドキュメントを印刷する方法として、今までよく使われてきたのは次のような方法です。
•
XMLをPerlなどのスクリプトでMicrosoftWordの外部ファイル形式であるRTFに変換する。RTFをWordなどのRTFを読み込むアプリケーションで読み込んでレイアウトを調整して印刷する。レイアウト調整済み文書はRTF形式になる。
•
FrameMaker+SGMLのスタイルを指定して、FrameMaker+SGMLで読み込み、レイアウトを調整してから印刷する。この場合、レイアウト調整済み文書はFrameMakerの独自形式となる。
•
他の対話式組版ソフトやDTPソフトの形式に変換し、組版ソフトやDTPソフトでレイアウト調整して印刷する。レイアウト調整済み文書は、組版ソフトやDTPソフトの形式となる。
しかし、これらの方法には問題があります。一番大きな問題は、XMLコンテンツをアプリケーション独自の形式に変換してしまうことです。変換後のファイルに対してレイアウト調整を行うわけですが、レイアウト調整済み文書は元のXMLコンテンツとは切り離されたアプリケーション独自のものになります。もし、ソースのXMLコンテンツを変更したら、変換からレイアウトまでの操作をもう一度繰り返さなければなりません。
ドキュメントのソースを作ってから、レイアウト指定と調整を行い印刷するまでの流れは一サイクルで済むことはむしろ珍しく、普通は、校正などでソース変更とレイアウト調整のプロセスを何サイクルも通ります。従って、XMLソースを修正する都度、アプリケーションに読み込んでレイアウト調整が必要になるのでは、余計に手間がかかり、折角XMLでコンテンツを作った意味が薄くなってしまいます。そうかといって、レイアウト調整するアプリケーション上で文書の内容を修正したのでは、XMLソースと最終印刷物の内容がずれてしまいます。
こういったことを考えますと、コンテンツXML化の効果を上げるにはXMLコンテンツ作成、レイアウト調整、組版・印刷まで一連のフローを確立するのが理想的です。
Extensible Stylesheet Language仕様は、Webの標準を定める団体であるWorld Wide Web Consortium (W3C)で、「XMLを奇麗にレイアウトして組版するための仕様」として、策定が進んでいるものです。この仕様の正式な略称はXSLですが、現在、XSLという言葉は大変混乱していますので、本稿ではXSL-FOと略記します
(1)
(1)脚注文章。末尾の付録「XSL仕様小史」を参照。
。
現在、InternetExplorer5を使えばXMLを表示したり印刷したりすることができるようになっています。しかし、これは、実際は内部でHTMLに変換して表示しています。IE5のようなブラウザはパソコンの画面で表示することを主たる目的として設計されています。このため、ブラウザではページレイアウトを指定するのが難しくなります。画面で表示してみるならブラウザが良いですが、「紙」への印刷では物足りません。