共通 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 3 Core Specification」も参照してください。


フィールドの概要
 
インタフェース org.w3c.dom.Node から継承されたフィールド
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
メソッドの概要
 Node adoptNode(Node source)
          このドキュメントに別のドキュメントのノードを採用します。
 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()
          これはドキュメントのドキュメント要素である子ノードに直接アクセスできるようにする便利な属性です。
 String getDocumentURI()
          ドキュメントの場所。
 DOMConfiguration getDomConfig()
          Document.normalizeDocument() が呼び出されたときに使用される構成。
 Element getElementById(String elementId)
          所定の値の ID 属性を持つ Element を返します。
 NodeList getElementsByTagName(String tagname)
          ドキュメントに含まれ、指定されたタグ名を持つすべての ElementsNodeList をドキュメント順に返します。
 NodeList getElementsByTagNameNS(String namespaceURI, String localName)
          指定されたローカル名と名前空間 URI を持つすべての ElementsNodeList をドキュメント順に返します。
 DOMImplementation getImplementation()
          このドキュメントを処理する DOMImplementation オブジェクト。
 String getInputEncoding()
          解析時にこのドキュメントに使用されるエンコーディングを指定する属性。
 boolean getStrictErrorChecking()
          エラーチェックが強制的に実行されるかどうかを指定している属性。
 String getXmlEncoding()
          XML 宣言 の一部としてこのドキュメントのエンコーディングを指定している属性。
 boolean getXmlStandalone()
          XML 宣言 の一部としてこのドキュメントがスタンドアロンかどうかを指定している属性。
 String getXmlVersion()
          XML 宣言 の一部として、このドキュメントのバージョン番号を指定している属性。
 Node importNode(Node importedNode, boolean deep)
          インポート元のドキュメントのソースノードを変更または削除することなく、別のドキュメント内のノードをこのドキュメントにインポートします。
 void normalizeDocument()
          このメソッドは、ドキュメントが保存とロードのサイクルを経たかのように機能し、ドキュメントを通常の形式にします。
 Node renameNode(Node n, String namespaceURI, String qualifiedName)
          ELEMENT_NODE 型または ATTRIBUTE_NODE 型の既存のノードの名前を変更します。
 void setDocumentURI(String documentURI)
          ドキュメントの場所。
 void setStrictErrorChecking(boolean strictErrorChecking)
          エラーチェックが強制的に実行されるかどうかを指定している属性。
 void setXmlStandalone(boolean xmlStandalone)
          XML 宣言 の一部としてこのドキュメントがスタンドアロンかどうかを指定している属性。
 void setXmlVersion(String xmlVersion)
          XML 宣言 の一部として、このドキュメントのバージョン番号を指定している属性。
 
インタフェース org.w3c.dom.Node から継承されたメソッド
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
 

メソッドの詳細

getDoctype

DocumentType getDoctype()
このドキュメントに関連付けられた Document Type Declaration (DocumentType を参照)。ドキュメントの種類の宣言をしない XML ドキュメントの場合、null を返します。HTML ドキュメントの場合、HTML ドキュメントにドキュメントの種類の宣言があるかどうかにかかわらず、DocumentType オブジェクトが返されます。
このオブジェクトは、この Document の子ノードである DocumentType ノードへの直接のアクセスを提供します。このノードはドキュメントの作成時に設定して、Node.insertBefore または Node.replaceChild などの子ノードを操作するメソッドを使用してあとで変更できます。ただし、一部の実装では、作成時に指定された DocumentType に基づいて「HTML」 [DOM Level 2 HTML] などの「Core」ではなく追加の機能をサポートする別の種類の Document オブジェクトをインスタンス化できますが、あとで変更してもサポートされている機能が変わることはほとんどありません。


getImplementation

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


getDocumentElement

Element getDocumentElement()
これはドキュメントのドキュメント要素である子ノードに直接アクセスできるようにする便利な属性です。


createElement

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

