#?SuikaWiki/0.9 * key (XSLT) ** xslt:key 要素 (XSLT) [2] [CODE(XSLTe)[[VAR[xslt:]]key]] 要素 () は、[[鍵]]を設定するのに使います。 属性: ,[CODE(XSLTa)[[[match]]]],[[パターン]],(必須),鍵対象節 ,[CODE(XSLTa)[[[name]]]],[[QName]],(必須),鍵名 ,[CODE(XSLTa)[[[use]]]],[[式]],(必須),鍵値取得元 この要素は[[強制空要素]]で、[[最上位要素]]です。 他の最上位要素とは異なり、この要素型では[[輸入優先度]]による取捨選択がありません。 輸入優先度とは全く無関係に、全ての要素が使われます。 [3] [CODE(XSLTa)[match]] 属性及び [CODE(XSLTa)[use]] 属性で[[変数参照]]を使うのは[[誤り]]です。 [CODE(XSLTa)[use]] 属性は [CODE(XSLTa)[match]] の式に一致した節それぞれについて、 その節を[[現在節]], その節だけを[[現在節並び]]として評価します。 その結果が鍵名になりますが、節集合ならその構成要素それぞれの[[文字列値]] (複数になることもある!), それ以外なら [CODE(XPathf)[[[string]]]] 関数に通した結果が採用されます。 [[#comment]] ** key 関数 (XSLT) [4] [CODE[[VAR[節集合]] [CODE(XPathf)[key]] ([VAR[[[QName]]]], [VAR[物体]])]] は、条件に合致する鍵の節を返します。 第1引数は鍵の名前、第2引数は鍵の値です。 第2引数が節集合以外であれば、 [CODE(XPathf)[[[string]]]] 関数を通した値と鍵の値の一致をみます。 節集合であれば、構成するそれぞれの節の[[文字列値]]についての結果の[[和集合]]となります。 [[#comment]] ** メモ - [1] ''を使おう(1)'' - [5] ''はてなダイアリー - Hatena::agenda'' : 仕様書に挙げられている例なんて簡単に XPath 式で代替できる、もっとまともな例を出せよ!という話。 - [6] ''key関数の考察(XSLT1.0) - agenda 2003-10(上旬) - Personnel'' : >>5 ということで key についての考察キター(AA略) [[#comment]] * @key{[VAR[key-name]]} (GNU texinfo) [7] [CODE[@key]] は、鍵盤の鍵を示すために使用します。 [CODE[@key]] は、利用者に入力させる打鍵列を示す時に [CODE[@[[kbd]]]] の中に入れることができます。 たとえば、 [SAMP[@kbd{C-x @key{ESC}}]] のように書きます。 Texinfo のマニュアルには、 [CODE[KBD]] など代表的な鍵の名前が「推奨」として挙げられています。 先の例の [SAMP[C-x]] のように、鍵単独ではなく修飾子として使用するときには [CODE[@key]] ではマークしないようにと書いてあります。 [[#comment]] * key 要素型 (HTML) [8] [[HTML]] の [DFN[[CODE(HTMLe)[key]] 要素]]は、 鍵を表します。 [[#comment]] ** 歴史 [9] [CODE(HTMLe)[key]] 要素型は、 [CODE(HTMLe)[[[code]]]] 要素型や [CODE(HTMLe)[[[kbd]]]] 要素型などと共に 1993年1月に GNU texinfo から輸入されました。 (その経緯は [CODE(HTMLe)[[[code]]]] 要素の説明を参照。) DTD の注釈によれば、鍵盤の鍵の他に、 メニュー項目やボタンに使うことも想定していました。 [10] しかし、 1994年1月27日の [[Dan Connolly]] の DTD では [Q[There was once a KEY element, for keyboard keys, menu items, buttons, etc. but it's not supported or widely documented]] という注釈と共に標準では無効の要素型に降格し、 6月3日の DTD を最後に完全に消去されてしまいました。 [WEAK[(その期間に派生した Dan 以外の DTD でその後もひっそり受け継がれていたりしますが。)]] 削除された理由は注釈の通り使われなかったためでしょうが、 同時に導入された他の要素型群は使われたのに [CODE(HTMLe)[key]] (と [CODE(HTMLe)[[[dfn]]]]) がどうして使われなかったのかは謎です。 [11] 現在では [CODE(HTMLe)[[[kbd]]]] 要素型が [CODE(HTMLe)[key]] 要素型の意味で使われることもあります。 しかし、 [[HTML 4]] などの仕様書に明記された使い道ではなく、 好ましくないと考える人もいます。 ([CODE(HTMLe)[[[kbd]]]] の説明を参照。) [[#comment]] * メモ