[1] [[XSLT]] では、[[雛形規則]]の[[実現値化]]に際して[DFN[モード]]
(mode) というものがあります。
これを使うと、[[原始木]]中の同じ[[節]]を複数回使って、
例えばあるときは見出しだけを出力して目次に、
あるときは全体を出力して本文に、
ということが出来ます。
<http://www.w3.org/TR/xslt#modes>

[2] XSLT 1.0 では、 [CODE(XSLTe)[[VAR[xslt:]][[template]]]]
要素型及び [CODE(XSLTe)[[VAR[xslt:]][[apply-templates]]]]
要素型に [CODE(XSLTa)[[[mode]]]] 属性があります。
この属性は [[QName]] を値に取るか、または属性の指定を省略します。

[CODE(XSLTe)[[VAR[xslt:]]apply-templates]]
の側でモードが指定されていると、
実現値化に使う雛形規則の選定の際に、同じ名前のモードの
[CODE(XSLTe)[[VAR[xslt:]]template]]
のみを選定対象とします。属性なしは属性なしとのみ一致します。

[3] [WEAK[ですから、モードの継承のようなものはありません。モード [VAR[M]] の雛形規則の中で単に [CODE(XSLT)[<[VAR[xslt:]]apply-templates/>]] としたのでは、名前なしの (既定の) モードを指定したことになります。]]

[4] [CODE(XSLTe)[[VAR[xslt:]]template]] 要素に
[CODE(XSLTa)[mode]] 属性を指定する場合は、
必ず [CODE(XSLTa)[[[match]]]] 属性が必要です。
つまり、モードは一致する節の実現値化に使われる雛形規則にのみ有効で、
名前 [WEAK[([CODE(XSLTa)[[[name]]]])]] により呼び出される雛形規則には適用されないのです。


