<xsl:stylesheet> 要素
すべての他の XSLT 要素を含む、XSLT ファイルのドキュメント要素を指定します。
すべての他の XSLT 要素を含む、XSLT ファイルのドキュメント要素を指定します。 この要素は <xsl:transform> 要素と同義です。
<xsl:stylesheet
id = id
extension-element-prefixes = NCNames
exclude-result-prefixes = NCNames
version = number>
</xsl:stylesheet>
属性
id
XSLT ファイルの埋め込みを容易にする一意の識別子。extension-element-prefixes
拡張名前空間として使用される名前空間です。 その値は、空白で区切られた、名前空間プレフィックスのリストです。 プレフィックスに関連付けられた名前空間は、拡張名前空間として指定されます。 名前空間プレフィックスのリストに #default を含めることによって、(xmlns によって宣言された) 既定の名前空間を拡張名前空間として指定できます。 名前空間の拡張名前空間としての指定は、extension-element-prefixes を持つ要素をルートとするスタイル シートのサブツリー内でのみ有効です。<xsl:stylesheet> 要素をルートとするサブツリーには、その <xsl:stylesheet> 要素の子によってインポートまたはインクルードされたスタイル シートは含まれません。exclude-result-prefixes
除外された名前空間としての名前空間 URI (Uniform Resource Identifier)。 値は、空白で区切られた名前空間プレフィックスのリストです。 プレフィックスに関連付けられた名前空間は、除外された名前空間として指定されます。 名前空間プレフィックスのリストに #default を含めることによって、(xmlns によって宣言された) 既定の名前空間を、除外された名前空間として指定できます。 名前空間の除外された名前空間としての指定は、exclude-result-prefixes を持つ要素をルートとするスタイル シートのサブツリー内でのみ有効です。<xsl:stylesheet> 要素をルートとするサブツリーには、その <xsl:stylesheet> 要素の子によってインポートまたはインクルードされたスタイル シートは含まれません。version
必ず指定します。 XSLT ファイルで必要とされる XSLT のバージョンです。 このバージョンの XSLT では、値を "1.0" に設定する必要があります。
要素情報
出現回数 |
1 |
親要素 |
親要素はありません。 |
子要素 |
xsl:attribute-set、xsl:import、xsl:include、xsl:output、xsl:param、xsl:template、xsl:variable、msxsl:script |
解説
すべての XSTL ファイルが <xsl:stylesheet> をファイルのドキュメント要素として宣言する必要があります。
スタイル シートでは、一連のテンプレート規則宣言 (<xsl:template>) を使って、データ セットに対する明示的な変換を規定できます。 <xsl:include> または <xsl:import> (あるいはその両方) を使って他のスタイル シートを組み込むことができるため、機能が実証されている既存のテンプレート規則を再利用できます。 スタイル シートは、変換全体にわたって使用できるグローバル変数 (<xsl:param>) と名前付き定数 (<xsl:variable>) もサポートできます。 <xsl:param> 要素を使用してスタイル シートにパラメーターを渡すことができます。 拡張要素の <msxsl:script> を使用することにより、通常は推奨されない慣行ですが、スタイル シートでカスタム関数を実装できます。
共通の名前空間を複数持つ <xsl:stylesheet> 要素の例を次に示します。
XSLT スタイル シートは、少なくとも XSL 変換の名前空間を宣言する必要があります。 MSXML バージョン 4.0 以降では、この名前空間を次のように宣言する必要があります。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
他の名前空間からの要素またはデータ型を処理する場合、スタイル シートは、関連する名前空間も宣言する必要があります。 たとえば、次の XSLT スタイル シート宣言では、Microsoft の拡張機能と XSL-FO (XSL Formatting Objects) 用に定義されている追加の XML ボキャブラリを使用するよう指示しています。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
使用例
次の例に、一連のテンプレートを含む、完結した XSLT ファイルを示します。 ルート テンプレート (match="/") によって全体的な出力ドキュメントの構造が定義され、その他のテンプレートによって <name> 要素、<address> 要素、<phone> 要素の構造が定義されます。 この HTML 出力ファイルは、コマンド プロンプトで msxml.exe を実行して生成されたものです。
XML ファイル (customers.xml)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="customers.xsl"?>
<customers>
<customer>
<name>John Smith</name>
<address>123 Elm St.</address>
<phone>(123) 456-7890</phone>
</customer>
<customer>
<name>Mary Jones</name>
<address>456 Oak Ave.</address>
<phone>(156) 789-0123</phone>
</customer>
</customers>
XSLT ファイル (customers.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML>
<BODY>
<TABLE>
<xsl:for-each select="customers/customer">
<TR>
<xsl:apply-templates select="name" />
<xsl:apply-templates select="address" />
<xsl:apply-templates select="phone" />
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="name">
<TD STYLE="font-size:14pt font-family:serif">
<xsl:apply-templates />
</TD>
</xsl:template>
<xsl:template match="address">
<TD> <xsl:apply-templates /> </TD>
</xsl:template>
<xsl:template match="phone">
<TD> <xsl:apply-templates /> </TD>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select='.'/>
</xsl:template>
</xsl:stylesheet>
出力
これは書式付き出力です。
これはプロセッサ出力です。
<HTML>
<BODY>
<TABLE>
<TR>
<TD STYLE="font-size:14pt font-family:serif">John Smith</TD>
<TD>123 Elm St.</TD>
<TD>(123) 456-7890</TD>
</TR>
<TR>
<TD STYLE="font-size:14pt font-family:serif">Mary Jones</TD>
<TD>456 Oak Ave.</TD>
<TD>(156) 789-0123</TD>
</TR>
</TABLE>
</BODY>
</HTML>