Extensible Stylesheet Language

Extensible Stylesheet Language（エクステンシブルスタイルシートランゲージ、XSL）は、スタイルシート言語の一つ。XML文書から、組版などの変換を行うためのシステムで、複数の仕様から構成されている。名称を直訳すると、拡張可能なスタイルシート言語である。

XSLを構成する仕様は次の3つである。元々は「Extensible Stylesheet Language」という名前の通り、スタイルシートに基づき組版処理などを行う目的で策定が始まったものだが、XSLTはXMLの変換用として汎用になるよう、XPathはXMLの木の要素の指定用として汎用になるよう、設計された。
 XSL Transformations
 XSL Transformations (XSLT) は、XML文書を構造の異なるXML文書などに変換するための変換言語である。それ自身もXMLで記述する。
 XML Path Language
 XML Path Language (XPath) は、XML文書の特定の部分（要素、属性、テキストなど）を指定する表現法である。XPathは、XSLTで処理対象のXML文書の特定部分を指定するために使われている。XPath自体は簡潔な構文であり、それ自身はXMLではない。
 XSL Formatting Objects
 XSL Formatting Objects (XSL-FO) は、文書の組版（人間に理解しやすい形式）を記述する記述言語である。それ自身もXMLで記述する。

この3つの仕様は、標準化団体 W3C (World Wide Web Consortium) で開発され勧告として公表されている。

 歴史 
XSLの歴史は、既存の SGML 向けのスタイルシートである DSSSL の機能、特に印刷と植字の機能を、XMLに適用できるようにする開発作業から始まった。
 1997年12月から、W3CのXSL作業部会の活動が始まった。XSL作業部会では、シャロン・アドラーとスティーブ・ジルズが共同議長を、ジェームズ・クラークがエディタを、それぞれ務めた。ジェームズ・クラークは、XSLの非公式な主席設計者でもあった。また、クリス・リリーがW3Cスタッフの連絡役を務めた。
 1998年8月18日に、作業部会はXSL仕様の最初の作業ドラフトを公表した。
 1999年11月16日に、XSLT 1.0 と XPath 1.0 がW3Cから勧告として公表された。
 2001年10月15日に、XSL 1.0（XSL-FOを含む）がW3Cから勧告として公表された。
 2006年12月5日に、XSL 1.1（XSL-FOを含む）がW3Cから勧告として公表された。
 2007年1月23日に、XSLT 2.0 と XPath 2.0 がW3Cから勧告として公表された。
 2014年4月8日に、XPath 3.0 がW3Cから勧告として公表された。
 2017年3月21日に、XPath 3.1 がW3Cから勧告として公表された。
 2017年6月8日に、XSLT 3.0 がW3Cから勧告として公表された。

 XSLを構成する仕様 

 XSL Transformations 

XSL Transformations (XSLT) は、XML文書を構造の異なるXML文書などに変換する変換言語である。XMLの他、プレインテキストとして出力（ないし、そのように意図して設計すれば、何らかのXMLでない形式言語に従った形にも）できる。

XSL全体での位置づけとしては、任意のXSLからXSL-FOへの変換に使う。

現在、XSLT処理系の実装は、数多く開発されており、利用することができる。主な実装を次に示す。
 Saxon - オープンソースの実装
 Apache Xalan - Apache XML プロジェクトによるオープンソース実装
 ウェブブラウザで利用されている実装
 MSXML - Internet Explorer で使われている
 TransforMiiX - Mozilla Firefox、Mozilla、Netscape で使われている

 XPath 

XML Path Language (XPath) は、XML文書の特定の部分（要素、属性、テキストなど）を指定する表現法である。
XPath自体は簡潔な構文であり、XMLベースではない。
XPathは、XSLTで処理対象のXML文書の特定部分を指定するために使われている他、XSLT以外でも処理対象のXML文書の特定部分を指定するために使われている。

XPathをさらに拡張したような仕様を持つものとしてXQueryがある。XQueryは、処理対象のXML文書の特定部分を検索する。

 XSL Formatting Objects 

 関連項目 

 HTML
 XML
 スタイルシート
 XSL
 XSLT
 XPath
 XSL-FO
 DSSSL
 CSS
 TeX
 LaTeX

 外部リンク 

 The Extensible Stylesheet Language Family (XSL) - W3CのXSLのページ
 アンテナハウス社のページ（日本語）
 Antenna House XSL Formatter - アンテナハウス社によるXSL-FOの商用処理系
 XSL-FO の基礎 第2版 - XML を組版するためのレイアウト仕様
 スタイルシート開発の基礎 XML と FO で簡単な本を作ってみよう
 Extensible Stylesheet Language - xml.coverpages.org
 What is XSL-FO? - O'REILLY XML.com
 XML Focus Topics : CSS, XSL, XSL-FO - XML.org

 xmlroff - オープンソースの処理系
 Apache FOP - Apache XML Graphics プロジェクトによるオープンソースの処理系。PDF/SVG/プレーンテキストなどへの変換が可能

 W3Cschools XSL Tutorial

Category:XML
Category:W3C勧告
Category:スタイルシート言語