JavaTM 2
Platform
Std. Ed. v1.4.0

org.w3c.dom
インタフェース Attr

すべてのスーパーインタフェース:
Node

public interface Attr
extends Node

Attr インタフェースは、Element オブジェクトの属性の 1 つです。通常、属性の許容値は文書タイプ定義に定義されています。

Attr オブジェクトは Node インタフェースを継承していますが、自身が記述する要素の子ノードにはなっていません。このため、DOM では、文書ツリーの一部とは見なされません。Node 属性である parentNodepreviousSiblingnextSiblingAttr オブジェクトの値は null になります。DOM では、属性は、それらが関連付けられている要素から独立した存在ではなく、こうした要素のプロパティであると見なされます。このような観点から、属性の機能は、所定の型を持つすべての要素に関連付けられたデフォルト属性として、いっそう効率的に実装されることになります。また、Attr ノードは DocumentFragment の直接の子ノードにはならないものの、DocumentFragment 内の Element ノードに関連付けることが可能です。ユーザと DOM の実装者は、Attr ノードが Node インタフェースを継承するその他のオブジェクトと共通点を持っているだけであって、それらとはまったく別物であることに注意する必要があります。

以下では、属性の実効値の特定方法について説明します。属性に何らかの値が明示的に割り当てられていれば、その値が属性の実効値になります。属性の宣言が存在し、そこにデフォルト値が含まれていれば、そのデフォルト値が属性の実効値になります。それ以外の場合、構造モデルにおける現在の要素には属性が存在しません (明示的に追加する必要あり)。Attr インスタンス上の nodeValue 属性を使って、属性の値に相当する文字列を取得することもできます。

XML では、属性値にエンティティ参照が含まれている場合があります。このため、Attr ノードの子ノードは、Text ノードか EntityReference ノードになります (これらを使用する際は EntityReference の記述を参照して十分に審議のこと)。DOM Core は属性の型を認識せず、すべての属性値を単純な文字列として取り扱います。これは、属性が DTD やスキーマによって「トークン化型」として宣言されている場合も変わりません。

「Document Object Model (DOM) Level 2 Core Specification」を参照してください。


フィールドの概要
 
インタフェース org.w3c.dom.Node から継承したフィールド
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
メソッドの概要
 String getName()
          この属性の名前を返します。
 Element getOwnerElement()
          この属性の接続先である Element ノード。
 boolean getSpecified()
          この属性に対して、元の文書内で明示的に値が割り当てられていれば true です。
 String getValue()
          取得時、属性値は文字列として返されます。
 void setValue(String value)
          取得時、属性値は文字列として返されます。
 
インタフェース org.w3c.dom.Node から継承したメソッド
appendChild, cloneNode, getAttributes, getChildNodes, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, hasAttributes, hasChildNodes, insertBefore, isSupported, normalize, removeChild, replaceChild, setNodeValue, setPrefix
 

メソッドの詳細

getName

public String getName()
この属性の名前を返します。


getSpecified

public boolean getSpecified()
この属性に対して、元の文書内で明示的に値が割り当てられていれば true です。それ以外の場合は false になります。この属性がユーザではなく実装に依存するという点に注意してください。ユーザが属性値を変更すると、変更後の値が最終的にデフォルト値と同じになったとしても、specified フラグは自動的に true を示します。属性を DTD のデフォルト値として指定しなおすには、いったん変更した属性値を削除しなければなりません。その後、実装によって新しい属性値が提供されます。この属性値は、デフォルト値が存在する場合はその値を備えており、その specified フラグは false を示しています。
まとめ: 文書内で属性に値が割り当てられている場合、specifiedtrue となり、割り当てられている値が属性値になります。文書内では値が割り当てられていないが、DTD 内にデフォルト値が存在する場合、specifiedfalse となり、そのデフォルト値が属性値になります。文書内で値が割り当てられておらず、DTD 内の値が #IMPLIED の場合、その属性は文書の構造モデル内に存在しません。ownerElement 属性が null の場合 (この属性が作成された直後は null、さまざまな削除および複製操作によって null に設定される場合もある)、specifiedtrue になります。


getValue

public String getValue()
取得時、属性値は文字列として返されます。文字および一般的なエンティティ参照はこれらの値で置き換えられます。Element インタフェースの getAttribute メソッドを参照してください。
設定時、未解析の文字列コンテンツを持つ Text ノードを作成します。XML プロセッサによってマークアップとして認識されるすべての文字は、リテラルテキストとして取り扱われます。Element インタフェースの setAttribute メソッドを参照してください。

例外:
DOMException - NO_MODIFICATION_ALLOWED_ERR: ノードが読み取り専用の場合

setValue

public void setValue(String value)
              throws DOMException
取得時、属性値は文字列として返されます。文字および一般的なエンティティ参照はこれらの値で置き換えられます。Element インタフェースの getAttribute メソッドを参照してください。
設定時、未解析の文字列コンテンツを持つ Text ノードを作成します。XML プロセッサによってマークアップとして認識されるすべての文字は、リテラルテキストとして取り扱われます。Element インタフェースの setAttribute メソッドを参照してください。

例外:
DOMException - NO_MODIFICATION_ALLOWED_ERR: ノードが読み取り専用の場合

getOwnerElement

public Element getOwnerElement()
この属性の接続先である Element ノード。この属性が使用されていない場合は null

導入されたバージョン:
DOM Level 2

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.