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から勧告として公表された。 XML 文書をXSLT /XPath で変換してXSL-FO 文書を生成し、XSL-FO処理系によって人間に理解しやすい形式に変換するXSL Transformations (XSLT) は、XML 文書を構造の異なるXML文書などに変換する変換言語 である。XMLの他、プレインテキストとして出力(ないし、そのように意図して設計すれば、何らかのXMLでない形式言語 に従った形にも)できる。
XSL全体での位置づけとしては、任意のXSLからXSL-FO への変換に使う。
現在、XSLT処理系の実装 は、数多く開発されており、利用することができる。主な実装を次に示す。
XML Path Language (XPath) は、XML 文書の特定の部分(要素、属性、テキストなど)を指定する表現法である。XPath自体は簡潔な構文であり、XMLベースではない。XPathは、XSLT で処理対象のXML文書の特定部分を指定するために使われている他、XSLT以外でも処理対象のXML文書の特定部分を指定するために使われている。
XPathをさらに拡張したような仕様を持つものとしてXQuery がある。XQueryは、処理対象のXML文書の特定部分を検索する。
XSL Formatting Objects [ 編集 ]