パラメータ:
tagName - インスタンスを生成する要素型の名前。XML の場合、この名前は大文字と小文字の区別をする。そうでない場合、使用しているマークアップ言語の大文字と小文字の区別に依存する。この場合、名前は DOM 実装によりマークアップの標準形式にマップされる
戻り値:
新しい Element オブジェクト。このオブジェクトの nodeName 属性には tagName が設定され、localNameprefix、および namespaceURI には null が設定される
例外:
DOMException - INVALID_CHARACTER_ERR: 指定された名前が、Document.xmlVersion 属性で指定された使用中の XML バージョンに従う XML 名と異なる場合に発生する

createDocumentFragment

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

戻り値:
新しい DocumentFragment

createTextNode

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

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

createComment

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

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

createCDATASection

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

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

createProcessingInstruction

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

パラメータ:
target - 処理命令のターゲット部分。Document.createElementNSDocument.createAttributeNS とは異なり、ターゲット名で名前空間の整形式チェックは行われない。ターゲット名の名前空間整形式を確保するには、アプリケーションは namespaces パラメータを true に設定した Document.normalizeDocument() を呼び出す必要がある
data - このノードに格納するデータ
戻り値:
新しい ProcessingInstruction オブジェクト
例外:
DOMException - INVALID_CHARACTER_ERR: 指定されたターゲットが、Document.xmlVersion 属性で指定された使用中の XML バージョンに従う XML 名ではない場合に発生する
NOT_SUPPORTED_ERR: このドキュメントが HTML ドキュメントの場合に発生する

createAttribute

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

パラメータ:
name - この属性の名前
戻り値:
新しい Attr オブジェクト。このオブジェクトの nodeName 属性にはname が設定され、localNameprefix、および namespaceURI には null が設定される。また、値は空の文字列になる
例外:
DOMException - INVALID_CHARACTER_ERR: 指定された名前が、Document.xmlVersion 属性で指定された使用中の XML バージョンに従う XML 名と異なる場合に発生する

createEntityReference

EntityReference createEntityReference(String name)
                                      throws DOMException
EntityReference オブジェクトを生成します。加えて、参照されたエンティティが既知の場合、対応する Entity ノードの子リストと同様に、EntityReference ノードの子リストが作成されます。

注: Entity ノードの子孫がバインドされていない名前空間接頭辞を持つ場合、作成された EntityReference ノードの対応する子孫もバインドされません。ノードの namespaceURInull です。DOM Level 2 および 3 は、この場合、名前空間接頭辞を解決する機構をサポートしていません。

パラメータ:
name - 参照するエンティティの名前。Document.createElementNSDocument.createAttributeNS とは異なり、エンティティ名で名前空間の整形式チェックは行われない。エンティティ名の名前空間整形式を確保するには、アプリケーションは namespaces パラメータを true に設定した Document.normalizeDocument() を呼び出す必要がある
戻り値:
新しい EntityReference オブジェクト
例外:
DOMException - INVALID_CHARACTER_ERR: 指定された名前が、Document.xmlVersion 属性で指定された使用中の XML バージョンに従う XML 名ではない場合に発生する
NOT_SUPPORTED_ERR: このドキュメントが HTML ドキュメントの場合に発生する

getElementsByTagName

NodeList getElementsByTagName(String tagname)
ドキュメントに含まれ、指定されたタグ名を持つすべての ElementsNodeList をドキュメント順に返します。

パラメータ:
tagname - 一致させるタグ名。特殊な値「*」はすべてのタグに一致する。XML の場合、tagname パラメータでは大文字と小文字が区別される。そうでない場合は、使用されるマークアップ言語の大文字と小文字の区別に依存する
戻り値:
一致するすべての Elements を含む新しい NodeList オブジェクト

importNode

Node importNode(Node importedNode,
                boolean deep)
                throws DOMException
