Common DOM API

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

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

public interface Attr
extends Node

Attr インタフェースは Element オブジェクトの属性を表します。通常、属性として使用できる値は、ドキュメント型定義(DTD)内に定義されます。

Attr オブジェクトは Node インタフェースを継承します。ただし、これらは記述する要素の実際の子ノードではないので、DOM はこれらをドキュメントツリーの一部と見なしません。このため、Node 属性の parentNodepreviousSiblingnextSibling は、Attr オブジェクトに対して値 null を持ちます。DOM は、属性が関連付けられた要素から独立した識別情報を持つものではなく、要素のプロパティであると見なします。このことにより、特定タイプのすべての要素に関連付けられたデフォルトの属性などの機能をより効率的に実装できるようになります。その上、Attr ノードは DocumentFragment の直下の子にはなりません。ただし、これらは DocumentFragment に含まれる Element ノードに関連付けることができます。要約すると、DOM のユーザと実装者は Attr ノードが Node インタフェースを継承する別のオブジェクトと共通性があることを意識する必要があります。ただし、これらはまったく別個のものであることも注意する必要があります。

属性の有効な値は次のように決まります。属性に何らかの値が明示的に割り当てられている場合、その値がこの属性の有効な値です。そうでない場合は、属性に対する宣言があり、その宣言にデフォルトの値がある場合は、そのデフォルトの値が属性の有効な値です。もしそうでなければ、明示的に追加されるまで、属性はその構造モデルの要素には存在しないことになります。Attr インスタンスの nodeValue 属性は、属性の値の文字列版を取得するためにも使用できることに注意してください。

XML では、属性の値が実体参照を持つことができる場合、Attr ノードの子ノードはText または EntityReference ノードのいずれかになります (これらが使用される場合の詳細については、EntityReference の説明を参照)。DOM コアは属性の型を意識しないので、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()
          この属性が使われていない場合は null を返し、そうでない場合はこの属性が含まれている Element ノードを返します。
 boolean getSpecified()
          元のドキュメント内でこの属性に値が明示的に指定された場合は true、そうでない場合は false になります。
 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 のデフォルト値を指定し直すには、ユーザがドキュメントから属性を削除する必要があります。すると、実装は新しい属性を作成し、その specifiedfalse を設定し、デフォルト値が存在する場合はそれを属性値として設定します。
要約すると、ドキュメント内で属性値が指定された場合、specifiedtrue になり、指定された値が属性値になります。ドキュメント内で属性値が指定されず、DTD にデフォルト値が指定された場合、specifiedfalse になり、DTD のデフォルト値が属性値になります。ドキュメント内で属性値が指定されず、DTD に #IMPLIED が指定された場合、この属性はドキュメントの構造モデル内に出現しません。なお、作成直後であったり削除や複製処理などの設定により ownerElement 属性が 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()
この属性が使われていない場合は null を返し、そうでない場合はこの属性が含まれている Element ノードを返します。

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

Common DOM API

バグや機能要求の報告
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.