W3C規格解説
XSL(Extensible Stylesheet Language)1.0
(株)日本ユニテック
村上 泰介
XSLとは、スタイルシートを表現するための規格で、10月15日に勧告となりました。(http://www.w3.org/TR/xsl/)XSLは、XMLデータをブラウザやPDA(携帯情報端末)や文書などの様々なメディアで、細かいページ編集やレイアウトを指定して表示させることができます。従来からHTMLでは、印刷や出版に利用するにはレイアウトや表示機能が十分ではないと言われており、XSLはそのような要望にこたえるものです。
XSLの説明を行う前に、まずXMLデータを何らかの媒体で表示するプロセスについて考慮します。XMLデータを、たとえばブラウザや文書などで表示するには、次の2つのステップがあります。
- 1.)対象のXMLデータ(ソースツリー)を変換して表示したい形式のデータ(結果ツリー)にする
- 2.)変換したデータ(結果ツリー)を処理して出力する
1番目のプロセスはツリー変換と呼ばれ、2番目のプロセスはフォーマッティングと呼ばれるプロセスです。フォーマッティングの実行はフォーマッターによってなされます。たとえば、あるXMLデータをブラウザで表示するために、XMLデータをXSLTスタイルシートにしたがってHTMLに変換し、それをブラウザで処理したとします。その場合、XSLT プロセッサでツリー変換をし、ブラウザでフォーマッティングをしたことになります。
XSL規格はツリー変換を行うためのXSLTと、結果ツリーを表示するためのXSL-FO(フォーマッティングオブジェクト)という規格で構成されています。XSLTはすでに99年11月に勧告になっており、XSLとは主にXSL-FOのことといえます。
XSLで先ほどの2つのプロセスを表示すると次のようになります。
実際のXSL-FOのサンプルを示します。fo:root要素がルート要素で、レイアウト情報を記述するfo:layout-master-set要素と、プレゼンテーション情報を記述するfo:page-sequence要素を子要素に持ちます。A4のページに50ptの“HelloWorld!”を記述するということを表現しています。
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="typeA"
page-height="297mm" page-width="210mm"
margin="1in">
<fo:region-body regionname="xsl-region-body"/>
</fo:simple-page-master>
<fo:page-sequence-master master-name="typeAcontent">
<fo:single-page-master-reference
master-reference="typeA"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-referece="typeAcontent">
<fo:flow flow-name="xsl-region-body">
<fo:block text-align="center"
fontsize="50pt">HelloWorld!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
|
XSLの仕様は大きなもので、細かい印刷・表示の指定が行えるようになっています。XSL-FOに関しては「改訂版 標準XML完全解説(下)」の第6、7、8章のコラムで解説しています。またXSLTについては第6章から第9章で説明しています。関心のある方はそちらをご覧下さい。
XSL1.0の実装については、まだ勧告になったばかりなので、XSLフォーマッターを提供しているのはアンテナハウス社(http://www.antenna.co.jp/)など数社にとどまります。ただ、XSLは、商業印刷にも耐えられる本格的なXMLのスタイルシート言語ですので、印刷・出版業界を中心とした採用が進むと思われます。
関連サービス
標準化仕様の動向調査
最新動向を伝えるDXメールニュース
(無料)
|