目次へ

1. XSLT

1.1 XSLT とは

HTML にスタイルシートとして CSS (Cascading Style Sheets) があるように、XML には、より豊富な機能を持つスタイルシート言語として W3C で標準化された XSL (Extensible Stylesheet Language) があります。

XSL スタイルシートの適用処理は、二つの局面でとらえることができます。第一は、XML 文書を別の XML 文書に変換することです。XML 文書はツリー構造をしており、変換前のツリーをソースツリーといい、変換後のものを結果ツリーといいます。第二は、結果ツリーを解釈して、ディスプレイ上、紙面上、音声、又はその他のメディア上での表示に適するフォーマット結果を生成することです。第一の局面をツリー変換と呼び、第二の局面をフォーマッティング (書式設定) と呼びます。

ツリー変換は、結果ツリーの構造をソースツリーの構造とは大きく異なるものにすることを可能にします。例えば、元の XML 文書に目次を追加できたり、ソートされた表形式の表示に再整理できたりします。結果ツリーを構築する際に、ツリー変換処理は、その結果ツリーをフォーマットするのに必要な情報も追加します。

image

当初これらの機能はすべて XSL に含まれていましたが、最終的にこのツリー変換の部分が独立して XSLT (XSL Transformations) として機能および構文が規定され、バージョン 1.0 が 1999/11/6 に W3C の勧告となり、バージョン 2.0 が 2002/11/15 にワーキングドラフトとなっています。 この文書において XSLT とは特に断りがない限り XSLT 1.0 を意味することとします。

1.2 スタイルシートの構造

XSLT のコードも XML 文書の構造をしています。よって最初に XML 文書と同様に XML 宣言が必要です。次に実際に変換を行う部分の記述があるスタイルシートの内容ですが、xsl:stylesheet 要素として表されます。xsl:stylesheet の同義語として xsl:transform を使用することもできます。

xsl:stylesheet 要素には version 属性としてスタイルシートに必要な XSLT のバージョンを記述しなければなりません。現在勧告となっているバージョンは 1.0 ですので、属性値としては 1.0 を指定することになります。また、変換処理を行う XSLT プロセッサに要素と属性がどこに属するかを認識させるために xmlns:xsl 属性の属性値として XSLT 名前空間を指定しなければなりません。この XSLT 名前空間の URI としては http://www.w3.org/1999/XSL/Transform を指定します。

xsl:stylesheet 要素の子として現れる要素は、トップレベル (top-level) 要素と呼ばれ、以下のような要素となります。これらの要素を必ず含めなければならないこともありませんし、複数含めてもかまいません。また、トップレベル要素の出現順序は xsl:import 要素や一部の例外を除いて自由に並べてかまいません。

以下にごく単純な XSLT の例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns="http://www.w3.org/TR/xhtml1/strict">
  <xsl:template match="/">
    <html>
      <head>
        <title>Expense Report Summary</title>
      </head>
      <body>
        <p>Total Amount: <xsl:value-of select="expense-report/total"/></p>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp