Attr
インターフェイスは、 Element
オブジェクト内の属性を表す。通常、属性に許可される値は、文書型定義内で定義される。
Attr
オブジェクトは Node
インターフェイスを継承するが、それらが説明する要素の実際の子ノードではないので、 DOM はこれを文書ツリーの一部とはみなさない。したがって、 Node
のプロパティ parentNode
, previousSibling
, nextSibling
は Attr
オブジェクトについては値は null
である。 DOM は、属性は関連付けられた要素から分離された独自性を持つのではなく、要素のプロパティであるとの見方を取る; これは、与えられた型の全要素に関連付けられたデフォルトの属性のような機能の実装を、より効率的にするだろう。更に、 Attr
ノードは DocumentFragment
の直接の子にはなれない。しかし、 DocumentFragment
内部に包含された Element
ノードに関連付けられることは可能だ。つまり、利用者とDOM実装者は Attr
ノードが Node
インターフェイスを継承する他のオブジェクトとともに何かを持つが、それらは非常にはっきりしたものでもあることを知っている必要がある。
属性の実効値は、次のように決定される: この属性に明示的に値が割当てられていれば、その値が属性の実効値となる; そうでない場合、この属性についての宣言が存在し、その宣言がデフォルト値を持っていれば、そのデフォルト値が属性の実効値となる; さもなければ、属性は明示的に加えられることがない限り構造モデル内のこの要素上に存在しない。 Note that Attr
インターフェイスの nodeValue
プロパティは、属性の値の文字列版の取得に用いることもできる。
XML においては、属性の値は実体参照を含むことが可能で、 Attr
ノードの子ノードは Text
または EntityReference
ノード (それが用いられている場合; 議論については EntityReference
の説明を参照) でありうる。DOM Core は属性の型を検知しないので、全ての属性値を単純な文字列として扱う。DTDまたはスキーマが トークン化 型を持つと定義していたとしても無関係である。
name
DOMString
型, 読取専用
ownerElement
Element
型, 読取専用
specified
boolean
型, 読取専用
true
; そうでない場合は false
。このプロパティを担当しているのは実装であり使用者ではないことに注意。使用者がこの属性の値を変更するならば (デフォルト値と同じ値をもって終了したとしても) specified
フラグは自動的に true
に変わる。DTDのデフォルト値に再指定するには、使用者はこの属性を削除しなければならない。すると実装は specified
が false
で(存在する場合は)デフォルト値を持つ新たな属性を作成するだろう。specified
は true
であり、値は割り振られた値である。specified
は false
であり、値はそのDTDのデフォルト値である。ownerElement
プロパティが null
(即ち生成されただけの状態か除去・複製の各種操作により null
が設定された状態) であれば、 specified
は true
である。value
Element
インターフェイスの getAttribute
メソッドも参照。Text
ノードを生成する。即ち、XMLプロセッサにマークアップと認識されるような文字も文字通りのテキストとして扱われる。 Element
インターフェイスの setAttribute
メソッドも参照。interface Attr : Node { readonly attribute DOMString name; readonly attribute boolean specified; attribute DOMString value; // raises(DOMException) on setting // Introduced in DOM Level 2: readonly attribute Element ownerElement; };