<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-setxsl:importxsl:includexsl:outputxsl:paramxsl:templatexsl:variablemsxsl: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>

参照

関連項目

<xsl:transform> 要素