インポート元のドキュメントのソースノードを変更または削除することなく、別のドキュメント内のノードをこのドキュメントにインポートします。このメソッドはソースノードの新しいコピーを作成します。返されたノードは親を持ちません。つまり parentNodenull が設定されます。
すべてのノードについて、ノードをインポートするとインポート先ドキュメント内にノードオブジェクトが作成されますが、それらのノードの nodeNamenodeType、および名前空間に関係する属性 (prefixlocalName、およびnamespaceURI) には、ソースノードと等しい値が設定されます。NodecloneNode 操作の場合と同じく、ソースノードは変更されません。インポートされているノードに関連するユーザデータは持ち越されません。ただし、関連するデータとともに UserDataHandlers が指定されていた場合、これらのハンドラは、このメソッドが返す前に適切なパラメータを使って呼び出されます。
nodeType の内容に応じて追加の情報がコピーされますが、XML ソースや HTML ソースのフラグメントをドキュメント間でコピーする場合は、期待される動作にできるだけ近くなるように、また XML の場合であれば、2 つのドキュメントの DTD が同じでない可能性も考慮して処理が実行されます。以下のリストで、ノードの種類ごとの特記事項について説明します。
ATTRIBUTE_NODE
生成される AttrownerElement 属性には null が設定され、specified フラグには true が設定されます。ソース Attr の子孫は再帰的にインポートされ、対応するサブツリーに再度組み立てられます。なお、deep パラメータに指定された値は、Attr ノードの場合は無視され、無条件に子もインポートされます
DOCUMENT_FRAGMENT_NODE
deep オプションを true に設定した場合、ソース DocumentFragment の子孫が再帰的にインポートされ、インポートされた DocumentFragment の下で再度組み立てられて、対応するサブツリーが形成されます。そうでない場合は、単純に空の 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 に追加する機能は、DOM の将来のリリースで考慮される可能性があります。インポート時には、publicIdsystemId の各属性がコピーされます。なお、Notation ノードが子ノードを持つことはないため、deep パラメータは無視されます。
PROCESSING_INSTRUCTION_NODE
インポートされるノードは、ソースノードのノードから target 値と data 値をコピーします。deep パラメータは子を持つことはないため、この型のノードに影響を及ぼしません。
TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
CharacterData から継承しているこれら 3 つのノードの型は、ソースノードのノードから target 値と data 値をコピーします。deep パラメータは子を持たないため、これらの型のノードに影響を及ぼしません。

パラメータ:
importedNode - インポートするノード
deep - 前述のように、true の場合は、指定されたノード配下のサブツリーを再帰的にインポートし、false の場合は、指定されたノードだけをインポートする。このパラメータは、子を持たないノード、Attr ノード、および EntityReference ノードの場合は無効になる
戻り値:
この Document にインポートされたノード
例外:
DOMException - NOT_SUPPORTED_ERR: インポートされているノードの型がサポートされていない場合に発生する
INVALID_CHARACTER_ERR: インポートされた名前の 1 つが、Document.xmlVersion 属性で指定された使用中の XML バージョンに従う XML 名ではない場合に発生する。たとえば、この例外は XML 1.1 [XML 1.1] の要素を XML 1.0 ドキュメントの中にインポートしているときに発生する可能性がある
導入されたバージョン:
DOM Level 2

createElementNS

Element createElementNS(String namespaceURI,
                        String qualifiedName)
                        throws DOMException
指定された修飾名と名前空間 URI を持つ要素を作成します。
[XML Namespaces] に従って、名前空間を設定したくない場合は、各メソッドの namespaceURI パラメータに null値を使用する必要があります。

パラメータ:
namespaceURI - 作成する要素の名前空間 URI
qualifiedName - インスタンス化する要素型の修飾名
戻り値:
次の属性を持つ新しい Element オブジェクト
attribute (属性) value (値)
Node.nodeName qualifiedName
Node.namespaceURI namespaceURI
Node.prefix qualifiedName から抽出された接頭辞。接頭辞がない場合は null
Node.localName qualifiedName から抽出されたローカル名
Element.tagName qualifiedName
例外:
DOMException - INVALID_CHARACTER_ERR: 指定された qualifiedName が、Document.xmlVersion 属性で指定された使用中の XML バージョンに従う XML 名ではない場合に発生する
NAMESPACE_ERR: qualifiedName が間違った修飾名の場合、qualifiedName が接頭辞を持つのに、namespaceURInull の場合、qualifiedName が接頭辞「xml」を持つのに、namespaceURI が「 http://www.w3.org/XML/1998/namespace」 [XML Namespaces] ではない場合、qualifiedName またはその接頭辞が「xmlns」であるのに、namespaceURI が「http://www.w3.org/2000/xmlns/」ではない場合、namespaceURI が「http://www.w3.org/2000/xmlns/」であるのに、qualifiedName ばかりでなくその接頭辞も「xmlns」でない場合に発生する
NOT_SUPPORTED_ERR: 名前空間は XML の機能であるため、このドキュメントが「XML」機能をサポートしていない場合は、無条件に発生する
導入されたバージョン:
DOM Level 2

