#?SuikaWiki/0.9 [1] [[XSLT]] では、[[雛形規則]]の[[実現値化]]に際して[DFN[モード]] (mode) というものがあります。 これを使うと、[[原始木]]中の同じ[[節]]を複数回使って、 例えばあるときは見出しだけを出力して目次に、 あるときは全体を出力して本文に、 ということが出来ます。 [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]]]])]] により呼び出される雛形規則には適用されないのです。