Common DOM API

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

すべてのスーパーインタフェース:
Node
既知のサブインタフェースの一覧:
HTMLDocument

public interface Document
extends Node

Document インタフェースは、HTML ドキュメントまたは XML ドキュメントの全体を表します。これは、概念的にはドキュメントツリーのルートであり、ドキュメントのデータへの主要なアクセスを提供します。

要素、テキスト、コメント、処理命令などは Document のコンテキストの外部には存在できないので、Document インタフェースはこれらのオブジェクトを作成するために必要なファクトリメソッドも含みます。作成された Node オブジェクトは、作成されたコンテキスト内の Document に関連付けられた ownerDocument 属性を持ちます。

詳細については、 「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
 
メソッドの概要
 Attr createAttribute(String name)
          指定された名前を持つ Attr オブジェクトを作成します。
 Attr createAttributeNS(String namespaceURI, String qualifiedName)
          指定された修飾名と名前空間 URI を持つ属性を作成します。
 CDATASection createCDATASection(String data)
          指定された文字列を値に持つ CDATASection ノードを作成します。
 Comment createComment(String data)
          指定された文字列を含む Comment ノードを作成します。
 DocumentFragment createDocumentFragment()
          空の DocumentFragment オブジェクトを作成します。
 Element createElement(String tagName)
          指定された型の要素を作成します。
 Element createElementNS(String namespaceURI, String qualifiedName)
          指定された修飾名と名前空間 URI を持つ要素を作成します。
 EntityReference createEntityReference(String name)
          EntityReference オブジェクトを作成します。
 ProcessingInstruction createProcessingInstruction(String target, String data)
          指定された名前とデータ文字列を持つ ProcessingInstruction ノードを作成します。
 Text createTextNode(String data)
          指定された文字列を含む Text ノードを作成します。
 DocumentType getDoctype()
          このドキュメントに関連付けられた Document Type Declaration (DocumentType を参照)。
 Element getDocumentElement()
          これはドキュメントのルート要素である子ノードに直接アクセスできるようにする便利な属性です。
 Element getElementById(String elementId)
          指定されたelementIdID に持つ Element オブジェクトを返します。
 NodeList getElementsByTagName(String tagname)
          指定されたタグ名を持つすべての Elements を含む NodeList を返しますが、それらの要素は、Document ツリーのあらかじめ順序が決められたトラバーサルで得られた順番で格納されます。
 NodeList getElementsByTagNameNS(String namespaceURI, String localName)
          指定されたローカル名と名前空間 URI を持つすべての Elements を含む NodeList を返しますが、それらの要素は、Document ツリーのあらかじめ順序が決められたトラバーサルで得られた順番で格納されます。
 DOMImplementation getImplementation()
          このドキュメントを処理する DOMImplementation オブジェクト。
 Node importNode(Node importedNode, boolean deep)
          別のドキュメント内のノードをこのドキュメントにインポートします。
 
インタフェース 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
 

メソッドの詳細

getDoctype

public DocumentType getDoctype()
このドキュメントに関連付けられた Document Type Declaration (DocumentType を参照)。ドキュメントの種類の宣言をしない XML ドキュメントと同様、HTML ドキュメントの場合、これは null を返します。DOM Level 2 は Document Type Declaration の編集をサポートしていません。docType は、insertNode または removeNode など Node インタフェースから継承されたメソッドの使用を含め、どのような方法によっても変更できません。


getImplementation

public DOMImplementation getImplementation()
このドキュメントを処理する DOMImplementation オブジェクト。DOM アプリケーションは複数の実装によるオブジェクトを使用できます。


getDocumentElement

public Element getDocumentElement()
これはドキュメントのルート要素である子ノードに直接アクセスできるようにする便利な属性です。HTML ドキュメントの場合、これは tagName "HTML" を持つ要素です。


createElement

public Element createElement(String tagName)
                      throws DOMException
指定された型の要素を作成します。なお、作成されたインスタンスは Element インタフェースを実装しているため、返されるオブジェクトの属性を直接指定することができます。
さらに、デフォルト値を持つ既知の属性が存在する場合は、対応する Attr ノードが自動的に作成され、その要素に関連付けられます。
修飾名と名前空間 URI を持つ要素を作成するには、createElementNS メソッドを使います。