createAttributeNS

Attr createAttributeNS(String namespaceURI,
                       String qualifiedName)
                       throws DOMException
指定された修飾名と名前空間 URI を持つ要素を作成します。
[XML Namespaces] に従って、名前空間を設定したくない場合は、各メソッドの namespaceURI パラメータに null 値を使用する必要があります。

パラメータ:
namespaceURI - 作成する属性の名前空間 URI
qualifiedName - インスタンス化する属性の修飾名
戻り値:
次の属性を持つ新しい Attr オブジェクト
attribute (属性) value (値)
Node.nodeName qualifiedName
Node.namespaceURI namespaceURI
Node.prefix qualifiedName から抽出された接頭辞。接頭辞がない場合は null
Node.localName qualifiedName から抽出されたローカル名
Attr.name qualifiedName
Node.nodeValue 空の文字列
例外:
DOMException - INVALID_CHARACTER_ERR: 指定されたqualifiedNameが、Document.xmlVersion 属性で指定された使用中の XML バージョンに従う XML 名ではない場合に発生する
NAMESPACE_ERR: qualifiedName が間違った修飾名の場合、qualifiedName が接頭辞を持つのに、namespaceURInull の場合、qualifiedName が接頭辞「xml」を持つのに、namespaceURI が「 http://www.w3.org/XML/1998/namespace」ではない場合、qualifiedName またはその接頭辞が「xmlns」であるのに、namespaceURI が「http://www.w3.org/2000/xmlns/」ではない場合、namespaceURI が「http://www.w3.org/2000/xmlns/」であるのに、qualifiedName ばかりでなくその接頭辞も「xmlns」でない場合に発生する
NOT_SUPPORTED_ERR: 名前空間は XML の機能であるため、このドキュメントが「XML」機能をサポートしていない場合は、無条件に発生する
導入されたバージョン:
DOM Level 2

getElementsByTagNameNS

NodeList getElementsByTagNameNS(String namespaceURI,
                                String localName)
指定されたローカル名と名前空間 URI を持つすべての ElementsNodeList をドキュメント順に返します。

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

getElementById

Element getElementById(String elementId)
所定の値の ID 属性を持つ Element を返します。所定の値の ID 属性を持つ要素がない場合は null を返します。所定の値の ID 属性を持つ要素が複数ある場合、返される値は未定義です。
DOM 実装は、Attr.isId 属性を使って属性が ID 型の属性であるかどうかを判定することが想定されています。

注: 「ID」または「id」という名前を持つ属性でも、そのように定義されないかぎり、ID 型の属性ではありません。

パラメータ:
elementId - 目的の要素を指定する一意の id
戻り値:
一致する要素。一致する要素がない場合は null
導入されたバージョン:
DOM Level 2

getInputEncoding

String getInputEncoding()
解析時にこのドキュメントに使用されるエンコーディングを指定する属性。Document がメモリで作成された場合など、属性が未知の場合は null です。

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

getXmlEncoding

String getXmlEncoding()
XML 宣言 の一部としてこのドキュメントのエンコーディングを指定している属性。未指定の場合、または Document がメモリで作成された場合など、属性が未知の場合は null です。

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

getXmlStandalone

boolean getXmlStandalone()
XML 宣言 の一部としてこのドキュメントがスタンドアロンかどうかを指定している属性。未指定の場合は false

注: この属性を設定すると、値の検証は行われません。値が [XML 1.0] で定義されているスタンドアロンドキュメント宣言の妥当性制約に一致するかどうかを検証するには、アプリケーションは validate パラメータを持つ Document.normalizeDocument() を使用する必要があります。

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

setXmlStandalone

void setXmlStandalone(boolean xmlStandalone)
                      throws DOMException
XML 宣言 の一部としてこのドキュメントがスタンドアロンかどうかを指定している属性。未指定の場合は false

注: この属性を設定すると、値の検証は行われません。値が [XML 1.0] で定義されているスタンドアロンドキュメント宣言の妥当性制約に一致するかどうかを検証するには、アプリケーションは validate パラメータを持つ Document.normalizeDocument() を使用する必要があります。

