XSL Transformations

XSLT(Extensible Stylesheet Language Transformations)は、XML文書を変換するためのプログラミング言語であり、W3C(World Wide Web Consortium)によって標準化されています。これは、XSL(Extensible Stylesheet Language)という3つの仕様からなる規格の一つで、ジェームズ・クラーク氏を中心とする人々によって設計されました。XSLTは、XML文書を別のXML文書や他の形式のテキストデータに変換する際に利用されます。

XSLTの歴史と標準化



  • - XSLT 1.0: 1999年11月23日にW3C勧告として発表され、2007年にはJIS規格(JIS X 4169)としても翻訳されました。
  • - XSLT 2.0: 2007年1月23日にW3C勧告となりました。
  • - XSLT 3.0: 2017年6月8日にW3C勧告となりました。

XSLTは、XPath(XML Path Language)というXML文書内の特定の要素や属性を指定するための言語に基づいており、XML文書全体またはその一部を変換します。変換結果はXML形式だけでなく、HTMLやプレーンテキストのような他のテキスト形式でも出力可能です。例えば、HTML文書のヘッダー情報の追加、テキストの移動、ソートといった処理が挙げられます。

XSLTの特徴



  • - 関数型言語: XSLTは関数型言語としての側面を持ち、チューリング完全であるため、理論的にはあらゆる計算処理を記述できます。しかし、その高度な機能を利用するには、プログラミングの知識が必要になります。しばしばXMLに対して持たれる「プログラミング不要」というイメージとは異なり、XSLTは高度なプログラミングスキルを要求することがあります。
  • - 宣言的な変換: XSLTによる変換は宣言的に指定されます。つまり、どのように変換するかをルールとして記述し、XSLT処理系がそのルールに従ってXML文書を変換します。このルールは再帰的に適用されることがあります。
  • - 変換処理: XSLT処理系は、どのルールを適用するかを判断し、優先順位に基づいて変換を行います。XSLTプログラムはXML形式で記述され、変換ルールを定義します。

XSLTの応用例



XSLTは、XML形式のデータを様々な形式に変換するために利用されます。以下は、その応用例の一部です。

  • - データ変換: XMLデータを別の形式のデータに変換することができます。


テンプレート関数



XSLTはテンプレートという機能を使って、再帰的な関数を定義できます。以下は、文字列置換を行うテンプレート関数の例です。

xml





















この例から、以下の点がわかります。

  • - テンプレート関数の定義方法 (`xsl:template`, `xsl:param`)
  • - 引数の参照方法 (`$引数名`)
  • - 条件分岐の記述方法 (`xsl:if`, `xsl:choose`)
  • - XSLT関数の利用方法(`not`, `contains`, `substring-before`, `substring-after`)
  • - 定義されたテンプレート関数の呼び出し方 (`xsl:call-template`, `xsl:with-param`)

メディア型



XSLTのメディアタイプは`application/xslt+xml`としてIANAに登録されています。望ましいMIMEタイプは`application/xslt+xml`または`application/xml`です。しかし、一部のブラウザでは、`text/xsl`のような独自のMIMEタイプしか認識しない場合があります。

関連項目




外部リンク



以下に、XSLTの実装や仕様に関する外部リンクを記載します。

  • - 実装
- Xalan-Java
- Xalan-C++
- libxslt
- Sablotron
- SAXON
- XT
- XSLT for MSXML
- Microsoft XSLTransformations (XSLT) Standards Support Document
- MozillaはXSLTにネイティブ対応
- X-SmilesはXSLTにネイティブ対応
- <oXygen/> XSLT editor and debugger

  • - 仕様書
- XSLT 1.0 W3C 勧告
- JIS X 4169:2007
- XSLT 2.0 W3C 勧告
- XSLT 3.0 W3C 勧告
- XSLTチュートリアル (ドイツ語)
- XSLT 2.0参照 (ドイツ語)
- XSLTとXPathリファレンス (ドイツ語)

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。