XML HOME > 基本的なXSLTファイルの作成
|
|
最小のXSLTファイル | ||||||||
XML と同様、XSLT ファイルも宣言が必要である。 XML の宣言行のあとに、以下の記述をしておくと、このファイルは XSLT ファイルであると認識される。これをスタイルシート宣言という。 なお、スタイルシート宣言は、特に問題のない限り、常にこの形式で記述される。
例えば、XML ファイル内で、name タグが人の氏名と、商品名の双方を示す場合もある。 このような場合、同一タグを区別するため、唯一無二の接頭辞をつけておくことが必要になる。 そこで、全世界で唯一無二である、URL を接頭辞と結び付けておくことで、タグの区別を行う。上記の表記では、<xsl:〜>のタグは、 http://www.w3.org/1999/XSL/Transform に記述されている表記法に従うことになる。 前述したように、XSLT は XML 文書を他書式に変換するための規約である。そこで、以下の出力指定により、出力する文書の書式を宣言する。
このとき、文字コードは、XML 宣言の文字コードと同じである必要がある。 XML ファイルから要素を抽出するために、以下の xsl:template タグを記述する。
XSLT は、XML 宣言、 スタイルシート宣言、出力指定、テンプレート規則の4種類で構成される。
XSLT ファイルを、XML ファイル適用する場合、XMLファイル側のXML宣言後、以下の文を追加する。
実際に、XML ファイルに 上記のXSLT ファイルを適用したサンプルはこちら。 また、そのとき適用した XSLT ファイルはこちら。 |
||||||||
テンプレート規則の記述方法 | ||||||||
サンプルの XSLT ファイルを適用しても、XML ファイルは、何も表示されなかったと思う。 ただし、ソースの表示で確認すると、XML ファイルは配信されている。 表示されなかったのは、テンプレート規則を記述していないためである。 テンプレート規則とは、文字通り出力データのテンプレートである。 ルート要素と呼ばれるタグ(前項参照)を基点とし、その配下に樹状に節点(ノード:テンプレート規則)を定義していく。(下図参照) ここで、先ほどのXSLTファイルに対して、ルート要素のテンプレート規則を以下のように定義する。
この XSLT ファイルを先ほどの XML ファイルに適用したサンプルを紹介する。 次に年表を表形式に出力するため、テンプレートを追加・修正する。
これにより、xsl:apply-templates タグが表記されている箇所に、xsl:template タグで定義されたテンプレート宣言が適用される。 ただし、記述するノード名は XML ファイル内のタグである必要がある。上記例では、<xsl:template match="main"> のテンプレートは <main> タグ配下にのみ適用される。 上記例XML ファイルの <main> タグ配下には <year> タグと <event> タグが存在しているが、それらのデータを抽出するために xsl:value-of タグが使用されている。
main タグ配下には col タグがいくつも存在していて、col タグ配下に上記の year タグや event タグが存在しているが、複数のタグに対して同一の処理を行う際に使用されるのが xsl:for-each タグである。
以上より、上記の例では、表の標題をルート要素のテンプレート宣言により定義したのち、main 要素のテンプレート宣言内で、その配下の col タグの個数分 year タグのデータ、event タグのデータを抽出して、表行要素を作成していることになる。 上記サンプルの XSLT ファイルはこちらから。適用する XML ファイルがこちらから。 |
||||||||