例外:
DOMException - NOT_SUPPORTED_ERR: このドキュメントが XML 機能をサポートしない場合に発生する
導入されたバージョン:
DOM Level 3

getXmlVersion

String getXmlVersion()
XML 宣言 の一部として、このドキュメントのバージョン番号を指定している属性。宣言がなく、このドキュメントが XML 機能をサポートする場合、値は「1.0」です。このドキュメントが XML 機能をサポートしない場合、値は常に null です。この属性を変更すると、XML 名の無効な文字をチェックするメソッドに影響を及ぼします。この Document の一部としてすでに存在する Node の無効な文字をチェックするには、アプリケーションは Document.normalizeDocument() を呼び出す必要があります。
DOM アプリケーションは、実装が [XML 1.0] をサポートするかどうかを判定するために、パラメータ値「XMLVersion」と「1.0」をそれぞれ含む DOMImplementation.hasFeature(feature, version) メソッドを使用することができます。また、パラメータ値「XMLVersion」と「1.1」をそれぞれ含む同じメソッドを使って、実装が [XML 1.1] をサポートするかどうかを判定することもできます。どちらの場合も、XML をサポートするには、実装はこの仕様で定義されている XML 機能もサポートしていなければなりません。XMLVersion のバージョンの機能をサポートしている Document オブジェクトは、Document.xmlVersion を使用しているときに、同じバージョン番号に対して NOT_SUPPORTED_ERR 例外を発生することはありません。

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

setXmlVersion

void setXmlVersion(String xmlVersion)
                   throws DOMException
XML 宣言 の一部として、このドキュメントのバージョン番号を指定している属性。宣言がなく、このドキュメントが XML 機能をサポートする場合、値は「1.0」です。このドキュメントが XML 機能をサポートしない場合、値は常に null です。この属性を変更すると、XML 名の無効な文字をチェックするメソッドに影響を及ぼします。この Document の一部としてすでに存在する Node の無効な文字をチェックするには、アプリケーションは Document.normalizeDocument() を呼び出す必要があります。
DOM アプリケーションは、実装が [XML 1.0] をサポートするかどうかを判定するために、パラメータ値「XMLVersion」と「1.0」をそれぞれ含む DOMImplementation.hasFeature(feature, version) メソッドを使用することができます。また、パラメータ値「XMLVersion」と「1.1」をそれぞれ含む同じメソッドを使って、実装が [XML 1.1] をサポートするかどうかを判定することもできます。どちらの場合も、XML をサポートするには、実装はこの仕様で定義されている XML 機能もサポートしていなければなりません。XMLVersion のバージョンの機能をサポートしている Document オブジェクトは、Document.xmlVersion を使用しているときに、同じバージョン番号に対して NOT_SUPPORTED_ERR 例外を発生することはありません。

例外:
DOMException - NOT_SUPPORTED_ERR: この Document がサポートしていない値にバージョンが設定されている場合、またはこのドキュメントが XML 機能をサポートしない場合に発生する
導入されたバージョン:
DOM Level 3

getStrictErrorChecking

boolean getStrictErrorChecking()
エラーチェックが強制的に実行されるかどうかを指定している属性。false に設定した場合、実装では、DOM の操作で通常定義されているすべてのエラーケースをテストしない、DOM 操作で DOMException を発生しない、または Document.normalizeDocument() を使用中にエラーを報告しないなどを自由に設定できます。エラーの場合、動作は未定義です。この属性は、デフォルトで true に設定されています。

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

setStrictErrorChecking

void setStrictErrorChecking(boolean strictErrorChecking)
エラーチェックが強制的に実行されるかどうかを指定している属性。false に設定した場合、実装では、DOM の操作で通常定義されているすべてのエラーケースをテストしない、DOM 操作で DOMException を発生しない、または Document.normalizeDocument() を使用中にエラーを報告しないなどを自由に設定できます。エラーの場合、動作は未定義です。この属性は、デフォルトで true に設定されています。

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

getDocumentURI

String getDocumentURI()
ドキュメントの場所。未定義の場合または DocumentDOMImplementation.createDocument を使って作成された場合は null。この属性を設定すると、字句チェックは行われません。これにより、Node.baseURI を使用中に null が返される可能性があります。
Document が HTML [DOM Level 2 HTML] 機能をサポートする場合、Node.baseURI の計算時に HTML BASE 要素の href 属性はこの属性よりも優先されます。

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

