- すべてのスーパー・インタフェース:
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()
この文書に関連付けられている文書型宣言(DocumentType
を参照)。Element
getDocumentElement()
文書の文書要素になっている子ノードへの直接アクセスを可能にする便利な属性です。String
getDocumentURI()
ドキュメントの場所。未定義の場合やDOMImplementation.createDocument
を使ってDocument
が作成された場合はnull
。DOMConfiguration
getDomConfig()
Document.normalizeDocument()
が呼び出されたときに使用される構成。Element
getElementById(String elementId)
所定の値のID属性を持つElement
を返します。NodeList
getElementsByTagName(String tagname)
文書内の、特定のタグ名を持つすべてのElements
を文書の順に格納するNodeList
を返します。NodeList
getElementsByTagNameNS(String namespaceURI, String localName)
特定のローカル名と名前空間URIを持つすべてのElements
を文書の順に格納するNodeList
を返します。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)
ドキュメントの場所。未定義の場合やDOMImplementation.createDocument
を使ってDocument
が作成された場合はnull
。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()この文書に関連付けられている文書型宣言(DocumentType
を参照)。 文書型宣言を持たないXML文書の場合はnull
を返します。 HTML文書では、文書内の文書型宣言の有無とは関係なくDocumentType
オブジェクトを返すことができます。
これにより、このDocument
の子ノードである、DocumentType
ノードに直接アクセスできます。 このノードは文書作成時に設定でき、それ以降はNode.insertBefore
、Node.replaceChild
などの子ノード操作メソッドを使用して変更できます。 ただし、一部の実装では、作成時に指定されたDocumentType
に基づいて、「HTML」の「DOM Level 2 HTML」などの「Core」以外の追加機能をサポートしているさまざまなタイプのDocument
オブジェクトをインスタンス化できますが、あとで変更してもサポートされている機能が変化することはほとんどありません。- 導入されたバージョン:
- 1.4、DOMレベル3
-
getImplementation
DOMImplementation getImplementation()この文書を処理するDOMImplementation
オブジェクト。 DOMアプリケーションは、複数の実装からのオブジェクトを使用できます。 -
getDocumentElement
Element getDocumentElement()文書の文書要素になっている子ノードへの直接アクセスを可能にする便利な属性です。 -
createElement
Element createElement(String tagName) throws DOMException指定された型の要素を作成します。 返されるインスタンスはElement
インタフェースを実装するため、属性は返されるオブジェクトに直接指定できます。
さらに、デフォルト値を持つ既知の属性が存在する場合は、これらを表すAttr
ノードが自動的に作成され、要素に付加されます。
修飾名と名前空間URIを使用して要素を作成するには、createElementNS
メソッドを使用します。- パラメータ:
tagName
- インスタンス化する要素型の名前。 XMLの場合、アルファベットの大文字と小文字が区別される。 その場合、大文字と小文字の区別は、使用しているマークアップ言語に依存し、DOM実装によってその正規マークアップにマッピングされる。- 戻り値:
nodeName
属性がtagName
に設定され、localName
、prefix
、およびnamespaceURI
がnull
に設定された新しいElement
オブジェクト。- 例外:
DOMException
- INVALID_CHARACTER_ERR: 指定された名前が、使用中のXMLバージョン(Document.xmlVersion
属性に指定されている)に定められているXML名ではない場合に発生します。
-
createDocumentFragment
DocumentFragment createDocumentFragment()空のDocumentFragment
オブジェクトを作成します。- 戻り値:
- 新しい
DocumentFragment
。
-
createTextNode
指定された文字列を持つText
ノードを作成します。- パラメータ:
data
- ノードのデータ。- 戻り値:
- 新しい
Text
オブジェクト。
-
createComment
指定された文字列を持つ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.createElementNS
やDocument.createAttributeNS
とは異なり、ターゲット名に対する名前空間整形式のチェックは実行されない。 アプリケーションは、ターゲット名の名前空間整形式を確保するために、「namespaces」パラメータをtrue
に設定してDocument.normalizeDocument()
を呼び出す必要がある。data
- ノードのデータ。- 戻り値:
- 新しい
ProcessingInstruction
オブジェクト。 - 例外:
DOMException
- INVALID_CHARACTER_ERR: 指定されたターゲットが、使用中のXMLバージョン(Document.xmlVersion
属性に指定されている)に定められているXML名ではない場合に発生します。
NOT_SUPPORTED_ERR: この文書がHTML文書の場合に発生します。
-
createAttribute
Attr createAttribute(String name) throws DOMException所定の名前のAttr
を作成します。 その後、setAttributeNode
メソッドを使用して、このAttr
インスタンスをElement
に設定できます。
修飾名と名前空間URIを使用して属性を作成するには、createAttributeNS
メソッドを使用します。- パラメータ:
name
- 属性の名前。- 戻り値:
nodeName
属性がname
に設定され、localName
、prefix
、およびnamespaceURI
がnull
に設定された新しいAttr
オブジェクト。 属性の値は空の文字列。- 例外:
DOMException
- INVALID_CHARACTER_ERR: 指定された名前が、使用中のXMLバージョン(Document.xmlVersion
属性に指定されている)に定められているXML名ではない場合に発生します。
-
createEntityReference
EntityReference createEntityReference(String name) throws DOMExceptionEntityReference
オブジェクトを作成します。 さらに、参照されるエンティティが既知の場合は、対応するEntity
ノードの子リストと同じようにEntityReference
ノードの子リストが作成されます。注:
Entity
ノードの下位ノードの名前空間接頭辞のバインドが解除されている場合には、作成されたEntityReference
ノードの対応する下位ノードのバインドも解除されます(そのnamespaceURI
はnull
)。 DOM Level 2とDOM Level 3では、このような場合に名前空間接頭辞を解決するメカニズムがサポートされていません。- パラメータ:
name
- 参照されるエンティティの名前。Document.createElementNS
やDocument.createAttributeNS
とは異なり、エンティティ名に対する名前空間整形式のチェックは実行されない。 アプリケーションは、エンティティ名の名前空間整形式を確保するために、「namespaces」パラメータをtrue
に設定してDocument.normalizeDocument()
を呼び出す必要がある。- 戻り値:
- 新しい
EntityReference
オブジェクト。 - 例外:
DOMException
- INVALID_CHARACTER_ERR: 指定された名前が、使用中のXMLバージョン(Document.xmlVersion
属性に指定されている)に定められているXML名ではない場合に発生します。
NOT_SUPPORTED_ERR: この文書がHTML文書の場合に発生します。
-
getElementsByTagName
文書内の、特定のタグ名を持つすべてのElements
を文書の順に格納するNodeList
を返します。- パラメータ:
tagname
- 一致するタグの名前。 特殊な値「*」はすべてのタグに一致する。 XMLの場合、tagname
パラメータでは大文字と小文字が区別される。そうでない場合は、使用されるマークアップ言語の大文字と小文字の区別に依存する。- 戻り値:
- 一致するすべての
Elements
を含む新しいNodeList
オブジェクト。
-
importNode
Node importNode(Node importedNode, boolean deep) throws DOMException別の文書から現在の文書へノードをインポートします。このとき、元の文書のソース・ノードが変更または削除されることはありません。このメソッドはソース・ノードの新しいコピーを作成します。 返されるノードは親ノードを持ちません(parentNode
はnull
)。
すべてのノードについて、ノードをインポートすると、インポート側の文書によって所有されたノード・オブジェクトが、ソース・ノードのnodeName
およびnodeType
と同じ属性値の他、名前空間に関連した属性(prefix
、localName
およびnamespaceURI
)を使用して作成されます。cloneNode
操作の場合と同じく、ソース・ノードは変更されません。 インポートされているノードに関連するユーザー・データは持ち越されません。 ただし、関連するデータとともにUserDataHandlers
が指定された場合は、このメソッドから戻る前に、それらのハンドラが該当するパラメータで呼び出されます。
追加情報は適切な方法でnodeType
にコピーされます。XMLソースまたはHTMLソースのフラグメントが一方の文書からもう一方の文書にコピーされた場合、2つの文書がXMLケース内に異なったDTDを持つ可能性があることを受けて、適切な動作のミラー化が試行されます。 次のリストでは、各ノードについて説明します。- ATTRIBUTE_NODE
- 生成された
Attr
上で、ownerElement
属性は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
に接続されます。 インポートされる文書がこの要素名のデフォルト属性(割当て済み)を定義する場合も、デフォルト属性はコピーされません。importNode
のdeep
パラメータがtrue
に設定されている場合は、ソース要素の子孫が再帰的にインポートされ、結果ノードが再アセンブルされて、対応するサブツリーを形成します。 - ENTITY_NODE
- DOMの現在のリリースでは
DocumentType
は読取り専用ですが、Entity
ノードはインポート可能です。 こうしてインポートされたノードをDocumentType
に追加する機能は、将来のDOMのリリースで追加される予定です。インポート時には、publicId
、systemId
、notationName
の各属性がコピーされます。deep
のインポートが要求された場合は、ソースEntity
の子孫が再帰的にインポートされ、結果ノードが再アセンブルされて、対応するサブツリーを形成します。 - ENTITY_REFERENCE_NODE
deep
のインポートが要求された場合も、ソース文書とデスティネーション文書でエンティティの定義が異なる場合があるので、EntityReference
だけがコピーされることになります。 インポートされる文書がこのエントリ名を定義する場合は、その値が割り当てられます。- NOTATION_NODE
-
DOMの現在のリリースでは
DocumentType
は読取り専用ですが、Notation
ノードはインポート可能です。 こうしてインポートされたノードをDocumentType
に追加する機能は、将来のDOMのリリースで追加される予定です。インポート時には、publicId
およびsystemId
の各属性がコピーされます。 これらのノードは子を持つことができないので、deep
パラメータは何の影響も及ぼしません。 - PROCESSING_INSTRUCTION_NODE
- インポートしたノードは、ソース・ノードから
target
とdata
の値をコピーします。これらのノードは子を持つことができないので、deep
パラメータは何の影響も及ぼしません。 - TEXT_NODE、CDATA_SECTION_NODE、COMMENT_NODE
CharacterData
を継承する3つのノード型で、data
属性とlength
属性をソース・ノードからコピーします。これらのノードは子を持つことができないので、deep
パラメータは何の影響も及ぼしません。
- パラメータ:
importedNode
- インポートされるノード。deep
-true
の場合は、指定されたノードの下のサブツリーを再帰的にインポートし、false
の場合は、指定されたノードだけをインポートする(上記の説明を参照)。 子を持つことができないノードやAttr
、EntityReference
ノードには影響を及ぼさない。- 戻り値:
- この
Document
に属するインポートされたノード。 - 例外:
DOMException
- NOT_SUPPORTED_ERR: インポートするノードの種類がサポートされていない場合に発行されます。
INVALID_CHARACTER_ERR: インポートされた名前のいずれか1つが、使用中のXMLバージョン(Document.xmlVersion
属性に指定されている)に定められているXML名ではない場合に発生します。 これは、たとえば、XML 1.1「XML 1.1」要素をXML 1.0文書にインポートしているときに発生する可能性があります。- 導入されたバージョン:
- 1.4、DOMレベル2
-
createElementNS
Element createElementNS(String namespaceURI, String qualifiedName) throws DOMException所定の修飾名と名前空間URIを持つ要素を作成します。
名前空間を保有しない場合は、「XML名前空間」に従って、アプリケーションでメソッドのnamespaceURIパラメータとして値null
を使用する必要があります。- パラメータ:
namespaceURI
- 作成する要素の名前空間URI。qualifiedName
- インスタンス化する要素型の修飾名。- 戻り値:
- 次の属性を持つ新しい
Element
オブジェクトElement
オブジェクトの属性属性 値 Node.nodeName
qualifiedName
Node.namespaceURI
namespaceURI
Node.prefix
qualifiedName
から抽出された接頭辞。接頭辞がない場合はnull
Node.localName
qualifiedName
から抽出されたローカル名Element.tagName
qualifiedName
- 例外:
DOMException
- INVALID_CHARACTER_ERR: 指定されたqualifiedName
が、使用中のXMLバージョン(Document.xmlVersion
属性に指定されている)に定められているXML名ではない場合に発生します。
NAMESPACE_ERR:qualifiedName
の修飾名の形式が正しくない場合、qualifiedName
が接頭辞を持ち、かつnamespaceURI
がnull
の場合、またはqualifiedName
が「xml」の接頭辞を持ち、かつnamespaceURI
が「http://www.w3.org/XML/1998/namespace」の「XML名前空間」とは異なる場合、またはqualifiedName
かその接頭辞が「xmlns」であり、かつnamespaceURI
が「http://www.w3.org/2000/xmlns/」とは異なる場合、またはnamespaceURI
が「http://www.w3.org/2000/xmlns/」であり、かつqualifiedName
もその接頭辞も「xmlns」ではない場合に発生します。
NOT_SUPPORTED_ERR: 名前空間はXMLによって定義されているため、現在の文書が"XML"
機能をサポートしていない場合は常にスローされます。- 導入されたバージョン:
- 1.4、DOMレベル2
-
createAttributeNS
Attr createAttributeNS(String namespaceURI, String qualifiedName) throws DOMException所定の修飾名と名前空間URIを持つ属性を作成します。
名前空間を保有しない場合は、XML名前空間に従って、アプリケーションでメソッドのnamespaceURI
パラメータにnull
値を使用する必要があります。- パラメータ:
namespaceURI
- 作成する属性の名前空間URI。qualifiedName
- インスタンス化する属性の修飾名。- 戻り値:
- 次の属性を持つ新しい
Attr
オブジェクトAttr
オブジェクトの属性属性 値 Node.nodeName
qualifiedName Node.namespaceURI
namespaceURI
Node.prefix
qualifiedName
から抽出された接頭辞。接頭辞がない場合はnull
Node.localName
qualifiedName
から抽出されたローカル名Attr.name
qualifiedName
Node.nodeValue
空の文字列 - 例外:
DOMException
- INVALID_CHARACTER_ERR: 指定されたqualifiedName
が、使用中のXMLバージョン(Document.xmlVersion
属性に指定されている)に定められているXML名ではない場合に発生します。
NAMESPACE_ERR:qualifiedName
の修飾名の形式が正しくない場合、qualifiedName
が接頭辞を持ち、かつnamespaceURI
がnull
の場合、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"
機能をサポートしていない場合は常にスローされます。- 導入されたバージョン:
- 1.4、DOMレベル2
-
getElementsByTagNameNS
特定のローカル名と名前空間URIを持つすべてのElements
を文書の順に格納するNodeList
を返します。- パラメータ:
namespaceURI
- 一致する要素の名前空間URI。 特殊な値"*"
は、すべての名前空間に一致する。localName
- 一致する要素のローカル名。 特殊な値「*」はすべてのローカル名に一致する。- 戻り値:
- 一致するすべての
Elements
を含む新しいNodeList
オブジェクト。 - 導入されたバージョン:
- 1.4、DOMレベル2
-
getElementById
所定の値のID属性を持つElement
を返します。 このような要素がない場合は、null
を返します。 複数の要素が所定の値のID属性を持っている場合には、どの値が返されるかは定義されていません。
DOM実装では、Attr.isId
属性を使用して、ID属性かどうかを判定することが求められます。注: 属性名に「ID」または「id」が含まれていても、そのように定義されていない場合には、ID属性ではありません。
- パラメータ:
elementId
- 要素の一意のid
値。- 戻り値:
- 一致する要素。存在しない場合は
null
。 - 導入されたバージョン:
- 1.4、DOMレベル2
-
getInputEncoding
String getInputEncoding()このドキュメントを解析するときに使用するエンコーディングを指定します。Document
がメモリーで作成されたときなど、未知の場合はnull
です。- 導入されたバージョン:
- 1.5、DOMレベル3
-
getXmlEncoding
String getXmlEncoding()この文書のエンコーディングをXML宣言の一部として指定する属性。Document
がメモリーで作成されたときなど、未指定の場合や認識されない場合はnull
です。- 導入されたバージョン:
- 1.5、DOMレベル3
-
getXmlStandalone
boolean getXmlStandalone()このドキュメントがスタンドアロンかどうかをXML宣言の一部として指定します。 指定されない場合はfalse
です。注: この属性を設定するときに、値の検証は行われません。 アプリケーションは「validate」パラメータを持つ
Document.normalizeDocument()
を使用して、値が「XML 1.0」で定義されるスタンドアロン文書宣言に対する有効性の制約に一致するかどうかを検証する必要があります。- 導入されたバージョン:
- 1.5、DOMレベル3
-
setXmlStandalone
void setXmlStandalone(boolean xmlStandalone) throws DOMExceptionこのドキュメントがスタンドアロンかどうかをXML宣言の一部として指定します。 指定されない場合はfalse
です。注: この属性を設定するときに、値の検証は行われません。 アプリケーションは「validate」パラメータを持つ
Document.normalizeDocument()
を使用して、値が「XML 1.0」で定義されるスタンドアロン文書宣言に対する有効性の制約に一致するかどうかを検証する必要があります。- 例外:
DOMException
- NOT_SUPPORTED_ERR: このドキュメントがXML機能をサポートしない場合に発生します。- 導入されたバージョン:
- 1.5、DOMレベル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)
メソッドを使用します。 DOMアプリケーションで実装が「XML 1.1」をサポートしているかどうかを判定するときは、パラメータ値「XMLVersion」と「1.1」を指定して同じメソッドを使用します。 どちらの場合も、XMLをサポートするには、この仕様に定義されている「XML」機能を実装がサポートしている必要があります。 あるバージョンの「XML Version」機能をサポートしているDocument
オブジェクトがDocument.xmlVersion
を使用しているときに、同じバージョン番号のNOT_SUPPORTED_ERR
例外をスローしてはいけません。- 導入されたバージョン:
- 1.5、DOMレベル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)
メソッドを使用します。 DOMアプリケーションで実装が「XML 1.1」をサポートしているかどうかを判定するときは、パラメータ値「XMLVersion」と「1.1」を指定して同じメソッドを使用します。 どちらの場合も、XMLをサポートするには、この仕様に定義されている「XML」機能を実装がサポートしている必要があります。 あるバージョンの「XML Version」機能をサポートしているDocument
オブジェクトがDocument.xmlVersion
を使用しているときに、同じバージョン番号のNOT_SUPPORTED_ERR
例外をスローしてはいけません。- 例外:
DOMException
- NOT_SUPPORTED_ERR:Document
がサポートしていない値がバージョンに設定されている場合、またはこの文書が「XML」機能をサポートしていない場合に発生します。- 導入されたバージョン:
- 1.5、DOMレベル3
-
getStrictErrorChecking
boolean getStrictErrorChecking()エラー・チェックを適用するかどうかを指定します。false
に設定した場合、この実装はDOM処理に通常定義されているあらゆるエラー・ケースをテストしません。また、DOM処理に関するDOMException
をスローせず、Document.normalizeDocument()
を使用しているときはエラーを報告しません。 エラーが発生した場合の動作は未定義です。 この属性はデフォルトでtrue
です。- 導入されたバージョン:
- 1.5、DOMレベル3
-
setStrictErrorChecking
void setStrictErrorChecking(boolean strictErrorChecking)エラー・チェックを適用するかどうかを指定します。false
に設定した場合、この実装はDOM処理に通常定義されているあらゆるエラー・ケースをテストしません。また、DOM処理に関するDOMException
をスローせず、Document.normalizeDocument()
を使用しているときはエラーを報告しません。 エラーが発生した場合の動作は未定義です。 この属性はデフォルトでtrue
です。- 導入されたバージョン:
- 1.5、DOMレベル3
-
getDocumentURI
String getDocumentURI()ドキュメントの場所。未定義の場合やDOMImplementation.createDocument
を使ってDocument
が作成された場合はnull
。 この属性が設定されている場合には、字句は確認されないため、Node.baseURI
を使用したときにnull
値が返される可能性があります。
Document
が「HTML」の「DOM Level 2 HTML」機能をサポートしているときには、Node.baseURI
を計算する際、HTML BASE要素のhref属性がこの属性よりも優先されます。- 導入されたバージョン:
- 1.5、DOMレベル3
-
setDocumentURI
void setDocumentURI(String documentURI)ドキュメントの場所。未定義の場合やDOMImplementation.createDocument
を使ってDocument
が作成された場合はnull
。 この属性が設定されている場合には、字句は確認されないため、Node.baseURI
を使用したときにnull
値が返される可能性があります。
Document
が「HTML」の「DOM Level 2 HTML」機能をサポートしているときには、Node.baseURI
を計算する際、HTML BASE要素のhref属性がこの属性よりも優先されます。- 導入されたバージョン:
- 1.5、DOMレベル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
例外をスローしません。アプリケーションでは、Document.normalizeDocument()
メソッドを使用して、インポートされた名前が使用中のXMLバージョンに従うXML名でないかどうかを確認する必要があります。- パラメータ:
source
- この文書に移動するノード。- 戻り値:
- インポートされたノード。ソース・ノードの実装が異なる場合など、この操作が失敗した場合は
null
。 - 例外:
DOMException
- NOT_SUPPORTED_ERR: ソース・ノードがDOCUMENT
、DOCUMENT_TYPE
型である場合に発生します。
NO_MODIFICATION_ALLOWED_ERR: ソース・ノードが読取り専用の場合に発生します。- 導入されたバージョン:
- 1.5、DOMレベル3
-
getDomConfig
DOMConfiguration getDomConfig()Document.normalizeDocument()
が呼び出されたときに使用される構成。- 導入されたバージョン:
- 1.5、DOMレベル3
-
normalizeDocument
void normalizeDocument()このメソッドは、文書を通常の形式に変換して、保存およびロードするように動作します。 その結果、このメソッドはNode.normalize()
メソッドの定義に基づいて、EntityReference
ノードの置換ツリーを更新し、Text
ノードを正規化します。
それ以外の場合、実際の結果は、Document.domConfig
オブジェクトに設定されている機能と、その機能がどんな処理を実際に実行するかに応じて異なります。 たとえば、記述されているアルゴリズムに従って、文書を名前空間整形式に変換したり、文字の正規化をチェックしたり、CDATASection
ノードを削除したりすることもできます。詳細は、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();
変異イベントがサポートされているときには、文書で発生する変更を反映するために変異イベントが生成されます。
このメソッドの呼出し中にエラーが発生した場合(読取り専用ノードを更新しようとした場合や、Node.nodeName
に使用中のXMLバージョンに定められている無効な文字が含まれている場合など)は、「error-handler」パラメータに関連付けられたDOMErrorHandler
オブジェクトを使用して、エラーまたは警告(DOMError.SEVERITY_ERROR
またはDOMError.SEVERITY_WARNING
)が報告されます。 また、実装がエラーから回復できない場合に、このメソッドによって致命的なエラー(DOMError.SEVERITY_FATAL_ERROR
)が報告されることがあります。- 導入されたバージョン:
- 1.5、DOMレベル3
-
renameNode
Node renameNode(Node n, String namespaceURI, String qualifiedName) throws DOMExceptionELEMENT_NODE
またはATTRIBUTE_NODE
型の既存のノードを変更します。
可能な場合は、指定されたノードの名前を単純に変更します。それ以外の場合は、指定された名前を持つ新しいノードを作成し、次の手順で既存のノードを新しいノードに置き換えます。
指定されたノードの名前を単純に変更できない場合は、次の操作が実行されます。新しいノードが作成され、登録済のイベント・リスナーがすべて新しいノードに登録されます。古いノードに関連付けられていたユーザー・データがすべて、そのノードから削除されます。古いノードはその親から削除されます(そのノードに親が存在する場合)。削除された子が新しいノードに移動します。名前が変更されたノードがElement
の場合は、その属性が新しいノードに移動します。新しいノードは、その親の子ノード・リスト内の古いノードがあった位置に挿入されます(そのリストが存在する場合)。古いノードに関連付けられていたユーザー・データが新しいノードに関連付けられます。
名前が変更されるノードがElement
の場合は、指定された属性のみが移動され、DTDに基づいて設定されたデフォルト属性が新しい要素名に従って更新されます。 この実装は、他のスキーマからデフォルト属性を更新することもあります。 アプリケーションは、Document.normalizeDocument()
を使用して、これらの属性を更新する必要があります。
名前が変更されるノードがElement
に関連付けられたAttr
の場合、そのノードはまずElement
属性マップから削除されます。 次に、ノードの名前を変更すると(既存のノードを変更するか、前述の手順で新しいノードを作成する)、ノードが元に戻ります。
さらに、- ユーザー・データ・イベント
NODE_RENAMED
がトリガーされます。 -
実装が「MutationNameEvents」機能をサポートしている場合は、このメソッドに関連する各変異操作によって適切なイベントがトリガーされ、最後にイベント{
http://www.w3.org/2001/xml-events
,DOMElementNameChanged
}または{http://www.w3.org/2001/xml-events
,DOMAttributeNameChanged
}がトリガーされます。
- パラメータ:
n
- 名前を変更するノード。namespaceURI
- 新しい名前空間URI。qualifiedName
- 新しい修飾名。- 戻り値:
- 名前が変更されたノード。 指定されたノード、または指定されたノードを置き換える新しいノード。
- 例外:
DOMException
- NOT_SUPPORTED_ERR: 指定されたノードの型がELEMENT_NODE
でもATTRIBUTE_NODE
でもない場合、または実装がドキュメント要素の名前の変更をサポートしていない場合に発生します。
INVALID_CHARACTER_ERR: 新しい修飾名が、使用中のXMLバージョン(Document.xmlVersion
属性に指定されている)に定められているXML名でない場合に発生します。
WRONG_DOCUMENT_ERR: 指定されたノードがこのドキュメントとは異なるドキュメントから生成された場合に発生します。
NAMESPACE_ERR:qualifiedName
の修飾名の形式が正しくない場合、qualifiedName
が接頭辞を持ち、かつnamespaceURI
がnull
の場合、またはqualifiedName
が「xml」の接頭辞を持ち、かつnamespaceURI
が「http://www.w3.org/XML/1998/namespace」の「XML名前空間」とは異なる場合に発生します。 また、名前が変更されるノードが属性であるときに、qualifiedName
またはその接頭辞が「xmlns」で、かつnamespaceURI
が「http://www.w3.org/2000/xmlns/」とは異なる場合にも発生します。- 導入されたバージョン:
- 1.5、DOMレベル3
- ユーザー・データ・イベント
-