パラメータ:
tagName - インスタンスを生成する要素型の名前。XML の場合、これは大文字小文字の区別をする。HTML の場合、tagName パラメータは大文字小文字のどちらで指定してもかまわないが、DOM 実装はそれを、標準の大文字形式にマップする必要がある
戻り値:
新しい Element オブジェクト。このオブジェクトの nodeName 属性には tagName が設定され、localNameprefix、および namespaceURI には null が設定される
例外:
DOMException - INVALID_CHARACTER_ERR: 指定された名前に不正な文字が含まれる場合に発行される

createDocumentFragment

public DocumentFragment createDocumentFragment()
空の DocumentFragment オブジェクトを作成します。

戻り値:
新しい DocumentFragment

createTextNode

public Text createTextNode(String data)
指定された文字列を含む Text ノードを作成します。

パラメータ:
data - このノードに格納するデータ
戻り値:
新しい Text オブジェクト

createComment

public Comment createComment(String data)
指定された文字列を含む Comment ノードを作成します。

パラメータ:
data - このノードに格納するデータ
戻り値:
新しい Comment オブジェクト

createCDATASection

public CDATASection createCDATASection(String data)
                                throws DOMException
指定された文字列を値に持つ CDATASection ノードを作成します。

パラメータ:
data - CDATASection に格納するデータ
戻り値:
新しい CDATASection オブジェクト
例外:
DOMException - NOT_SUPPORTED_ERR: ドキュメントが HTML ドキュメントの場合に発行される

createProcessingInstruction

public ProcessingInstruction createProcessingInstruction(String target,
                                                         String data)
                                                  throws DOMException
指定された名前とデータ文字列を持つ ProcessingInstruction ノードを作成します。

パラメータ:
target - 処理命令のターゲット部分
data - このノードに格納するデータ
戻り値:
新しい ProcessingInstruction オブジェクト
例外:
DOMException - INVALID_CHARACTER_ERR: 指定されたターゲットに不正な文字が含まれている場合に発行される
NOT_SUPPORTED_ERR: このドキュメントが HTML ドキュメントである場合に発行される

createAttribute

public Attr createAttribute(String name)
                     throws DOMException
指定された名前を持つ Attr オブジェクトを作成します。なお、setAttributeNode メソッドを使えば、作成された Attr インスタンスを特定の Element に関連付けることも可能です。
修飾名と名前空間 URI を持つ属性を作成するには、createAttributeNS メソッドを使います。

パラメータ:
name - この属性の名前
戻り値:
新しい Attr オブジェクト。このオブジェクトの nodeName 属性にはname が設定され、localNameprefix、および namespaceURI には null が設定される。また、値は空の文字列になる
例外:
DOMException - INVALID_CHARACTER_ERR: 指定された名前に不正な文字が含まれる場合に発行される

createEntityReference

public EntityReference createEntityReference(String name)
                                      throws DOMException
EntityReference オブジェクトを作成します。さらに、参照されるエンティティがわかっている場合は、EntityReference ノードの子リストが対応する Entity ノードの子リストとまったく同じように作成されます。Entity ノードの子孫がアンバインドされた名前空間の接頭辞を持つ場合は、作成された EntityReference ノードの対応する子孫もアンバインドされます (この namespaceURInull)。DOM Level 2 は名前空間接頭辞を解決する機構をサポートしていません。

パラメータ:
name - 参照するエンティティの名前
戻り値:
新しい EntityReference オブジェクト
例外:
DOMException - INVALID_CHARACTER_ERR: 指定された名前に不正な文字が含まれている場合に発行される
NOT_SUPPORTED_ERR: このドキュメントが HTML ドキュメントである場合に発行される

getElementsByTagName

public NodeList getElementsByTagName(String tagname)
指定されたタグ名を持つすべての Elements を含む NodeList を返しますが、それらの要素は、Document ツリーのあらかじめ順序が決められたトラバーサルで得られた順番で格納されます。

パラメータ:
tagname - 一致させるタグ名。特殊な値 "*" はすべてのタグに一致する
戻り値:
一致するすべての Elements を含む新しい NodeList オブジェクト

importNode

public Node importNode(Node importedNode,
                       boolean deep)
                throws DOMException
