XSLTの基本構造

XSLTは、XMLで記述します。XSLTのエレメント(タグ)は、大きく分けてテンプレート、
変数、出力、制御、その他に分類され、これらを組み合わせることでXMLを任意の
フォーマットに変換するよう定義します。

XSLTは、XMLで記述するということなので、次のような規則にしたがって記述します。

  • 最低1つ以上のタグがあること
  • 開始タグと終了タグの関係が正しく取れていること
  • タグの親子関係が正しく入れ子になっていること(ネスト)

上記のようにXMLは、HTMLよりも厳しい規則があります。XSLTも同様に、開始タグや
終了タグを正しく記述する必要があります。

XSLTの基本構造を次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  .....
</xsl:stylesheet>

まず、XMLであることを示すXML宣言を記述します。

次にスタイルシートを示すxsl:stylesheet要素を記述します。
実際の定義は、このxsl:stylesheetに囲まれた部分に記述します。

このxsl:stylesheet要素には、XSLTのversionとXSLTの名前空間の
URIを指定します。この指定によりXSLTの名前空間接頭辞としてxslを
使います。

他の名前空間も使用する場合、xsl:stylesheet要素に併記します。
例えば、Amazon Web サービスの場合、次のように記述します。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2005-09-15">
  .....
</xsl:stylesheet>

この場合、Amazon Web サービスの名前空間接頭辞は、awsになります。

名前空間

ここでは、ごく簡単に名前空間について記録しておきます。

XMLでは、独自のタグを設計できますが、自由なだけに別々のXMLで
同じタグ名を異なる意味として定義することもできます。このタグを
区別するためにXML名前空間は、それぞれのタグセットに固有のURIを
割り当て名前をURIで修飾することでタグを区別します。

例えば、Amazonで設計された商品のtitleタグと本の流通業界で設計された
titleタグを区別するといった使い方でしょうか。