setDocumentURI

void setDocumentURI(String documentURI)
ドキュメントの場所。未定義の場合または DocumentDOMImplementation.createDocument を使って作成された場合は null。この属性を設定すると、字句チェックは行われません。これにより、Node.baseURI を使用中に null が返される可能性があります。
Document が HTML [DOM Level 2 HTML] 機能をサポートする場合、Node.baseURI の計算時に HTML BASE 要素の href 属性はこの属性よりも優先されます。

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

adoptNode

Node adoptNode(Node source)
               throws DOMException
このドキュメントに別のドキュメントのノードを採用します。サポートされている場合、メソッドはソースノード、その子、および接続された属性ノード (存在する場合) の ownerDocument を変更します。ソースノードが親を持つ場合、そのノードは親の子リストから最初に削除されます。移動するのではなくソースノードのコピーを作成する importNode() とは異なり、この方法ではあるドキュメントから別のドキュメントにサブツリーを効率的に移動できます。この操作に失敗した場合、アプリケーションは代わりに Document.importNode() を使用する必要があります。採用されたノードがすでにこのドキュメントの一部である場合、つまりソースドキュメントとターゲットドキュメントが同じ場合、このメソッドは、ソースノードの親の子リストからソースノードを削除する機能を引き続き発揮します。次のリストでは、各ノード型の特記事項を述べます。
ATTRIBUTE_NODE
採用された Attr では、ownerElement 属性は null に設定され、specified フラグは true に設定されます。ソース Attr の子孫が再帰的に採用されます。
DOCUMENT_FRAGMENT_NODE
ソースノードの子孫が再帰的に採用されます。
DOCUMENT_NODE
Document ノードは採用できません。
DOCUMENT_TYPE_NODE
DocumentType ノードは採用できません。
ELEMENT_NODE
ソース要素の指定された属性ノードが採用されます。デフォルトの属性は破棄されます。しかし、採用先のドキュメントでこの要素名のデフォルトの属性が定義されている場合、それらの属性が設定されます。ソース要素の子孫が再帰的に採用されます。
ENTITY_NODE
Entity ノードは採用できません。
ENTITY_REFERENCE_NODE
EntityReference ノード自身だけが採用されます。子孫は破棄されます。これは、ソースドキュメントとターゲットドキュメントで、そのエンティティの定義内容が異なる可能性があるためです。インポート先のドキュメントでエンティティ名が定義されている場合、その値が設定されます。
NOTATION_NODE
Notation ノードは採用できません。
PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
これらのノードはすべて採用されます。特記事項はありません。

注: Document.importNode() メソッドとは異なり、このメソッドは新規ノードを生成しないので、INVALID_CHARACTER_ERR を発生しません。インポートされた名前が、使用しているXML バージョンに従っている XML 名であるかどうかをチェックするには、アプリケーションは Document.normalizeDocument()メソッドを使用する必要があります。

パラメータ:
source - このドキュメントにインポートするノード
戻り値:
採用されたノード、ソースノードが異なる実装からインポートされた場合など、この操作が失敗する場合は null
例外:
DOMException - NOT_SUPPORTED_ERR: ソースノードが DOCUMENTDOCUMENT_TYPE 型のノードの場合に発生する
NO_MODIFICATION_ALLOWED_ERR: ソースノードが読み取り専用の場合に発生する
導入されたバージョン:
DOM Level 3

getDomConfig

DOMConfiguration getDomConfig()
Document.normalizeDocument() が呼び出されたときに使用される構成。

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

normalizeDocument

void normalizeDocument()
このメソッドは、ドキュメントが保存とロードのサイクルを経たかのように機能し、ドキュメントを通常の形式にします。その結果として、このメソッドは Node.normalize() メソッドで定義されているように EntityReference ノードの置換ツリーを更新し、Text ノードを更新します。
そうでない場合、実際の結果は Document.domConfig オブジェクトで設定されている機能および実際に行われる操作を制御している機能に応じて異なります。特に注意する必要があるのは、このメソッドが説明されているアルゴリズムに従って整形式のドキュメント名前空間も作成できる可能性があることです。詳細は、DOMConfiguration を参照してください。
// Keep in the document 
 the information defined // in the XML Information Set (Java example) 
 DOMConfiguration docConfig = myDocument.getDomConfig(); 
 docConfig.setParameter("infoset", Boolean.TRUE); 
 myDocument.normalizeDocument();

