[7] '''SGML''': [[SGML]] の [CODE(SGML)[[[ID]]]] 型の[[属性]]の値は文書内で固有でなければなりません。 この制約が満たされない SGML 文書は、[[型妥当]]ではありません [WEAK[([[適合SGML文書]]ではありません)]]。 仕様書: - [[JIS X 4151]]‐1992 -- 3. (104) 識別子値 [5] '''XML''': [[XML]] の [CODE(XML)[[[ID]]]] 型の[[属性]]の値は文書内で固有でなければ'''なりません''' ([[妥当性制約]])。 この制約が満たされない XML 文書は、 [[整形式]]かもしれませんが[[妥当]]ではありません。 仕様書: - [[XML 1.0]], [[XML 1.1]] -- [CSECTION[Validity constraint: ID]] [8] '''HTML''': [[HTML]] の [CODE(HTMLa)[[[id]]]] 属性と [CODE(HTMLa)[[[name]]]] 属性による[[識別子]]は、 同じ名前空間を共有し、文書内で固有でなければなりません。 重複は違法です。 仕様書: - [[HTML 4]] -- [CSECTION[7.5.2 Element identifiers: the [CODE(HTMLa)[id]] and [CODE(HTMLa)[class]] attributes]] -- [CITE[Links in HTML documents]] [6] '''XML 情報集合''': [[XML情報集合]]の[CODE(Infoitem)[[[属性情報項目]]]]の[CODE(infoprop)[[[参照]]]]特性は、 [CODE(Infoprop)[[[属性型]]]]が [CODE(XML)[[[IDREF]]]] や [CODE(XML)[[[IDREFS]]]] であっても同じ[[識別子]]の複数の[[要素]]があれば、 値を持ちません。 仕様書: - [[XML情報集合]] -- [CSECTION[2.3. Attribute Information Items]] [1] '''DOM''': [[DOM]] の [CODE(DOMm)[[[getElementById]]]] は、同じ[[識別子]]の複数の[[要素]]がある時の結果は未定義です。 仕様書: - [[DOM水準1]] -- HTML [CODE(DOMm)[[[getElementById]]]] メソッド - [[DOM水準2]] -- 中核 [CODE(DOMm)[[[getElementById]]]] メソッド - [[DOM水準3]] -- 中核 [CODE(DOMm)[[[getElementById]]]] メソッド [3] '''XPath 1.0''': [[XPath 1.0]] のデータ模型では、 重複する固有識別子は[[文書順]]で後の方を無視することになっています。 [[関数]] [CODE(XPathf)[[[id]]()]] はその固有識別子に基づき判断します。 仕様書: - [[XPath 1.0]] -- 関数 [CODE(XPathf)[[[id]]()]] -- [CSECTION[5.2.1 Unique IDs]] -- [CSECTION[B.2. Element Nodes]] [4] [[DOM水準3]] [[XPath]] では、 [[XPath 1.0]] の[[関数]]である [CODE(XPathf)[[[id]]()]] と [[DOM]] の[[メソッド]]である [CODE(DOMm)[[[getElementById]]]] とで同じ結果が得られなければならないと規定しています。 仕様書: - [[DOM水準3]] -- XPath [CSECTION[1.3 Conformance]] ;; [10] [[DOM3]] では [CODE(DOMm)@en[[[getElementById]]]] の結果は未定義となっていますから、 [[XPath 1.0]] の規定通りになるとは限りません。現実には、また後の [[DOM Standard]] によれば最初の[[要素]]が返されるので、両者の返すものは一致します。 ;; [[Firefox]], [[Chrome]] とも。 [TIME[2013-10-07T09:26:49.400Z]] [2] '''XPointer''': [[XPointer]] の[[速記]]指示子では、 [[文書順]]で最初に一致したものが採用されます。 [CODE(XPointerScheme)[[[element]] ()]] scheme も同じ定義を採用しています。 仕様書: - [[XPointer]] 枠組み -- [CSECTION[3.2 Shorthand Pointer]] - [[XPointer]] [CODE(XPointerScheme)[[[element]]()]] -- [CSECTION[3 Language and Processing]] [8] '''CSS''': [[CSS]] の ID [[選択子]]は[[マーク付け言語]]における文書内の固有な識別子で使われることが想定されています。 重複に関する規定はありません。 仕様書: - [[CSS 1]] -- [CSECTION[1.5 ID as selector]] - [[CSS 2]] -- [CSECTION[5.9 ID selectors]] [9] [CITE@en[Re: Selectors API: Multiple elements with the same ID from Boris Zbarsky on 2007-01-28 (public-webapi@w3.org from January 2007)]] ([[Boris Zbarsky (bzbarsky@mit.edu)]] 著, [TIME[2007-01-28 13:54:06 +09:00]] 版) ([[名無しさん]])