[1] [[DOM水準3]] の[[メソッド]] [CODE(DOMm)[[[setIdAttributeNS]]]] などによって[[識別子]]であるとされた[[属性節点]]を[DFN[[RUBYB[利用者決定 ID 属性][user‐determined ID attribute]]]]と言います。 [2] 仕様書: - [[DOM水準3]] -- [CODE(DOMa)[[[isId]]]] 属性 -- [CODE(DOMm)[[[setIdAttribute]]]] メソッド -- [CODE(DOMm)[[[setIdAttributeNS]]]] メソッド -- [CODE(DOMm)[[[setIdAttributeNode]]]] メソッド [3] '''利用者決定 ID 属性に指定・解除''': ある[[要素]]の識別子としてその要素のある[[属性]]を使うことを指示するためには、 その要素に対して [CODE(DOMm)[[[setIdAttribute]]]] 系の3つのメソッドのいずれかにその属性の名前またはその[[属性節点]]を渡します。 各メソッドの [CODE(DOMp)[isId]] 引数に [CODE(DOM)[[[true]]]] を指定すれば利用者決定 ID 属性に指定され、 [CODE(DOM)[[[false]]]] を指定すれば指定が解除されます。 [4] '''利用者決定 ID 属性か否か判定''': ある[[属性]]がその所属する[[要素]]の[[識別子]]として使われるか否かは、 その属性の [CODE(DOMa)[[[isId]]]] 属性により判断できます。 但し、[[利用者決定ID]] 属性であるのか [[DTD決定ID]] 属性等であるのかの区別はできません。 [CODE(DOMm)[setIdAttribute]] 系メソッドで一旦指定を解除して [CODE(DOMa)[isId]] でなくなるかを見れば利用者決定 ID 属性''以外''であるかどうかは分かりますが、 利用者決定 ID 属性かどうかはわかりません。 [CODE(DOMa)[[[schemaTypeInfo]]]] 属性を辿って調べれば (面倒)、 [[DTD決定ID]] や [[schema決定ID]] かどうかは分かりますが、 利用者決定 ID 属性か外部決定 ID 属性かはわかりません。 2つの方法を組み合わせれば、一応利用者決定 ID 属性かどうか判断することはできなくはありません。 [[#comment]] * 他との関係 [5] [[DOM]] の利用者決定 ID 属性は、[[外部決定ID]] 属性と共に [[XPointer]] 的には[[外部決定ID]] として扱われます。 [6] [[DOM水準3]]では [CODE(DOMm)[[[getElementById]]]] は [CODE(DOMa)[[[isId]]]] 属性を使います。従って、 利用者決定 ID 属性も [CODE(DOMm)[getElementById]] の判断材料になります。 [[#comment]] * メモ