Document インターフェイスは HTML/XML 文書全体をあらわす。概念上、 これは文書ツリーの ルート であり、文書データへの基本的なアクセスを提供する。
要素、テキストノード、注釈処理命令、他は、 Document の文脈の外部には存在できないので、 Document インターフェイスはこれらのオブジェクトの生成を必要とする製造(factory)メソッドも持つ。生成された Node オブジェクトは ownerDocument プロパティを持ち、内部でそのノードを生成した文脈の Document に関連付ける。
doctypeDocumentType型, 読取専用
DocumentType 参照)。文書型宣言のないものについては、 HTML文書、XML文書ともに null を返す。 DOMレベル2 は文書型宣言の編集をサポートしない。 insertNode や removeNode のような Node インターフェイスを継承するメソッド使用を含め、どんな方法を使っても docType をの変更はできない。documentElementElement型, 読取専用
implementationDOMImplementation型, 読取専用
DOMImplementation オブジェクト。DOM アプリケーションは複数の実装からオブジェクトを使用してよい。createAttribute( name )与えられた名前の Attr を生成する。 Attr インスタンスは setAttributeNode メソッドを用いて Element 上に置くことが可能であることに注意。
修飾名と名前空間URIを持つ属性の生成には、createAttributeNS メソッドを使用する。
Attr 型。新しい Attr オブジェクトで、 nodeName プロパティは name に、また localName, prefix, namespaceURI は null に設定される。属性の値は空文字列である。
createAttributeNS( namespaceURI, qualifiedName )与えられた修飾名と名前空間URIの属性を生成する。 HTML限定の実装はこのメソッドを実装する必要はない。
Attr 型。Attr オブジェクトで、次に挙げるプロパティを持つ:
| Attribute | Value |
|---|---|
Node.nodeName |
qualifiedName |
Node.namespaceURI |
namespaceURI |
Node.prefix |
接頭辞。これは
qualifiedName から抽出される。接頭辞が存在しない場合は null |
Node.localName |
qualifiedName から抽出される ローカル名 |
Attr.name |
qualifiedName |
Node.nodeValue |
空文字列 |
qualifiedName が奇形(malformed)である場合、 qualifiedName が接頭辞を持ち namespaceURI が null である場合、 qualifiedName が接頭辞 "xml" を持つのに namespaceURI が "http://www.w3.org/XML/1998/namespace" ではない場合、 qualifiedName が "xmlns" であるが namespaceURI が "http://www.w3.org/2000/xmlns/" ではない場合に発生。createCDATASection( data )指定された文字列を値に持つ CDATASection ノードを生成。
CDATASection の内容のためのデータ。CDATASection 型。新しい CDATASection オブジェクト。
createComment( data )createDocumentFragment( )createElement( tagName )指定した型の要素を生成する。 Note
that 返されるインスタンスは Element インターフェイスを実装し、したがって返されるオブジェクト上に直接属性を指定可能であることに注意。
加えて、デフォルト値を持つ既知の属性がある場合、それらを表す Attr ノードが自動生成され、その要素に据えられる。
修飾名と名前空間URIを持つ要素の生成には、 createElementNS メソッドを用いる。
tagName パラメータは任意の文字ケースで提供されてよいが、DOM実装によって正統(canonical)大文字形式にマップされなければならない。Element 型。新しい Element オブジェクトで、 nodeName プロパティは tagName に、 localName, prefix, namespaceURI は null に設定される。
createElementNS( namespaceURI, qualifiedName )与えられた修飾名と名前空間URIをの要素を生成する。 HTML限定の実装はこのメソッドを実装する必要はない。
Element 型。新しい Element オブジェクトで、次に挙げるプロパティを持つ:
| プロパティ | 値 |
|---|---|
Node.nodeName |
qualifiedName |
Node.namespaceURI |
namespaceURI |
Node.prefix |
接頭辞。これは qualifiedName から抽出される。接頭辞が存在しない場合は null。 |
Node.localName |
ローカル名。これは qualifiedName から抽出される。 |
Element.tagName |
qualifiedName |
qualifiedName が奇形(malformed)である場合、 qualifiedName が接頭辞を持ち namespaceURI が null である場合、 qualifiedName が接頭辞 "xml" を持つのに namespaceURI が "http://www.w3.org/XML/1998/namespace" [Namespaces] ではない場合に発生。createEntityReference( name )EntityReference
オブジェクトを生成する。更に、参照される実体が既知のものである場合、EntityReference ノードの子のリストが、該当する Entity ノードの子のリストと同じように作成される。
Note: Entity ノードの子孫に結合されない 名前空間接頭辞 を持つものがある場合、生成された EntityReference ノードの該当する子孫も結合されない; (それの namespaceURI は null である)。 DOMレベル2 は名前空間接頭辞を解決するいかなる機構もサポートしない。
EntityReference 型。新しい EntityReference オブジェクト。
createProcessingInstruction( target, data )与えられた名前とデータ文字列を持つ ProcessingInstruction ノードを生成する。
ProcessingInstruction 型。新しい ProcessingInstruction オブジェクト。
createTextNode( data )getElementById( elementId )getElementsByTagName( tagname )getElementsByTagNameNS( namespaceURI, localName )importNode( importedNode, deep )別文書からこの文書にノードをインポートする。返されるノードは親を持たない; (parentNode が null である)。ソースノードは元文書から変更されたり除去されたりしない; このメソッドはソースノードの新しい複製を作成する。
全ノードについて、ノードのインポートはインポートする文書に所有されるノードオブジェクトを生成し、これはソースノードの nodeName, nodeType と一致するプロパティ値, 加えて名前空間の関連するプロパティ(prefix, localName, namespaceURI) を持つ。 Node 上の cloneNode 操作のように、ソースノードは変更されない。
追加情報は nodeType に適切なように複製され、XMLまたはHTML のソース片を一方から他方へ複製する場合は期待する振る舞いの模倣を試み、XMLでは2個の文書は異なるDTDを持ってよいと認識する。次のリストに各ノード型についての仕様を述べる。
Attr 上の ownerElement プロパティは null に、 specified フラグは true に設定される。ソースとなる Attr の 子孫 は再帰的にインポートされ、結果のノードは該当する下位ツリーを形成するように再構築される。deep パラメータは Attr ノードには影響がないことに注意; それらはインポート時に常に子を運んで来る。deep オプションが true ならば、ソース要素の 子孫 は再帰的にインポートされ、結果のノードは該当する下位ツリーを形成するように再構築される。 そうでない場合は、これは単に空の DocumentFragment を生成する。Document ノードのインポートはできない。DocumentType ノードのインポートはできない。Attr ノードは生成された Element ノードに添付される。 デフォルトの属性は複製され ず、だがインポートを行う文書がこの要素名にデフォルトの属性を定義する場合、それらは代入される。 importNode の deep パラメータが true ならば、ソース要素の 子孫 は再帰的にインポートされ、結果のノードは該当する下位ツリーを形成するように再構築される。Entity ノードはインポート可能だが、DOMの現在のリリースでは DocumentType は読取専用である。 DocumentType へインポートされるノードの追加の可能性は、 DOMの将来のリリースへの追加のために熟考されるだろう.publicId, systemId, notationName プロパティは複製される。 deep インポートが要求されるならば、ソース Entity の 子孫 は再帰的にインポートされ該当する下位ツリーを形成するべく再構築される。deep インポートの要求に関係なく EntityReference 自身のみが複製される。ソースと送り先文書で実体を異なる物として定義しているかもれないからである。インポートを行う文書がこの実体名を定義している場合、その値が割当てられる。Notation ノードはインポート可能だが、DOMの現在のリリースにおいて DocumentType は読取専用である。 これらインポートされたノードを DocumentType に追加する可能性はDOMの将来のリリースへの追加のために熟考されるだろう。publicId, systemId プロパティが複製される。deep パラメータは Notation ノー土壌に何の影響も値ないことに注意。target と data の値をそのソースノードから複製する。CharacterData を継承するこれら三つのノード型は、 data, length プロパティをソースノードから複製する。true ならば、指定されたノード以下の下位ツリーを再帰的にインポートする; false ならば、そのノード自身だけをインポートする。 Attr, EntityReference, Notation ノード上では何の影響もない。Node 型。この Document に所属するインポートされたノード。
interface Document : Node {
readonly attribute DocumentType doctype;
readonly attribute DOMImplementation implementation;
readonly attribute Element documentElement;
Element createElement(in DOMString tagName)
raises(DOMException);
DocumentFragment createDocumentFragment();
Text createTextNode(in DOMString data);
Comment createComment(in DOMString data);
CDATASection createCDATASection(in DOMString data)
raises(DOMException);
ProcessingInstruction createProcessingInstruction(in DOMString target,
in DOMString data)
raises(DOMException);
Attr createAttribute(in DOMString name)
raises(DOMException);
EntityReference createEntityReference(in DOMString name)
raises(DOMException);
NodeList getElementsByTagName(in DOMString tagname);
// Introduced in DOM Level 2:
Node importNode(in Node importedNode,
in boolean deep)
raises(DOMException);
// Introduced in DOM Level 2:
Element createElementNS(in DOMString namespaceURI,
in DOMString qualifiedName)
raises(DOMException);
// Introduced in DOM Level 2:
Attr createAttributeNS(in DOMString namespaceURI,
in DOMString qualifiedName)
raises(DOMException);
// Introduced in DOM Level 2:
NodeList getElementsByTagNameNS(in DOMString namespaceURI,
in DOMString localName);
// Introduced in DOM Level 2:
Element getElementById(in DOMString elementId);
};