別のドキュメント内のノードをこのドキュメントにインポートします。なお、戻り値のノードは親を持たず、parentNodenull が設定されます。このメソッドによって、元のドキュメント内のソースノードが変更されたり削除されたりすることはなく、ソースノードの新しいコピーが作成されるだけです。
すべてのノードについて、ノードをインポートするとインポート先ドキュメント内にノードオブジェクトが作成されますが、それらのノードの nodeNamenodeType、および名前空間に関係する属性 (prefixlocalName、およびnamespaceURI) には、ソースノードと等しい値が設定されます。NodecloneNode 操作の場合と同じく、ソースノードは変更されません。
その他の情報は、nodeType の内容に応じてコピーされますが、XML ソースや HTML ソースのフラグメントをドキュメント間でコピーする場合は、期待される動作にできるだけ近くなるように、属性値が選ばれます。たとえば XML の場合であれば、2 つのドキュメントの DTD が同じでない可能性も考慮して処理が実行されます。以下では、ノードの種類ごとに詳しく説明します。
ATTRIBUTE_NODE
生成される AttrownerElement 属性には null が設定され、specified フラグには true が設定されます。ソース Attr の子孫は再帰的にインポートされ、対応するサブツリーに再度組み立てられます。なお、deep パラメータに指定された値は、Attr ノードの場合は無視され、無条件に子もインポートされます
DOCUMENT_FRAGMENT_NODE
deep オプションに true が指定された場合、ソース要素の子孫が再帰的にインポートされ、対応するサブツリーに再度組み立てられます。そうでない場合は、単純に空の DocumentFragment オブジェクトが生成されます。
DOCUMENT_NODE
Document ノードはインポートできません。
DOCUMENT_TYPE_NODE
DocumentType ノードはインポートできません。
ELEMENT_NODE
ソース要素で明示的に指定された Attr ノードはインポートされ、生成された Element に関連付けられます。デフォルト属性はコピーされませんが、インポート先のドキュメントにこの要素名のデフォルト属性が定義されていた場合は、それらの属性も関連付けられます。importNodedeep パラメータに true が指定された場合、ソース要素の子孫が再帰的にインポートされ、対応するサブツリーに再度組み立てられます。
ENTITY_NODE
Entity ノードはインポート可能ですが、DOM の現在のリリースでは、この DocumentType は読み取り専用です。この DocumentType を別の DocumentType に追加する機能は、DOM の将来のリリースで考慮される可能性があります。インポート時には、publicIdsystemId、および notationName の各属性がコピーされます。deep パラメータが指定された場合は、ソース Entity の子孫が再帰的にインポートされ、対応するサブツリーに再度組み立てられます。
ENTITY_REFERENCE_NODE
deep パラメータが指定された場合でも、EntityReference 自身だけがコピーされます。というのも、ソースドキュメントとターゲットドキュメントで、そのエンティティの定義内容が異なる可能性があるからです。ただし、ターゲットドキュメントでこのエンティティが定義されている場合は、その値が設定されます。
NOTATION_NODE
Notation ノードはインポート可能ですが、DOM の現在のリリースでは、この DocumentType は読み取り専用です。この DocumentType を別の DocumentType に追加する機能は、DOM の将来のリリースで考慮される可能性があります。インポート時には、publicIdsystemId の各属性がコピーされます。なお、Notation ノードが子ノードを持つことはあり得ないため、deep パラメータは無視されます。
PROCESSING_INSTRUCTION_NODE
インポートするノードがこの種類である場合、ソースノードの target 属性と data 属性の値がコピーされます。
TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
インポートするノードが CharacterData を継承するこの 3 種類のどれかである場合、ソースノードの data 属性と length 属性がコピーされます。

パラメータ:
importedNode - インポートするノード
deep - 前述のように、true の場合、指定されたノード配下のサブツリーを再帰的にインポートし、false の場合、指定されたノードだけをインポートする。このパラメータは、ノードが AttrEntityReference、またはNotation の場合は無効になる
戻り値:
この Document にインポートされたノード
例外:
DOMException - NOT_SUPPORTED_ERR: インポートするノードの種類がサポートされていない場合に発行される
導入されたバージョン:
DOM Level 2

createElementNS

