Node を継承します。Attr インターフェースは、Element オブジェクトの属性を表します。概してこれらの属性に有効な値は DTD (文書型定義) に定義されています。
Attr オブジェクトは Node インターフェースを継承しますが、オブジェクト内で記述されている要素の実際の子ノードではないため、DOM は Attr オブジェクトを文書ツリーとしては認識しません。このため Node 属性、parentNode、previousSibling、nextSibling は Attr オブジェクトに対して Null 値を持ちます。
DOM は、属性を要素のプロパティとして認識し、関連する要素とは異なる情報を持つものとしては認識しません。そのため、特定の種類の要素すべてに関連するデフォルト属性などの機能を実装する場合、効率的に実装することができます。
さらに Attr ノードは DocumentFragment の直属の子ノードではない可能性があります。しかし DocumentFragment に含まれる Element ノードと関連を持つことができます。DOM のユーザーや実装を行うユーザーは、Attr ノードには Node インターフェースを継承しているほかのオブジェクトと共通点があっても、それらは別々のものであると認識する必要があります。
属性の有効な値は、次のように判断します。属性に対して明示的に値が設定されている場合は、この値が属性の有効な値になります。値が明示的に設定されていない場合は、値が宣言されているかどうかを確認します。宣言された値にデフォルト値が指定されている場合は、このデフォルト値が属性の有効な値になります。値が宣言されていない場合やデフォルト値が指定されていない場合は、属性が明示的に追加されるまで、階層モデル内の対象要素上に属性の値は設定されません。Attr インスタンスの nodeValue 属性は、属性値を文字列にしたものを取得するためにも使用できることに注意してください。
XML では、属性の値にエンティティ参照を含められます。Attr ノードの子ノードによって、エンティティ参照が展開されていない表現が利用できます。これらの子ノードは Text か EntityReference ノードです。属性のタイプは不明のためトークン化された属性値はありません。
メソッドについては、以下を参照してください。
この属性の名前を返します。
構文:
public java.lang.String getName()
この属性に元の文書で明示的に値が与えられた場合、true になります。それ以外は false になります。このメソッドを実装するかどうかはユーザーではなく属性によります。ユーザーが属性値を変更すると (デフォルト値と同じ値だったとしても) 指定されたフラグは自動的に true に変更されます。属性を DTD からのデフォルト値として指定し直すには、ユーザーは属性を削除しなければなりません。false に設定され、(デフォルト値があれば) デフォルト値のある新しい属性が、実装によって使用可能になります。
つまり、文書内で属性に割り当てられた値がある場合、getSpecified は true になり、値は割り当てられた値になります。文書内で属性に割り当てられた値がなく、DTD にデフォルト値がある場合、getSpecified は false になります。値は DTD のデフォルト値になります。文書内で属性に割り当てられた値がなく、DTD に #IMPLIED の値が定義されていると、属性は文書の構造モデルには表れません。
構文:
public boolean getSpecified()
取得時に、属性の値が文字列として返されます。文字と一般的なエンティティ参照は、それらの値で置き換えられます。設定では getValue は文字列の未解析の内容と共に Text ノードを生成します。
構文:
public java.lang.String getValue()
構文:
public void setValue(java.lang.String value)