#?SuikaWiki/0.9
* id 属性 (HTML, XHTML 1)
[9] [CODE(HTMLa)[id]] [[属性]]は、 [[HTML]] のほとんどの[[要素型]]で定義されています。
この属性は、[[要素]]に[[名前]]を割り当てます。
名前は[[文書]]内で固有である必要があります。
を参照。
HTML 4 的には [CODE(SGML)[%[[name]]]] 型、
[[SGML]] 的には [CODE(SGML)[[[ID]]]] 型です。
[10] 仕様書
では、この属性の値の役割として、
- [[スタイル・シート]]の[[選択子]]。
- [[スクリプト]]から特定の要素を参照する手段。
- 宣言済み [CODE(HTMLe)[[[object]]]] 要素の名前。
- [[UA]] の一般目的処理のため。たとえば、次の時の欄の識別。
-- HTML から [[DB]] にデータを取り出すとき
-- 他の書式に HTML 文書を翻訳するとき
- [[リンク]]の[[終点アンカー]]の識別子
を挙げています。
[4] [[HTML]] の id 属性値の取りうる値:
-draft HTML 3.0: [A-Za-z][A-Za-z0-9.-]*
--IETF HTML 2.x: [A-Za-z][A-Za-z0-9.-]*
-W3C HTML4: [A-Za-z][A-Za-z0-9._:-]*
-W3C XHTML: \{名前開始文字}\{名前文字}*
-\{名前開始文字} = \{基底文字} | \{漢字} | : | _
-\{名前文字} = \{基底文字} | \{合成文字} | \{漢字} | \{数字} | : | _ | - | . | \{文字に準じるもの}
** 大文字と小文字
[11] (HTML は、大文字・小文字を区別しない(たぶん)。)
([[XHTML]] は、大文字・小文字を区別する。)
[1] >>11 HTML でも大文字・小文字が区別されるという話がありますが、どうなんでしょう?
[5] >>1 IETF/W3C HTML の [[SGML宣言]]によれば、
[[名前]]の大文字と小文字は区別されません。 (大文字に正規化されます。) 実装には区別するものもきっとあるんでしょうが。。。
[12] >>11,>>1,>>5 この問題 (通称[[噂のid問題]])
は非常に難しい状態にあることがわかっています。
[[#comment]]
** 実装状況
- [7] [[NC]] は (少なくても 4.01 は) [CODE(HTML)[id]] 属性に対応していません。
[[#comment]]
** メモ
[[#comment]]
* id 属性 (XML 型録)
[6] [[XML]] [[型録]]の要素型
([[名前空間名]]が
[CODE(URI)[[[urn:oasis:names:tc:entity:xmlns:xml:catalog]]]]
及び
[CODE(URI)[[[urn:oasis:names:tc:entity:xmlns:tr9401:catalog]]]]
の全ての要素型) には [CODE(XML)[id]] 属性
(型 = [CODE(XML)[[[ID]]]]) が存在します。
この属性は型録的には意味が無く、単に識別のためだけにあります。
省略可能です。
[[#comment]]
* メモ
- [2] しっかし、なんで [[XML]] つくる時に [CODE[xml:id]] 属性つくんなかったんかなあ。
- [8] >>2 そのうち出来る。はず。多分。てゆかさっさと出来てくれ。
- [3] ''を使おう(1)'' : [[XPath]] の [CODE(XPath)[[id()]] 関数について。