XSL Formatting Objects
Channel: 宇宙のすべての知識 プリンシピア
Date: 14/05/2019

XSL Formatting Objects, by Wikipedia https://ja.wikipedia.org/wiki?curid=641614 / CC BY SA 3.0

#XMLベースの技術
#W3C勧告
#スタイルシート言語
XSL Formatting Objects

XSL Formatting Objects (XSL-FO) は、XSL (XML Stylesheet Language) の一部で、組版の制御・指示のための仕様である。狭義にはXSL仕様で定義されている組版対象オブジェクトのことである。XSLは、XSL-FOの他、XSLTとXPathから構成される。XSLはXML文書の変換と組版を行うために開発された。XSLの構成要素の一つであるXSL-FOでは、視覚的媒体だけでなく、聴覚的媒体に関する制御も規定している。XSL-FOを含むXSL関連仕様は標準化団体 W3C (World Wide Web Consortium) で開発され勧告として公表されている。


XSL-FO文書も、（XSLTにより） XSL-FO形式に変換する前の文書も、ともにXMLに準拠したマークアップ言語である。このことは、XHTML/HTML と CSS を組み合わせて使う場合とは対照的である。XHTML/HTML は XML/SGML に準拠しているが、CSS は独自の構文で記述する言語でありXMLに準拠していない。

XSL-FOでは、XHTMLとは異なり、意味に基づいたマークアップは行わず、組版で必要となるマークアップのみを行う。また、XSL-FO文書自身に組版の対象となる文書データが全て格納される。一方で CSS は、別の XML もしくは XHTML 文書の既定の表現を変更する方法を採っている。

視覚的表現のための他の手段には、XHTML、DocBook および TEI などの利用がある。XSL は、XSLT が任意の XML を処理可能であるため、どのような XML 文書に対しても適用できる。また出力手段も XSL-FO に限らず、XSLT によって XHTML などに変換する（XMLベースであればなんでも）、といったことも可能である。

XSL では、まずXSLTスタイルシートを使うことが多い。このXSLTスタイルシートは対象となるXML文書の文書型 （スキーマ） にあわせて記述される。XSLTスタイルシートは、組版を行う人自身が記述する場合もあるが、文書型にあわせて作成された既製のものを使うこともできる。このXSLTスタイルシートを適用することにより、対象となるXML文書は、XSL-FO文書に変換される。

XSL-FOでは、XML文書の一般的な作成者は、普通のXML文書を作成するのであり、直接にXSL-FO形式のXML文書を作成することは、想定していない。XSL-FOでは、XML文書の作成者が作成したXML文書をXSLTを使ってXSL-FO形式のXML文書に変換すると、想定している。XSLTのスタイルシートは、作成したXML文書とは別途作成する場合と、XML文書自身に埋め込む場合がある。XSL-FO文書の生成は、XSLTによる変換によって行うことができるが、適切なXSL-FO形式に生成できるのであれば、XSLTを使わずに任意の手段で生成して構わない。

XSLTは、当初はXSL-FOへの変換という用途のみが想定されていたが、XML文書の汎用的な変換に使用可能である。現時点では、多くのソフトウェア技術者（プログラマ）はXSLTをXML文書の汎用的な変換言語として認識しており（認識の問題ではなく、汎用であるということは単なる事実であるが）、XML文書をXSL-FO文書に変換するという用途はあまり認識されていない。

XSLTの変換は非常に強力である（チューリング完全である）。XSLTを使うことによって自動的に、文書の目次を生成したり、参考文献とのリンクを設定したり、索引を生成するなど、非常に多様な能力をもつ。

XSL-FO形式の文書が生成されると、XSL-FOの処理系がそのXSL-FO文書を処理して組版する。XSL-FO処理系は、XSL-FO文書を入力として、一般の人々にとって読みやすいファイル形式ないしは印刷/表示可能な媒体を、出力する。出力可能な形式の種類は、XSL-FO処理系の実装により異なる。現在、XSL-FOで最も一般的な出力形式はPDFである。実装によっては、PostScriptやRTFなどの他の形式での出力も可能であるし、ファイルを作成せずに直接にコンピュータ画面に表示したり、直接印刷することもできる。

XSL-FOは、複数のページで構成される媒体を想定して設計された。一方HTM...