XSL Formatter V2 Q&A

現在、最新のバージョンは『AH Formatter V6』です。(2017年5月2日)

基本・一般

XSL-FO とは?

サンプル・チュートリアル

トップ
基本・一般
XSL Formatter について
操作方法
プログラミング
XSLT/XSL-FO 仕様について
XSLT/XSL-FO テクニック
索引

XSL-FO とは?

Q.  XSL とはなんですか。 [No.2002011508]
A. 

World Wide Web Consortium(W3C)が、XMLを奇麗にレイアウトして印刷するための仕様として策定した「Extensible Stylesheet Language」(XSL)仕様の略称です。XSL Version 1.0 仕様は、2001年10月15日にW3C勧告となりました。


Q.  フォーマッティングオブジェクト(FO)とはなんですか。 [No.2002011509]
A. 

FOとは、XMLの要素型でレイアウトや書式を指定するためのものです。次の図は段落ブロックのFOの例です。「見出しのブロック」という文字列に段落の配置やフォントなどの属性をプロパティで指定しています。

<fo:block
  font-size="14pt"
  space-before="0.5em"
  space-before.precedence="1"
  space-after="0.5em"
  keep-with-next.within-page="always"
  keep-with-next.within-column="always"
  start-indent="10mm"
  end-indent="10mm"
  id="IDwfmY1">
Text string of title content of fo:block element
</fo:block>

Q.  XSL-FO のファイルは、どうやって作るのですか。 [No.2002011510]
A. 

通常は、表示・印刷対象としたいXML文書ファイル、それをXSL-FOに変換するためのルールを書いたスタイルシート(XSLTスタイルシート)の2つを、XSLTプロセサに入力し、XSL-FOファイルを出力します。できたXSL-FOファイルは、XMLファイルに組版指示を施した結果を記述した整形式のXMLファイルで、これは組版処理前の状態のファイルです。


Q.  XSL Formatter とはなんですか。 [No.2002011511]
A. 

XSL-FOのファイルを組版処理するソフトウェアを一般にXSL-FOプロセサと言いますが、「XSL Formatter」は、アンテナハウスが開発したXSL-FOプロセサの名称です。


Q.  なぜ、XSL Formatter が必要なんでしょうか。ブラウザとの違いはなんでしょうか。 [No.2002011512]
A. 

Internet Explorer6 を使えば、XMLをHTMLに変換して表示できます。しかし、HTMLとブラウザにはページの概念がありません。このため、XML文書を印刷する際、用紙の大きさに会わせてレイアウト指定し、それを指定どおりに奇麗に整形して紙に印刷する用途には向きません。今後も、ブラウザの動作環境が様々な端末に広がることを想定しますと、用紙サイズに会わせて奇麗にレイアウトした文書を印刷する機能をブラウザに期待するのは無理でしょう。XSL-FOは、ぺージ単位のレイアウト指定ができ、XSL Formatter は、指定どおりの組版ができることが特徴です。目次やフッタのページ番号、索引など印刷物の体裁で印刷可能になります。


Q.  XMLファイルを表示したり、印刷したりするのは、なぜ難しいのですか。 [No.2002011513]
A. 

XMLでは、要素名を自由に定義することができます。HTMLでは、要素名が固定されていて、要素名から表示方法を決定できますが、XMLでは要素名から表示方法を決定できません。このため、XMLファイルのままでは表示したり、印刷することができません。


Q.  スタイルシートとはなんですか。 [No.2002011514]
A. 

XSL Formatter で指定するスタイルシートは、正確には「XSLTスタイルシート」と言います。XSLTプロセサのための変換ルールを記述したファイルです。変換ルールとは、一言で言いますと、ソースのXMLファイルの要素に対して、出力する Formatting Object などを記述したものです。詳細は、こちらの資料をご覧ください。


Q.  スタイルシートはXML文書ごとに作らないといけませんか。 [No.2002011515]
A. 

いいえ。標準的なものは、ひとつのDTDに対して一つ用意していただければ結構です。それをベースにして自分の好みに応じてバリエーションを加えれば良いと思います。将来は、XMLのDTDとXSL-FOのためのスタイルシートがペアで公開されるようになると思われます。


Q.  スタイルシートを作るには、どんな知識を勉強すれば良いでしょうか。 [No.2002011516]
A. 

XSLTの仕様とXSLT用のスタイルシートの文法を学ぶ必要があります。これは、W3Cの勧告になっていますので、既に勉強している人は増えています。現在は、XSLTを使って、XMLをHTMLに変換するスタイルシートを書く人が急激に増えており、幾つかの本も出版されています。さらに、XSL-FOの仕様を勉強する必要があります。こちらの参考資料を参照してください。


Q.  XMLファイルをHTMLファイルに変換するスタイルシートと、XMLファイルをXSL-FOファイルに変換するスタイルシートは同じものでしょうか。 [No.2002011520]
A. 

いいえ、スタイルシートは全く異なります。同じXSLTを使いますので、スタイルシートの文法は同じですが、スタイルシートに記述する内容は、全く別のものです。具体的にはHTMLに変換するスタイルシートでは、テンプレートにマッチしたときに出力する要素は、HTMLの要素になります。一方、XSL-FOに変換するスタイルシートでは、テンプレートにマッチしたときに出力する要素は、<fo:root> 以下の Formatting Object になります。


サンプル・チュートリアル

Q.  何か役立つサンプルが用意されていませんか。 [No.2002011501]
A. 

サンプル集を用意しています。どうぞご利用ください。


Q.  XSL の仕様書の日本語訳はありませんか。 [No.2002011517]
A. 

XSL仕様書の翻訳は次から入手できます。
題名:TR X 0088:2003 拡張可能なスタイル
シート言語(XSL)1.0
発行年月:平成15年9月1日
発行者:日本工業標準調査会 標準部会
発行所:日本規格協会


Q.  スタイルシートを簡単に作成するツールはないのでしょうか。 [No.2002011518]
A. 

現時点では、XSLTスタイルシートをGUIで簡単に作成するツールはありません。テキストエディタを使って手で書いています。


Q.  スタイルシートのセミナーはありませんか。 [No.2002011519]
A. 

弊社では、XSL FormatterとXSL-FOを普及させるために、スタイルシートを書くことができる人が増えて欲しいと考えています。そこで、スタイルシートの例やスタイルシートの作り方を公開したり、XSLSchool を通じて普及活動を行いたいと考えています。スタイルシート開発で一緒に協力していただける方や企業も歓迎します。


Q.  HTMLファイルを XSL Formatter で表示するためのスタイルシートはありませんか。 [No.2002011526]
A. 

サンプル・スタイルシートはこちらから入手していただけます。


Q.  FOファイルの正当性の評価を、DTDを使って行うことは妥当でしょうか。 [No.2002030801]
A. 

いいえ、FOファイルの正当性の評価を、DTDを使って行うことにはあまり意味がありません。 それは、FOのプロパティはDTDで表現することができないからです。よってFOファイルをDTDによって正当化するということはできないのです。 「DTDでエラーにならなければ正当なFOファイルである可能性がある」、「DTDでエラーになれば、不正なFOファイルである可能性がある」という程度の目安にはなります。


Q.  なぜ、スタイルシートのネームスペースは Oct 15 2001 ではなく、Nov 1999 と指定するのですか。 [No.2002041902]
A. 

URI に書かれている1999は、W3CがURIを定めた日付けであり、XSL仕様のバージョンを意味しているのではないからです。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">

Copyright © 1999-2004 Antenna House, Inc. All rights reserved.
Antenna House is a trademark of Antenna House, Inc.