public Element createElementNS(String namespaceURI,
                               String qualifiedName)
                        throws DOMException
指定された修飾名と名前空間 URI を持つ要素を作成します。

パラメータ:
namespaceURI - 作成する要素の名前空間 URI
qualifiedName - インスタンス化する要素型の修飾名
戻り値:
新しい Element オブジェクト。各属性は以下のように設定される
属性名 属性値
Node.nodeName qualifiedName
Node.namespaceURI namespaceURI
Node.prefix qualifiedName から抽出した接頭辞。ただし、接頭辞が存在しない場合はnull
Node.localName qualifiedName から抽出したローカル名
Element.tagName qualifiedName
例外:
DOMException - INVALID_CHARACTER_ERR: 指定された修飾名に、XML 1.0 仕様に規定されていない文字が含まれていた場合に発行される
NAMESPACE_ERR: 指定された qualifiedName の形式が Namespaces in XML 仕様に準拠していない場合、qualifiedName に接頭辞が含まれているのに namespaceURInull である場合、または qualifiedName に含まれている接頭辞が「xml」であるのに namespaceURI が「http://www.w3.org/XML/1998/namespace」でない場合に発行される
NOT_SUPPORTED_ERR: 名前空間は XML の機能であるため、このドキュメントが XML 機能をサポートしていない場合は、無条件に発行される
導入されたバージョン:
DOM Level 2

createAttributeNS

public Attr createAttributeNS(String namespaceURI,
                              String qualifiedName)
                       throws DOMException
指定された修飾名と名前空間 URI を持つ属性を作成します。

パラメータ:
namespaceURI - 作成する属性の名前空間 URI
qualifiedName - インスタンス化する属性の修飾名
戻り値:
新しい Attr オブジェクト。各属性は以下のように設定される
属性名 属性値
Node.nodeName qualifiedName
Node.namespaceURI namespaceURI
Node.prefix qualifiedName から抽出した接頭辞。ただし、接頭辞が存在しない場合は null
Node.localName qualifiedName から抽出したローカル名
Attr.name qualifiedName
Node.nodeValue 空の文字列
例外:
DOMException - INVALID_CHARACTER_ERR: 指定された修飾名に、XML 1.0 仕様に規定されていない文字が含まれていた場合に発行される
NAMESPACE_ERR: 指定された qualifiedName の形式が Namespaces in XML 仕様に準拠していない場合、qualifiedName に接頭辞が含まれているのに namespaceURInull である場合、qualifiedName に含まれている接頭辞が「xml」であるのに namespaceURI が「http://www.w3.org/XML/1998/namespace」でない場合、または qualifiedName やその接頭辞が「xmlns」であるのに namespaceURI が「http://www.w3.org/2000/xmlns/」でない場合に発行される
NOT_SUPPORTED_ERR: 名前空間は XML の機能であるため、このドキュメントが XML 機能をサポートしていない場合は、無条件に発行される
導入されたバージョン:
DOM Level 2

getElementsByTagNameNS

public NodeList getElementsByTagNameNS(String namespaceURI,
                                       String localName)
指定されたローカル名と名前空間 URI を持つすべての Elements を含む NodeList を返しますが、それらの要素は、Document ツリーのあらかじめ順序が決められたトラバーサルで得られた順番で格納されます。

パラメータ:
namespaceURI - 一致させる要素の URI 名前空間。特殊な値 "*" はすべての名前空間に一致する
localName - 一致させる要素のローカル名。特殊な値 "*" は、すべてのローカル名に一致する
戻り値:
一致するすべての Elements を含む新しい NodeList オブジェクト
導入されたバージョン:
DOM Level 2

getElementById

public Element getElementById(String elementId)
指定されたelementIdID に持つ Element オブジェクトを返します。ただし、そのような要素が存在しない場合は null を返します。なお、この ID を持つ要素が複数存在する場合の動作は規定されていません。DOM 実装は、どの属性が ID 型であるのかを判断するための情報を保持している必要があります。「ID」という名前を持つ属性でも、ID 型として定義されていなければ ID 型ではありません。属性が ID 型であるかどうかを判断できない実装は、null を返すことになっています。

パラメータ:
elementId - 目的の要素を指定する一意の id
戻り値:
一致する要素
導入されたバージョン:
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.