XSL処理モジュールに、選択された各ノードのパターンに基づき、適切なテンプレートを適用するよう指示する
<xsl:apply-templates order-by="sort-criteria-list" select="pattern" >
- order-by
- ソート法をセミコロンで区切られたリストで指定する。最初のソート法による結果が等しい時、次のソート法がチェックされ、それでも等しい時更に次のソート法がチェックされ、というように適用される。個々のソート法の先頭の空白文字以外の文字で、ソートが昇順(+ 省略可)か降順(-)かを指定する。ソート法は、XSLパターンで表現され、select 属性で記述されるパターンに対して適用される。
- select
- テンプレートが実行されるべきコンテキストを指定する。デフォルト値"node()"は、カレント・ノードの子供で、属性以外の全てのノード・タイプを選択することを示す。
親に含めるエレメント数 制限なし 親となるエレメント xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:for-each, xsl:if, xsl:otherwise, xsl:pi, xsl:template, xsl:when, output elements 子となるエレメント xsl:template
xsl:apply-templates エレメントは、まず select 属性で指定された query を用いて一群のノードを選択する。この attribute が指定されていない時は、カレント・ノードの全ての子ノードが選択される。xsl:apply-templates は XSL処理モジュールに、選択されたノードそれぞれに対して適用すべき xsl:template を探すように指示する。テンプレートは、ノードとテンプレートの match 属性で指定された XSLパターンとを比較して、適用すべきかどうかをテストされる。二つ以上のテンプレートがマッチ・パターンを満足する時は、そのうちスタイルシート中で最も後方で指定されているテンプレートが選ばれる。
xsl:apply-templates エレメント自体が xsl:template エレメントを含んでいても良い。その場合、それらのテンプレートは、他の場所で定義されているテンプレートよりも先にテストされる。これらのテンプレートは、その xsl:apply-templates の中だけで有効であり、外からは見えない。この仕組みで、ローカルなスコープを持つテンプレートを定義することができる。
order-by 属性の構文は、December XSL Working Draft によって撤廃されたことに注意せよ。December XSL Working Draft では、代りに xsl:sort エレメントが定義されている。将来のリリースで正式の構文をサポートする予定である。