利用者決定ID

利用者決定ID

[1] DOM水準3メソッド setIdAttributeNS などによって識別子であるとされた属性節点利用者決定 ID 属性 (user‐determined ID attribute) と言います。

[2] 仕様書:

[3] 利用者決定 ID 属性に指定・解除: ある要素の識別子としてその要素のある属性を使うことを指示するためには、 その要素に対して setIdAttribute 系の3つのメソッドのいずれかにその属性の名前またはその属性節点を渡します。

各メソッドの isId 引数に true を指定すれば利用者決定 ID 属性に指定され、 false を指定すれば指定が解除されます。

[4] 利用者決定 ID 属性か否か判定: ある属性がその所属する要素識別子として使われるか否かは、 その属性の isId 属性により判断できます。 但し、利用者決定ID 属性であるのか DTD決定ID 属性等であるのかの区別はできません。

setIdAttribute 系メソッドで一旦指定を解除して isId でなくなるかを見れば利用者決定 ID 属性以外であるかどうかは分かりますが、 利用者決定 ID 属性かどうかはわかりません。

schemaTypeInfo 属性を辿って調べれば (面倒)、 DTD決定IDschema決定ID かどうかは分かりますが、 利用者決定 ID 属性か外部決定 ID 属性かはわかりません。

2つの方法を組み合わせれば、一応利用者決定 ID 属性かどうか判断することはできなくはありません。

他との関係

[5] DOM の利用者決定 ID 属性は、外部決定ID 属性と共に XPointer 的には外部決定ID として扱われます。

[6] DOM水準3では getElementByIdisId 属性を使います。従って、 利用者決定 ID 属性も getElementById の判断材料になります。

メモ