変異イベントが生成され、ドキュメントで発生した変更内容を反映します (サポートされている場合)。
読み取り専用のノードを更新しようとしたり、使用中の XML バージョンに対して無効な文字を Node.nodeName が含むなど、このメソッドの呼び出し中にエラーが発生した場合、error-handler パラメータに関連付けられたDOMErrorHandlerオブジェクトを使って、エラーまたは警告 (DOMError.SEVERITY_ERROR または DOMError.SEVERITY_WARNING) が報告されます。実装がエラーから回復できない場合、このメソッドは致命的エラー (DOMError.SEVERITY_FATAL_ERROR) を報告する場合もあります。

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

renameNode

Node renameNode(Node n,
                String namespaceURI,
                String qualifiedName)
                throws DOMException
ELEMENT_NODE 型または ATTRIBUTE_NODE 型の既存のノードの名前を変更します。
可能な場合、このメソッドは指定されたノードの名前を単に変更します。変更しない場合、このメソッドは指定された名前の新規ノードを作成し、次で説明しているように既存のノードを新規ノードに置換します。
指定されたノードの名前を単に変更することができない場合、次の操作が行われます。新規ノードが生成されます。登録済みのイベントリスナーが新規ノードに登録されます。古いノードに接続されていたユーザデータは、ノードから削除されます。古いノードは親を持つ場合その親から削除されます。ノードの子は新規ノードに移動されます。名前を変更されたノードが Element の場合、ノードの属性は新規ノードに移動されます。新規ノードは、親を持つ場合、親の子ノードリストで古いノードが占めていた位置に挿入されます。古いノードに接続されていたユーザデータは新しいノードに接続されます。
名前を変更されているノードが Element の場合、指定された属性だけが移動され、DTD から発生したデフォルトの属性は、新規要素名に従って更新されます。また、実装はほかのスキーマからデフォルト属性を更新できます。アプリケーションは、Document.normalizeDocument() を使って、これらの属性が最新のものであることを保証する必要があります。
名前を変更されているノードがElementに接続された Attr である場合、このノードはまず Element 属性マップから削除されます。次に、前述のように既存のノードを変更したり、新規ノードを作成したりして、名前を変更すると、ノードを元に戻します。
さらに、次の操作が行われます。

パラメータ:
n - 名前を変更するノード
namespaceURI - 新規名前空間 URI
qualifiedName - 新規修飾名
戻り値:
名前を変更されたノード。このノードは指定されたノードまたは指定されたノードを置き換えるために作成されたノードである
例外:
DOMException - NOT_SUPPORTED_ERR: 指定されたノードの型が ELEMENT_NODE ではなく、ATTRIBUTE_NODE でもない場合、または実装がドキュメント要素の名前の変更をサポートしていない場合に発生する
INVALID_CHARACTER_ERR: 新規修飾名が Document.xmlVersion 属性で指定された使用中の XNL バージョンに従う XML 名ではない場合に発生する
WRONG_DOCUMENT_ERR: 指定されたノードがこのドキュメントとは異なるドキュメントから生成された場合に発生する
NAMESPACE_ERR: qualifiedName が間違った修飾名の場合、qualifiedName が接頭辞を持つのに、namespaceURInull の場合、または qualifiedName が接頭辞「xmlns」を持つのに、namespaceURI が 「 http://www.w3.org/XML/1998/namespace」[XML Namespaces] とは異なる場合に発生する。また、名前を変更しているノードが属性のときに、qualifiedNameまたはその接頭辞が「xmlns」であるのに、namespaceURI が「http://www.w3.org/2000/xmlns/」とは異なる場合にも発生する
導入されたバージョン:
DOM Level 3

共通 DOM API

バグや機能要求の報告
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 2004 Sun Microsystems, Inc. 4150 Network Circle
Santa Clara, California, 95054, U.S.A. All Rights Reserved.