1. 文書オブジェクトモデルコア
1. Document Object Model Core

1.1 DOMコアインタフェースの概要
1.1. Overview of the DOM Core Interfaces

1.1では,文書オブジェクトにアクセスしそれらを操作するためのオブジェクト及びインタフェースの集合を定義する。1.1で規定する機能(コア 機能)は,ソフトウェア開発者及びウェブスクリプト作成者が,適合する製品の内部で構文解析されたHTML及びXMLの内容にアクセスしそれらを操作できるのに十分なものとする。DOMコアAPIは,DOM API呼出しだけを使って,Documentオブジェクトを生成し存在させることも可能とする。Documentのロード及びそれの永続的な保存は,DOM APIを実装する製品に委ねることとする。

This section defines a set of objects and interfaces for accessing and manipulating document objects. The functionality specified in this section (the Core functionality) is sufficient to allow software developers and web script authors to access and manipulate parsed HTML and XML content inside conforming products. The DOM Core API also allows creation and population of a Document object using only DOM API calls; loading a Document and saving it persistently is left to the product that implements the DOM API.

1.1.1 DOM構造モデル
1.1.1. The DOM Structure Model

DOMは,他の更に特殊化されたインタフェースも実装するNodeオブジェクトの階層として,文書を表現する。ノードのある型は,様々な型の ノードをもってよく,ノードのその他の型は,文書構造においてそれよりも下位に何ももつことができない葉ノードとなる。XML及びHTMLに対して,そのノード型,及びそれらが子供としてどのノード型をもってよいかを,次に示す。

The DOM presents documents as a hierarchy of Node objects that also implement other, more specialized interfaces. Some types of nodes may have child nodes of various types, and others are leaf nodes that cannot have anything below them in the document structure. For XML and HTML, the node types, and which node types they may have as children, are as follows:

DOMは,Nodeの子供又はElementインタフェースのgetElementsByTagNameメソッドが返す element 要素といった順序付きリストを扱うためにNodeListインタフェースも規定する。さらに,Elementの属性などの名前属性が参照するノードの順序なし集合を扱うためにNamedNodeMapも規定する。DOMにおける NodeListオブジェクト及びNamedNodeMapオブジェクトは,活性化している(live)とする。すなわち,元となる文書構造への変更は,すべての関連するNodeListオブジェクト及びNamedNodeMapオブジェクトに反映される。例えば,DOM利用者がElementの子供を含むNodeListオブジェクトを得て,それに続いて,その 要素 に子供を更に追加する(,子供を削除する,又は子供を修正する)場合,それらの変更は,利用者側でそれ以上のことをしなくとも,自動的にNodeListに反映される。同様に,木のNodeへの変更は,NodeList及びNamedNodeMapにおけるそのNodeへのすべての参照に反映される。

The DOM also specifies a NodeList interface to handle ordered lists of Nodes, such as the children of a Node, or the elements returned by the getElementsByTagName method of the Element interface, and also a NamedNodeMap interface to handle unordered sets of nodes referenced by their name attribute, such as the attributes of an Element. NodeList and NamedNodeMap objects in the DOM are live; that is, changes to the underlying document structure are reflected in all relevant NodeList and NamedNodeMap objects. For example, if a DOM user gets a NodeList object containing the children of an Element, then subsequently adds more children to that element (or removes children, or modifies them), those changes are automatically reflected in the NodeList, without further action on the user's part. Likewise, changes to a Node in the tree are reflected in all references to that Node in NodeList and NamedNodeMap objects.

Textインタフェース,Commentインタフェース及びCDATASectionインタフェースは,すべて,CharacterDataインタフェースから継承される。

Finally, the interfaces Text, Comment, and CDATASection all inherit from the CharacterData interface.

1.1.2 メモリ管理
1.1.2. Memory Management

この規定が定義するAPIの大部分は,クラスではなく インタフェース とする。これは,実装には,定義された名前及び規定された操作をもつメソッドの開示だけが必要とされ,直接にそのインタフェースに対応するクラスの実装は必要とはされないことを意味する。これによって,それ自体のデータ構造をもつ既存アプリケーションの上に,又は異なるクラス階層をもつ新しいアプリケーションの上に,薄い張り板を張るようにDOM APIを実装することが可能になる。このことは,構成される必要がある基盤となるオブジェクトがDOMインタフェースと関係をほとんどもたなくともよいので,Java又はC++の意味での通常のコンストラクタは,DOMオブジェクトを生成するために使用できないことも意味する。この問題に対するオブジェクト指向設計での従来の解は,様々なインタフェースを実装するオブジェクトのインスタンスを複数生成する ファクトリ(factory) メソッドを定義することである。インタフェース"X"を実装するオブジェクトは,Documentインタフェースの"createX()"メソッドによって生成される。この理由は,すべてのDOMオブジェクトは,特定の文書の文脈中で活性化(live)していることによる。

Most of the APIs defined by this specification are interfaces rather than classes. That means that an implementation need only expose methods with the defined names and specified operation, not implement classes that correspond directly to the interfaces. This allows the DOM APIs to be implemented as a thin veneer on top of legacy applications with their own data structures, or on top of newer applications with different class hierarchies. This also means that ordinary constructors (in the Java or C++ sense) cannot be used to create DOM objects, since the underlying objects to be constructed may have little relationship to the DOM interfaces. The conventional solution to this in object-oriented design is to define factory methods that create instances of objects that implement the various interfaces. Objects implementing some interface "X" are created by a "createX()" method on the Document interface; this is because all DOM objects live in the context of a specific Document.

DOM水準2のAPIは,DOMImplementationオブジェクトを生成する標準的な方法を定義 しない。すなわち,DOM実装は,これらのDOMインタフェースをブートストラップする独自の方法を提供しなければならない。他のすべてのオブジェクトは,そこから構築できる。

The DOM Level 2 API does not define a standard way to create DOMImplementation objects; DOM implementations must provide some proprietary way of bootstrapping these DOM interfaces, and then all other objects can be built from there.

コアDOM APIは,一般利用者のスクリプト言語,及び主として専門家のプログラマが使用するより挑戦的な言語の両方を含む,広範囲な言語との互換性をもつ設計がなされている。したがって,DOM APIは,多様なメモリ管理方式に渡って動作する必要がある。すなわち,メモリ管理を利用者に全く見せない言語への束縛,すなわち,明示的なコンストラクタを提供するが,未使用メモリを自動的に回収するための自動ガベジコレクション機構を提供する言語(特にJava)への束縛から,オブジェクトメモリを明示的に割り当て,それが使用されている場所を追跡し,再使用のためにそれを明示的に解放することを一般にプログラマに要求する言語(特にC及びC++)への束縛までの様々な方式で動作する必要がある。これらのプラットフォームに渡って一貫性のあるAPIを保証するために,DOMは,メモリ管理の問題に言及せず,代わりに,この問題を実装に任せる。(ECMAScript及びJavaのために)DOM APIが定義する明示的な言語束縛は,いずれも,メモリ管理メソッドを必要としないが,他の言語(特にC又はC++)に対するDOM束縛は,そのサポートを必要としてもよい。これらの拡張は,DOM APIを特定の言語に適合させる者の責任とし,DOM作業グループの責任とはしない。

The Core DOM APIs are designed to be compatible with a wide range of languages, including both general-user scripting languages and the more challenging languages used mostly by professional programmers. Thus, the DOM APIs need to operate across a variety of memory management philosophies, from language bindings that do not expose memory management to the user at all, through those (notably Java) that provide explicit constructors but provide an automatic garbage collection mechanism to automatically reclaim unused memory, to those (especially C/C++) that generally require the programmer to explicitly allocate object memory, track where it is used, and explicitly free it for re-use. To ensure a consistent API across these platforms, the DOM does not address memory management issues at all, but instead leaves these for the implementation. Neither of the explicit language bindings defined by the DOM API (for ECMAScript and Java) require any memory management methods, but DOM bindings for other languages (especially C or C++) may require such support. These extensions will be the responsibility of those adapting the DOM API to a specific language, not the DOM Working Group.

1.1.3 命名規約
1.1.3. Naming Conventions

短く,形式的ではなく,内部矛盾がなく,同様のAPIの利用者に馴染み深い属性名及びメソッド名をもつことはよいことだが,その名前が,DOM実装がサポートする既存のAPIにおける名前と衝突することは望ましくない。さらに,OMG IDL及びECMAScriptの両方とも,異なる名前空間を用いて名前のあいまい性を解消する能力に致命的な限界をもっており,これが,短く,馴染み深い名前の名前衝突を避けることを困難にしている。そこで,DOMでの名前は,すべての環境に渡って一意とするために,長く,記述的になる傾向にある。

While it would be nice to have attribute and method names that are short, informative, internally consistent, and familiar to users of similar APIs, the names also should not clash with the names in legacy APIs supported by DOM implementations. Furthermore, both OMG IDL and ECMAScript have significant limitations in their ability to disambiguate names from different namespaces that make it difficult to avoid naming conflicts with short, familiar names. So, DOM names tend to be long and descriptive in order to be unique across all environments.

作業グループは,様々な用語を用いて内部的に矛盾しないように心掛けもした。ただし,これらの用語は,他のAPIで共通的な区別がなされているとは限らないこともある。例えば,DOM APIは,メソッドが構造モデルを変更する場合にメソッド名"remove(取り除く。名詞は除去。)"を使用し,メソッドが構造モデルの内部の何かを消し去る場合にメソッド名"delete(削除する。名詞は削除。)"を使用する。削除されたものは返されない。取り除かれたものは,それを返すことに意味がある場合には,返されることもある。

The Working Group has also attempted to be internally consistent in its use of various terms, even though these may not be common distinctions in other APIs. For example, the DOM API uses the method name "remove" when the method changes the structural model, and the method name "delete" when the method gets rid of something inside the structure model. The thing that is deleted is not returned. The thing that is removed may be returned, when it makes sense to return it.

1.1.4 APIの継承ビューと平坦ビューとの比較
1.1.4. Inheritance vs. Flattened Views of the API

DOMコア API は,XML文書又はHTML文書へのインタフェースの二つの幾分異なる集合を表現する。それらは, 継承 の階層を用いる"オブジェクト指向"アプローチを表現するインタフェースと,(Java及びC言語に類似した他の言語における)キャスト又は COM 環境での問合せインタフェース呼出しを要求することなしにNodeインタフェース経由ですべての操作を行えるようにする"単純化された"ビューとの二つとする。これらの操作は,Java及びCOMでは幾分高価なものとなるが,DOMは,性能が重要となる環境で使用してもよい。そこで,Nodeインタフェースを使うだけで重要な機能を可能にできるようにする。 継承 階層を"すべてをNodeとする"DOMへのアプローチよりも理解しやすいとする利用者も多いので,よりオブジェクト指向的な API を好む利用者のために,より高位の完全なインタフェースもサポートする。

The DOM Core APIs present two somewhat different sets of interfaces to an XML/HTML document: one presenting an "object oriented" approach with a hierarchy of inheritance, and a "simplified" view that allows all manipulation to be done via the Node interface without requiring casts (in Java and other C-like languages) or query interface calls in COM environments. These operations are fairly expensive in Java and COM, and the DOM may be used in performance-critical environments, so we allow significant functionality using just the Node interface. Because many other users will find the inheritance hierarchy easier to understand than the "everything is a Node" approach to the DOM, we also support the full higher-level interfaces for those who prefer a more object-oriented API.

実際には,このことは, API にある程度の冗長性が存在することを意味する。(DOM2の)作業グループは," 継承 "のアプローチをAPIの基本的なビューとし,Nodeに関する機能の完全な集合を利用者が利用してもよい"余分な"機能と考えている。しかし,そのことは,オブジェクト指向解析が示す他のインタフェース上のメソッドの必要性がなくなるわけではない。もちろん,オブジェクト指向解析がNodeインタフェース上のものと同一な属性又はメソッドを与える場合には,完全に冗長なものを規定はしない。このようにして,Nodeインタフェース上に一般的なnodeName属性が存在する場合であっても,Elementインタフェース上にtagName属性が存在する。これらの二つの属性は,同じ値を含まなければならないが,DOM API には満足を与えなければならない異なる利用者がいるので,両方をサポートすることには価値がある。

In practice, this means that there is a certain amount of redundancy in the API. The Working Group considers the "inheritance" approach the primary view of the API, and the full set of functionality on Node to be "extra" functionality that users may employ, but that does not eliminate the need for methods on other interfaces that an object-oriented analysis would dictate. (Of course, when the O-O analysis yields an attribute or method that is identical to one on the Node interface, we don't specify a completely redundant one.) Thus, even though there is a generic nodeName attribute on the Node interface, there is still a tagName attribute on the Element interface; these two attributes must contain the same value, but the it is worthwhile to support both, given the different constituencies the DOM API must satisfy.

1.1.5 DOMString
1.1.5. The DOMString type

相互運用性を確実にするために,DOMは,次を規定する。

To ensure interoperability, the DOM specifies the following:

  • 型定義 DOMString
    Type Definition DOMString

    DOMStringは,16ビット単位 の並びとする。

    A DOMString is a sequence of 16-bit units.


    IDL定義
    IDL Definition
    valuetype DOMString sequence<unsigned short>;
    

  • アプリケーションは,([Unicode],及び[ISO/IEC 10646]の追補1で定義された)UTF-16を使ってDOMStringを符号化しなければならない。
    UTF-16符号化は,その広範囲な産業界での実績のために選択された。HTML及びXMLの両方に対して,文書の文字集合(及びそのために数値文字参照の記法)は,UCS [ISO-10646]に基づくことに注意すること。そこで,源となる文書における一つの数値文字参照が,DOMStringでは二つの16ビット単位(高位サロゲート及び低位サロゲート)に対応する場合があってもよい。
    Applications must encode DOMString using UTF-16 (defined in [Unicode] and Amendment 1 of [ISO/IEC 10646]).
    The UTF-16 encoding was chosen because of its widespread industry practice. Note that for both HTML and XML, the document character set (and therefore the notation of numeric character references) is based on UCS [ISO-10646]. A single numeric character reference in a source document may therefore in some cases correspond to two 16-bit units in a DOMString (a high surrogate and a low surrogate).

    備考  DOMは,文字型の名前をDOMStringと定義しているが,(言語)束縛では異なる名前を使用してもよい。例えばJavaに対しては,DOMStringString型に束縛される。これは,その符号化としてUTF-16を使用することによる。

    Note: Even though the DOM defines the name of the string type to be DOMString, bindings may use different names. For example for Java, DOMString is bound to the String type because it also uses UTF-16 as its encoding.

備考  2000年8月の時点で,OMG IDL規定([OMGIDL])は,wstring型を含んでいた。しかし,その定義は,文字の幅(バイト数)及び符号化の決定を折衝に依存するので,DOM API の相互運用性基準を満たさなかった。

Note: As of August 2000, the OMG IDL specification ([OMGIDL]) included a wstring type. However, that definition did not meet the interoperability criteria of the DOM API since it relied on negotiation to decide the width and encoding of a character.

1.1.6 DOMTimeStamp
1.1.6. The DOMTimeStamp type

相互運用性を確実にするために,DOMは,次を規定する。

To ensure interoperability, the DOM specifies the following:

  • 型定義 DOMTimeStamp
    Type Definition DOMTimeStamp
    DOMTimeStampは,ミリ秒の数を表現する。

    A DOMTimeStamp represents a number of milliseconds.


    IDL定義
    IDL Definition
    typedef unsigned long long DOMTimeStamp;
    

  • 備考  DOMは,型DOMTimeStampを使用するが,(言語)束縛では異なる型を使用してもよい。例えばJavaに対しては,DOMTimeStampは,long型に束縛される。ECMAScriptでは,integer型の範囲があまりにも小さいので,TimeStampは,Date型に束縛される。

    Note: Even though the DOM uses the type DOMTimeStamp, bindings may use different types. For example for Java, DOMTimeStamp is bound to the long type. In ECMAScript, TimeStamp is bound to the Date type because the range of the integer type is too small.

1.1.7 DOMにおける文字列比較
1.1.7. String comparisons in the DOM

DOMは,文字列の照合(マッチ,matching)を示す多くのインタフェースをもつ。HTMLプロセサは,一般に,要素 などの名前を大文字に(非常にまれに小文字に)正規化すると仮定する。一方で,XMLは明示的に大文字・小文字を区別する。DOMの目的のためには,文字列照合は,DOMString 16ビット単位 のバイナリ 比較 によってそのまま実行される。さらに,DOMは,あらゆる大文字・小文字の正規化は,DOM構造が構築される 前に,プロセサで行われると仮定する。

The DOM has many interfaces that imply string matching. HTML processors generally assume an uppercase (less often, lowercase) normalization of names for such things as elements, while XML is explicitly case sensitive. For the purposes of the DOM, string matching is performed purely by binary comparison of the 16-bit units of the DOMString. In addition, the DOM assumes that any case normalizations take place in the processor, before the DOM structures are built.

備考  大文字・小文字の正規化に加えて,テキストに対して適用できる付加的な正規化が存在する。W3Cの国際化作業グループでは,どの正規化が必要か,それらをどこで適用するのがよいかを正確に定義することを検討している。W3Cの国際化作業グループは,早い段階で正規化を要求することを期待している。このことは,DOMに読み込まれるデータは,既に正規化されていると仮定することを意味する。この場合,DOM及びその上に構築されるアプリケーションだけが,テキストが変更された場合にテキストは正規化された状態を維持していることを保証しなければならない。詳細については,[Charmod]を参照すること。

Note: Besides case folding, there are additional normalizations that can be applied to text. The W3C I18N Working Group is in the process of defining exactly which normalizations are necessary, and where they should be applied. The W3C I18N Working Group expects to require early normalization, which means that data read into the DOM is assumed to already be normalized. The DOM and applications built on top of it in this case only have to assure that text remains normalized when being changed. For further details, please see [Charmod].

1.1.8 XML名前空間
1.1.8. XML Namespaces

DOM水準2は,XML名前空間[Namespaces]をサポートする。これは,DOM水準1の幾つかのインタフェースを強化し,名前空間に関連する 要素 及び属性を生成し操作できるようにすることによって行われる。

The DOM Level 2 supports XML namespaces [Namespaces] by augmenting several interfaces of the DOM Level 1 Core to allow creating and manipulating elements and attributes associated to a namespace.

DOMに関する限り,XML名前空間 を宣言するために使用する特殊な属性が,今のところ開示されており,他の属性と同様に操作できる。しかし,ノードは,生成されると,永久に 名前空間URI に束縛される。その結果,DOMを使って文書内でノードを移動させても,決して,名前空間接頭辞 にも名前空間URIにも変化は生じない。同様に,名前空間接頭辞及び名前空間URIをもつノードを生成したりノードの名前空間接頭辞を変更しても,適切なXML名前空間を宣言するためにいかなる特殊な属性の追加,削除又は修正が生じることはない。名前空間の妥当性検証は強制されない。DOMアプリケーションの責任とする。特に,接頭辞と名前空間URIとの間の対応付けは強制されないので,一般に,結果として生じる文書は単純には直列化できない。例えば,アプリケーションは,文書を直列化する場合には,使用しているすべての名前空間を宣言しなければならないかもしれない。

As far as the DOM is concerned, special attributes used for declaring XML namespaces are still exposed and can be manipulated just like any other attribute. However, nodes are permanently bound to namespace URIs as they get created. Consequently, moving a node within a document, using the DOM, in no case results in a change of its namespace prefix or namespace URI. Similarly, creating a node with a namespace prefix and namespace URI, or changing the namespace prefix of a node, does not result in any addition, removal, or modification of any special attributes for declaring the appropriate XML namespaces. Namespace validation is not enforced; the DOM application is responsible. In particular, since the mapping between prefixes and namespace URIs is not enforced, in general, the resulting document cannot be serialized naively. For example, applications may have to declare every namespace in use when serializing a document.

DOM水準2は,いかなるURIの正規化又は正準化も実行しない。DOMに与えられたURIは,(例えば,空白などの文字が正しく別扱いされているなどに関して)妥当と仮定され,字句的な検査は実行されない。絶対URI参照は,文字列として扱われ,文字ごとに比較される。相対名前空間URI参照を取り扱う方法は定義しない。相互運用性を確実にするために,絶対名前空間URI参照(すなわち,方式名及びコロンで始まるURI参照)だけを使用するのが望ましい。DOMは字句的な検査を行わないので,DOM水準2のメソッドでは,空文字列は現実の名前空間URIとして扱われることに注意すること。アプリケーションは,名前空間をもつことを望まない場合には,メソッドに対する名前空間URIパラメタとして値nullを使用しなければならない。

DOM Level 2 doesn't perform any URI normalization or canonicalization. The URIs given to the DOM are assumed to be valid (e.g., characters such as whitespaces are properly escaped), and no lexical checking is performed. Absolute URI references are treated as strings and compared literally. How relative namespace URI references are treated is undefined. To ensure interoperability only absolute namespace URI references (i.e., URI references beginning with a scheme name and a colon) should be used. Note that because the DOM does no lexical checking, the empty string will be treated as a real namespace URI in DOM Level 2 methods. Applications must use the value null as the namespaceURI parameter for methods if they wish to have no namespace.

備考  DOMにおいて,すべての名前空間宣言属性は,定義によって,名前空間URI"http://www.w3.org/2000/xmlns/"に束縛される。これらは,名前空間接頭辞 又は 修飾された名前 を"xmlns"とする属性とする。この標準情報(TR)の原規定の作成時には,これはXML名前空間規定[Namespaces]の一部ではないが,将来の版では含まれる予定になっている。

Note: In the DOM, all namespace declaration attributes are by definition bound to the namespace URI: "http://www.w3.org/2000/xmlns/". These are the attributes whose namespace prefix or qualified name is "xmlns". Although, at the time of writing, this is not part of the XML Namespaces specification [Namespaces], it is planned to be incorporated in a future revision.

名前空間をもたない文書の中では,EntityReferenceノードの リストは,常に,対応するEntityの子リストと同じとする。これは,実体が束縛されていない 名前空間接頭辞 を含む文書では正しくない。それらの場合には,対応するEntityReferenceノードの 子孫 が,実体参照が存在する場所に依存して,異なる 名前空間URI に束縛されてよい。DOMではノードは常に同じ名前空間URIに束縛され続けるので,それらEntityReferenceノードを移動させることが,直列化できない文書を生じる可能性もある。このことは,DocumentインタフェースのDOM水準1のcreateEntityReferenceメソッドを,それら実体に対応する実体参照を生成するために使用する場合にも正しい。これは,返されたEntityReference 子孫 は束縛されていないことによる。DOM水準2は,名前空間接頭辞を解決する機構をサポートしない。これらすべての理由のために,それら実体及び実体参照は,使用しないか,又は非常に注意して使用することが望ましい。DOMの将来の水準には,これらを取り扱うための追加のサポートを含まれるかもしれない。

In a document with no namespaces, the child list of an EntityReference node is always the same as that of the corresponding Entity. This is not true in a document where an entity contains unbound namespace prefixes. In such a case, the descendants of the corresponding EntityReference nodes may be bound to different namespace URIs, depending on where the entity references are. Also, because, in the DOM, nodes always remain bound to the same namespace URI, moving such EntityReference nodes can lead to documents that cannot be serialized. This is also true when the DOM Level 1 method createEntityReference of the Document interface is used to create entity references that correspond to such entities, since the descendants of the returned EntityReference are unbound. The DOM Level 2 does not support any mechanism to resolve namespace prefixes. For all of these reasons, use of such entities and entity references should be avoided or used with extreme care. A future Level of the DOM may include some additional support for handling these.

DocumentインタフェースのcreateElementNS及びcreateAttributeNSといった新しいメソッドは,名前空間を意識したアプリケーションが使用することを意図している。名前空間を使用しない単純なアプリケーションは,createElement及びcreateAttributeといったDOM水準1のメソッドを使用できる。この方法で生成される要素及び属性は,名前空間接頭辞,名前空間URI又は局所名をもたない。

The new methods, such as createElementNS and createAttributeNS of the Document interface, are meant to be used by namespace aware applications. Simple applications that do not use namespaces can use the DOM Level 1 methods, such as createElement and createAttribute. Elements and attributes created in this way do not have any namespace prefix, namespace URI, or local name.

備考  DOM水準1のメソッドは,名前空間を無視する。そのために,名前空間を扱わない場合にはこれらのメソッドを使用するのは安全だが,それらと新しいものとを同時に使用することは避けたほうがよい。DOM水準1のメソッドだけが,それらのnodeNameによって属性ノードを識別する。これに対して,名前空間に関係するDOM水準2のメソッドは,それらのnamespaceURI及びlocalNameによって属性ノードを識別する。この基本的な違いのために,メソッドの両方の集合を混合することは,予測できない結果を生じる可能性がある。特に,setAttributeNSを使うと, 要素 は,同じnodeNameをもつが異なるnamespaceURIをもつ二つ(以上)の属性をもつかもしれない。そのnodeNameを用いてgetAttributeを呼び出すと,これら属性のどれかが返される。その結果は,実装に依存する。同様に,setAttributeNodeを使うと,異なるnodeNamesをもつが同じprefix及びnamespaceURIをもつ二つ(以上)の属性をもつかもしれない。この場合,getAttributeNodeNSは,実装に依存する方法で,どちらかの属性を返す。これらの場合に保証されるのは,そのnodeNameによって名前付けされた項目にアクセスするすべてのメソッドが,その同じ項目にアクセスし,そのURI及び局所名によってノードにアクセスするすべてのメソッドが,その同じノードにアクセスする,ということだけになる。例えば,setAttribute及びsetAttributeNSは,getAttribute及びgetAttributeNSがそれぞれ返すノードに影響する。

Note: DOM Level 1 methods are namespace ignorant. Therefore, while it is safe to use these methods when not dealing with namespaces, using them and the new ones at the same time should be avoided. DOM Level 1 methods solely identify attribute nodes by their nodeName. On the contrary, the DOM Level 2 methods related to namespaces, identify attribute nodes by their namespaceURI and localName. Because of this fundamental difference, mixing both sets of methods can lead to unpredictable results. In particular, using setAttributeNS, an element may have two attributes (or more) that have the same nodeName, but different namespaceURIs. Calling getAttribute with that nodeName could then return any of those attributes. The result depends on the implementation. Similarly, using setAttributeNode, one can set two attributes (or more) that have different nodeNames but the same prefix and namespaceURI. In this case getAttributeNodeNS will return either attribute, in an implementation dependent manner. The only guarantee in such cases is that all methods that access a named item by its nodeName will access the same item, and all methods which access a node by its URI and local name will access the same node. For instance, setAttribute and setAttributeNS affect the node that getAttribute and getAttributeNS, respectively, return.

1.2 基礎インタフェース
1.2. Fundamental Interfaces

1.2におけるインタフェースは,基礎的 と考えられ,特に指定されない限り,すべてのHTML DOM実装[DOM Level 2 HTML]を含む,DOMのすべての適合する実装によって完全に実装されなければならない。

The interfaces within this section are considered fundamental, and must be fully implemented by all conforming implementations of the DOM, including all HTML DOM implementations [DOM Level 2 HTML], unless otherwise specified.

DOMアプリケーションは,DOMImplementationインタフェースのhasFeature(feature, version)メソッドを,パラメタ値を(それぞれ)"Core"及び"2.0"として使用して,このモジュールが実装によってサポートされているかどうかを決定してもよい。DOM水準2に適合する実装,すなわちDOM水準2モジュールは,コアモジュールに適合しなければならない。この規定の 適合性 についての追加情報を参照すること。

A DOM application may use the hasFeature(feature, version) method of the DOMImplementation interface with parameter values "Core" and "2.0" (respectively) to determine whether or not this module is supported by the implementation. Any implementation that conforms to DOM Level 2 or a DOM Level 2 module must conform to the Core module. Please refer to additional information about conformance in this specification.

例外 DOMException
Exception DOMException

DOM操作は,"例外的な"状況でだけ,すなわち,(論理的な理由,データの損失,又は実装が不安定になったといういずれかの理由のために,)操作が実行できない場合にだけ,例外を挙げる。一般に,DOMメソッドは,NodeListを使用しているときの範囲外エラーといった,通常の処理中の状況で特定のエラー値を返す。

DOM operations only raise exceptions in "exceptional" circumstances, i.e., when an operation is impossible to perform (either for logical reasons, because data is lost, or because the implementation has become unstable). In general, DOM methods return specific error values in ordinary processing situations, such as out-of-bound errors when using NodeList.

実装は,他の状況下では他の例外を挙げるほうがよい。例えば,null引数を渡された場合には,実装は,実装依存の例外を挙げることが望ましい。

Implementations should raise other exceptions under other circumstances. For example, implementations should raise an implementation-dependent exception if a null argument is passed.

例外の概念をサポートしない言語及びオブジェクトシステムも存在する。それらシステムに対しては,そのシステム固有のエラー報告機構を使用して例外条件を示してもよい。例えば,メソッドが,対応するメソッド記述の中にリストとして示されているコードと同様のエラーコードを返す(言語)束縛があってもよい。

Some languages and object systems do not support the concept of exceptions. For such systems, error conditions may be indicated using native error reporting mechanisms. For some bindings, for example, methods may return error codes similar to those listed in the corresponding method descriptions.


IDL定義
IDL Definition
exception DOMException {
  unsigned short   code;
};
// ExceptionCode
const unsigned short      INDEX_SIZE_ERR                 = 1;
const unsigned short      DOMSTRING_SIZE_ERR             = 2;
const unsigned short      HIERARCHY_REQUEST_ERR          = 3;
const unsigned short      WRONG_DOCUMENT_ERR             = 4;
const unsigned short      INVALID_CHARACTER_ERR          = 5;
const unsigned short      NO_DATA_ALLOWED_ERR            = 6;
const unsigned short      NO_MODIFICATION_ALLOWED_ERR    = 7;
const unsigned short      NOT_FOUND_ERR                  = 8;
const unsigned short      NOT_SUPPORTED_ERR              = 9;
const unsigned short      INUSE_ATTRIBUTE_ERR            = 10;
// Introduced in DOM Level 2:
const unsigned short      INVALID_STATE_ERR              = 11;
// Introduced in DOM Level 2:
const unsigned short      SYNTAX_ERR                     = 12;
// Introduced in DOM Level 2:
const unsigned short      INVALID_MODIFICATION_ERR       = 13;
// Introduced in DOM Level 2:
const unsigned short      NAMESPACE_ERR                  = 14;
// Introduced in DOM Level 2:
const unsigned short      INVALID_ACCESS_ERR             = 15;

定義グループ ExceptionCode
Definition group ExceptionCode

発生したエラーの型を示す整数。

An integer indicating the type of error generated.

備考  他の数値コードは,潜在的な将来の使用のためにW3Cで予約されている。

Note: Other numeric codes are reserved for W3C for possible future use.

定義済み定数
Defined Constants
DOMSTRING_SIZE_ERR
テキストの指定された範囲がDOMStringに合致しない。
If the specified range of text does not fit into a DOMString
HIERARCHY_REQUEST_ERR
コードが属さない場所に挿入されている。
If any node is inserted somewhere it doesn't belong
INDEX_SIZE_ERR
インデクス若しくは大きさが負数,又は許された値よりも大きい。
If index or size is negative, or greater than the allowed value
INUSE_ATTRIBUTE_ERR
他で既に使用されている属性を追加しようとしている。
If an attempt is made to add an attribute that is already in use elsewhere
INVALID_ACCESS_ERRDOM水準2で導入
introduced in DOM Level 2.
パラメタ又は操作が基礎になるオブジェクトによってサポートされていない。
If a parameter or an operation is not supported by the underlying object.
INVALID_CHARACTER_ERR
名前の中などで,妥当でない又は不正な文字が指定されている。文法に合った文字の定義についてはXML規定の 生成規則2 を,文法に合った名前文字については 生成規則5 を参照すること。
If an invalid or illegal character is specified, such as in a name. See production 2 in the XML specification for the definition of a legal character, and production 5 for the definition of a legal name character.
INVALID_MODIFICATION_ERRDOM水準2で導入
introduced in DOM Level 2.
基礎となるオブジェクトの型を修正しようとしている。
If an attempt is made to modify the type of the underlying object.
INVALID_STATE_ERRDOM水準2で導入
introduced in DOM Level 2.
利用不可能又はもはや利用可能ではないオブジェクトを使用しようとしている。
If an attempt is made to use an object that is not, or is no longer, usable.
NAMESPACE_ERRDOM水準2で導入
introduced in DOM Level 2.
名前空間に関して正しくない方法でオブジェクトを生成又は変更しようとしている。
If an attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
NOT_FOUND_ERR
ノードが存在しない文脈でそのノードを参照しようとしている。
If an attempt is made to reference a node in a context where it does not exist
NOT_SUPPORTED_ERR
実装は,オブジェクト又は操作の要求された型をサポートしていない。
If the implementation does not support the requested type of object or operation.
NO_DATA_ALLOWED_ERR
データをサポートしないノードに対してデータを指定している。
If data is specified for a node which does not support data
NO_MODIFICATION_ALLOWED_ERR
修正が許されない場所でオブジェクトを修正しようとしている。
If an attempt is made to modify an object where modifications are not allowed
SYNTAX_ERRDOM水準2で導入
introduced in DOM Level 2.
妥当ではない又は不正な文字列が指定されている。
If an invalid or illegal string is specified.
WRONG_DOCUMENT_ERR
ノードを生成した文書以外の(そのノードをサポートしない)異なる文書で,ノードが使用されている。
If a node is used in a different document than the one that created it (that doesn't support it)
インタフェース DOMImplementation
Interface DOMImplementation

DOMImplementationインタフェースは,文書オブジェクトモデルのあらゆる特定のインスタンスに独立な操作を実行するために多くのメソッドを提供する。

The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model.


IDL定義
IDL Definition
interface DOMImplementation {
  boolean            hasFeature(in DOMString feature, 
                                in DOMString version);
  // Introduced in DOM Level 2:
  DocumentType       createDocumentType(in DOMString qualifiedName, 
                                        in DOMString publicId, 
                                        in DOMString systemId)
                                        raises(DOMException);
  // Introduced in DOM Level 2:
  Document           createDocument(in DOMString namespaceURI, 
                                    in DOMString qualifiedName, 
                                    in DocumentType doctype)
                                        raises(DOMException);
};

メソッド
Methods
createDocumentDOM水準2で導入
introduced in DOM Level 2
文書要素をもつ指定された型のXML Documentオブジェクトを生成する。HTML専用のDOM実装は,このメソッドを実装する必要はない。
Creates an XML Document object of the specified type with its document element. HTML-only DOM implementations do not need to implement this method.
パラメタ
Parameters
DOMStringnamespaceURI
namespaceURI of type DOMString
生成する文書要素の 名前空間URI
The namespace URI of the document element to create.
DOMStringqualifiedName
qualifiedName of type DOMString
生成される文書要素の 修飾された名前
The qualified name of the document element to be created.
DocumentTypedoctype
doctype of type DocumentType
生成される文書の型又はnull
doctypenullでない場合,そのNode.ownerDocument属性は,生成されている文書に設定される。
The type of document to be created or null.
When doctype is not null, its Node.ownerDocument attribute is set to the document being created.
返却値
Return Value

Document  

新しいDocumentオブジェクト。

例外
Exceptions

DOMException  

INVALID_CHARACTER_ERR: 指定された修飾された名前が不正な文字を含む場合に,挙げられる。

INVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.

NAMESPACE_ERR: qualifiedName形式が正しくない場合,qualifiedNameが接頭辞をもちnamespaceURInullになっている場合,又はqualifiedNameが"xml"である接頭辞をもちnamespaceURIが"http://www.w3.org/XML/1998/namespace" [Namespaces]と違っている場合に,挙げられる。

NAMESPACE_ERR: Raised if the qualifiedName is malformed, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from "http://www.w3.org/XML/1998/namespace" [Namespaces].

WRONG_DOCUMENT_ERR: doctypeが既に異なる文書とともに使用されているか,異なる実装から生成された場合に,挙げられる。

WRONG_DOCUMENT_ERR: Raised if doctype has already been used with a different document or was created from a different implementation.

createDocumentTypeDOM水準2で導入
introduced in DOM Level 2
空のDocumentTypeノードを生成する。実体宣言及び記法は利用可能としない。実体参照拡張及びデフォルト属性追加は出現しない。DOMの将来の版では,DocumentTypeを与える方法を提供することが期待されている。
HTML専用のDOM実装は,このメソッドを実装する必要はない。
Creates an empty DocumentType node. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur. It is expected that a future version of the DOM will provide a way for populating a DocumentType.
HTML-only DOM implementations do not need to implement this method.
パラメタ
Parameters
DOMStringqualifiedName
qualifiedName of type DOMString
生成される文書型の 修飾された名前
The qualified name of the document type to be created.
DOMStringpublicId
publicId of type DOMString
外部サブセットの公開識別子。
The external subset public identifier.
DOMStringsystemId
systemId of type DOMString
外部サブセットのシステム識別子。
The external subset system identifier.
返却値
Return Value

DocumentType  

Node.ownerDocumentnullに設定した新しいDocumentTypeノード。

例外
Exceptions

DOMException  

INVALID_CHARACTER_ERR: 指定された修飾された名前が不正な文字を含む場合に,挙げられる。

INVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.

NAMESPACE_ERR: qualifiedNameの形式が正しくない場合に,挙げられる。

NAMESPACE_ERR: Raised if the qualifiedName is malformed.

hasFeature
DOM実装が特定の機能を実装しているかどうかを試験する。
Test if the DOM implementation implements a specific feature.
パラメタ
Parameters
DOMStringfeature
feature of type DOMString
試験する機能の名前。大文字・小文字を区別しない。DOM機能が使用する値は,DOM水準2規定を通じて定義され,適合性の箇条でリストを示す。名前は,XMLの名前 とする。起こり得る(名前の)衝突を避けるために,DOM規定の外部で定義される機能を参照する名前は,その機能を定義する人(又はその人が所属する組織)のインターネットドメイン名の名前を,その構成要素ごとに逆に並べ,これを接頭辞として使うことによって,一意とすることが望ましい。例えば,W3C SVG作業グループは,機能"org.w3c.dom.svg"を定義する。
The name of the feature to test (case-insensitive). The values used by DOM features are defined throughout the DOM Level 2 specifications and listed in the Conformance section. The name must be an XML name. To avoid possible conflicts, as a convention, names referring to features defined outside the DOM specification should be made unique by reversing the name of the Internet domain name of the person (or the organization that the person belongs to) who defines the feature, component by component, and using this as a prefix. For instance, the W3C SVG Working Group defines the feature "org.w3c.dom.svg".
DOMStringversion
version of type DOMString
これは,試験する機能の版番号とする。水準2では,その文字列は,"2.0"又は"1.0"のいずれかを可能とする。版が指定されない場合には,機能のいずれかの版をサポートしていれば,メソッドはtrueを返す。
This is the version number of the feature to test. In Level 2, the string can be either "2.0" or "1.0". If the version is not specified, supporting any version of the feature causes the method to return true.
返却値
Return Value

boolean  

機能が指定された版で実装されている場合には,trueとする。そうでない場合には,falseとする。

true if the feature is implemented in the specified version, false otherwise.

例外なし
No Exceptions

インタフェース DocumentFragment
Interface DocumentFragment

DocumentFragmentは,"軽量の"又は"最小の"Documentとする。文書の木の一部を抽出できたり,文書の新しい素片を生成できたりして欲しいということは,非常によくあることである。切取りなどの利用者命令を実装したり,素片を動かすことによって文書を再編成することを想像してみる。それら素片を保持できるオブジェクトをもつことが望ましく,この目的のためにNodeを使用するのは極めて自然である。Documentオブジェクトがこの役割を果すことができるのは正しいが,Documentオブジェクトは,基礎となる実装に依存して,潜在的には重いオブジェクトになる可能性がある。これを行うために本当に必要なものは,軽量のオブジェクトである。DocumentFragmentは,そうしたオブジェクトとする。

DocumentFragment is a "lightweight" or "minimal" Document object. It is very common to want to be able to extract a portion of a document's tree or to create a new fragment of a document. Imagine implementing a user command like cut or rearranging a document by moving fragments around. It is desirable to have an object which can hold such fragments and it is quite natural to use a Node for this purpose. While it is true that a Document object could fulfill this role, a Document object can potentially be a heavyweight object, depending on the underlying implementation. What is really needed for this is a very lightweight object. DocumentFragment is such an object.

さらに,他のNodeの子供としてノードを挿入するなどの,様々な操作には,引数としてDocumentFragmentオブジェクトを取ってもよい。これは,DocumentFragmentのすべての子ノードがこのノードの子リストに移動するという結果を生じる。

Furthermore, various operations -- such as inserting nodes as children of another Node -- may take DocumentFragment objects as arguments; this results in all the child nodes of the DocumentFragment being moved to the child list of this node.

DocumentFragmentノードの子供は,文書の構造を定義するあらゆる部分木の最上位を表現する0個以上のノードになる。DocumentFragmentノードは,整形式のXML文書 である必要はない。(ただし,それらは,複数の最上位ノードをもつことができる整形式のXML解析対象実体に課せられた規則に従う必要はある。)例えば,DocumentFragmentはただ一つの子だけをもつかもしれないし,その子ノードはTextノードになってもよい。それら構造モデルは,HTML文書も整形式XML文書も表現しない。

The children of a DocumentFragment node are zero or more nodes representing the tops of any sub-trees defining the structure of the document. DocumentFragment nodes do not need to be well-formed XML documents (although they do need to follow the rules imposed upon well-formed XML parsed entities, which can have multiple top nodes). For example, a DocumentFragment might have only one child and that child node could be a Text node. Such a structure model represents neither an HTML document nor a well-formed XML document.

DocumentFragmentDocument(又は実際には子供をとってもよい任意の他のNode)に挿入される場合には,DocumentFragmentそれ自体ではなくDocumentFragmentの子供が,Nodeに挿入される。このことは,利用者が 兄弟 のノードを生成したい場合に,DocumentFragmentを非常に役立つものとする。すなわち,DocumentFragmentは,これらノードの親として動作し,その結果として,利用者は,Nodeインタフェースからの,insertBefore及びappendChildといった標準的なメソッドを利用できるようになる。

When a DocumentFragment is inserted into a Document (or indeed any other Node that may take children) the children of the DocumentFragment and not the DocumentFragment itself are inserted into the Node. This makes the DocumentFragment very useful when the user wishes to create nodes that are siblings; the DocumentFragment acts as the parent of these nodes so that the user can use the standard methods from the Node interface, such as insertBefore and appendChild.


IDL定義
IDL Definition
interface DocumentFragment : Node {
};

インタフェース Document
Interface Document

Documentインタフェースは,HTML文書又はXML文書の全体を表現する。概念的には,それは,文書木の ルート であって,文書のデータへの基本的なアクセスを提供する。

The Document interface represents the entire HTML or XML document. Conceptually, it is the root of the document tree, and provides the primary access to the document's data.

要素,テキストノード,注釈,処理命令などはDocumentの内容の外部には存在できないので,Documentインタフェースは,これらオブジェクトを生成するために必要なファクトリ(工場)メソッドも含む。生成されるNodeオブジェクトは,ownerDocument属性をもつが,この属性は,要素などが内部に生成された内容をもつDocumentとその要素などを関連付けている。

Since elements, text nodes, comments, processing instructions, etc. cannot exist outside the context of a Document, the Document interface also contains the factory methods needed to create these objects. The Node objects created have a ownerDocument attribute which associates them with the Document within whose context they were created.


IDL定義
IDL Definition
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);
};

属性
Attributes
DocumentTypedoctype,読取り専用
doctype of type DocumentType, readonly
この文書に関連付けられた文書型宣言(DocumentType参照)。文書型宣言をもたないXML文書と同様にHTML文書に対しては,これはnullを返す。DOM水準2は,文書型宣言の編集はサポートしない。docTypeは,insertNode又はremoveNodeといったNodeインタフェースから継承されたメソッドの使用を通した場合を含むいかなる方法でも,警告されることはできない。
The Document Type Declaration (see DocumentType) associated with this document. For HTML documents as well as XML documents without a document type declaration this returns null. The DOM Level 2 does not support editing the Document Type Declaration. docType cannot be altered in any way, including through the use of methods inherited from the Node interface, such as insertNode or removeNode.
ElementdocumentElement,読取り専用
documentElement of type Element, readonly
これは,文書のルート要素である子ノードに直接にアクセスできる 簡便性 のある属性とする。HTML文書に対しては,これは,tagNameを"HTML"とする要素とする。
This is a convenience attribute that allows direct access to the child node that is the root element of the document. For HTML documents, this is the element with the tagName "HTML".
DOMImplementationimplementation,読取り専用
implementation of type DOMImplementation, readonly
この文書を取り扱うDOMImplementationオブジェクト。DOMアプリケーションは,複数の実装からのオブジェクトを使用してもよい。
The DOMImplementation object that handles this document. A DOM application may use objects from multiple implementations.
メソッド
Methods
createAttribute
与えられた名前のAttrを生成する。Attrインスタンスは,setAttributeNodeメソッドを使ってElement上に設定できることに注意すること。
修飾された名前及び名前空間URIをもつ属性を生成するためには,createAttributeNSメソッドを使用する。
Creates an Attr of the given name. Note that the Attr instance can then be set on an Element using the setAttributeNode method.
To create an attribute with a qualified name and namespace URI, use the createAttributeNS method.
パラメタ
Parameters
DOMStringname
name of type DOMString
属性の名前。
The name of the attribute.
返却値
Return Value

Attr  

nodeName属性をnameに設定し,localName属性,prefix属性及びnamespaceURI属性をnullに設定した新しいAttrオブジェクト。生成される属性の値は,空文字列とする。

A new Attr object with the nodeName attribute set to name, and localName, prefix, and namespaceURI set to null. The value of the attribute is the empty string.

例外
Exceptions

DOMException  

INVALID_CHARACTER_ERR: 指定された名前が不正な文字を含む場合に,挙げられる。

INVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.

createAttributeNSDOM水準2で導入
introduced in DOM Level 2
与えられた修飾された名前及び名前空間URIの属性を生成する。HTML専用のDOM実装は,このメソッドを実装する必要はない。
Creates an attribute of the given qualified name and namespace URI. HTML-only DOM implementations do not need to implement this method.
パラメタ
Parameters
DOMStringnamespaceURI
namespaceURI of type DOMString
生成する属性の名前空間URI
The namespace URI of the attribute to create.
DOMStringqualifiedName
qualifiedName of type DOMString

インスタンス化する属性の修飾された名前
The qualified name of the attribute to instantiate.
返却値
Return Value

Attr  

次の属性をもつ新しいAttrオブジェクト。

A new Attr object with the following attributes:

属性
Node.nodeName qualifiedName
Node.namespaceURI namespaceURI
Node.prefix qualifiedNameから抽出した接頭辞,又は接頭辞が存在しない場合にはnull
prefix, extracted from qualifiedName, or null if there is no prefix
Node.localName qualifiedNameから抽出された 局所名
local name, extracted from qualifiedName
Attr.name qualifiedName
Node.nodeValue 空文字列
the empty string
例外
Exceptions

DOMException  

INVALID_CHARACTER_ERR: 指定された修飾された名前が不正な文字を含んでいる場合に,挙げられる。

INVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.

NAMESPACE_ERR: qualifiedNameの形式が正しくない場合,qualifiedNameが接頭辞をもちnamespaceURInullの場合,qualifiedNameが"xml"である接頭辞をもちnamespaceURIが"http://www.w3.org/XML/1998/namespace"とは異なっている場合,又はqualifiedNameが"xmlns"であってnamespaceURIが"http://www.w3.org/2000/xmlns/"とは異なっている場合に,挙げられる。

NAMESPACE_ERR: Raised if the qualifiedName is malformed, if the qualifiedName has a prefix and the namespaceURI is null, if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from "http://www.w3.org/XML/1998/namespace", or if the qualifiedName is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/".

createCDATASection
値が指定された文字列となるCDATASectionを生成する。
Creates a CDATASection node whose value is the specified string.
パラメタ
Parameters
DOMStringdata
data of type DOMString
CDATASection内容に対するデータ。
The data for the CDATASection contents.
返却値
Return Value

CDATASection  

新しいCDATASectionオブジェクト。

The new CDATASection object.

例外
Exceptions

DOMException  

NOT_SUPPORTED_ERR: この文書がHTML文書の場合に,挙げられる。

NOT_SUPPORTED_ERR: Raised if this document is an HTML document.

createComment
指定された文字列を与えたCommentノードを生成する。
Creates a Comment node given the specified string.
パラメタ
Parameters
DOMStringdata
data of type DOMString
ノードに対するデータ。
The data for the node.
返却値
Return Value

Comment  

新しいCommentオブジェクト。

The new Comment object.

例外なし
No Exceptions
createDocumentFragment
空のDocumentFragmentオブジェクトを生成する。
Creates an empty DocumentFragment object.
返却値
Return Value
パラメタなし
No Parameters
例外なし
No Exceptions
createElement
指定された型の要素を生成する。返されるインスタンスは,Elementを実装していることに注意すること。そのために,属性は,返されたオブジェクト上に直接に指定できる。
さらに,デフォルト値をもつ既知の属性が存在する場合には,それらを表現するAttrノードが,自動的に生成されその要素に添付される。
修飾された名前及び名前空間URIをもつ要素を生成するためには,createElementNSメソッドを使用すること。
Creates an element of the type specified. Note that the instance returned implements the Element interface, so attributes can be specified directly on the returned object.
In addition, if there are known attributes with default values, Attr nodes representing them are automatically created and attached to the element.
To create an element with a qualified name and namespace URI, use the createElementNS method.
パラメタ
Parameters
DOMStringtagName
tagName of type DOMString
インスタンス化する要素型の名前。XMLに対しては,これは,大文字・小文字を区別する。HTMLに対しては,大文字又は小文字のどちらでtagNameパラメタを提供してよいが,DOM実装によって正準的な大文字の形式に対応付けられなければならない。
The name of the element type to instantiate. For XML, this is case-sensitive. For HTML, the tagName parameter may be provided in any case, but it must be mapped to the canonical uppercase form by the DOM implementation.
返却値
Return Value

Element  

nodeName属性をtagNameに設定し,localName属性,prefix属性及びnamespaceURI属性をnullに設定した新しいElementオブジェクト。

A new Element object with the nodeName attribute set to tagName, and localName, prefix, and namespaceURI set to null.

例外
Exceptions

DOMException  

INVALID_CHARACTER_ERR: 指定された名前が不正な文字を含む場合に,挙げられる。

INVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.

createElementNSDOM水準2で導入
introduced in DOM Level 2
与えられた修飾された名前及び名前空間URIの要素を生成する。HTML専用のDOM実装は,このメソッドを実装する必要はない。
Creates an element of the given qualified name and namespace URI. HTML-only DOM implementations do not need to implement this method.
パラメタ
Parameters
DOMStringnamespaceURI
namespaceURI of type DOMString
生成する要素の名前空間URI
The namespace URI of the element to create.
DOMStringqualifiedName
qualifiedName of type DOMString
インスタンス化する要素型の修飾された名前
The qualified name of the element type to instantiate.
返却値
Return Value

Element  

次の属性をもつ新しいElementオブジェクト。

A new Element object with the following attributes:

属性
Node.nodeName qualifiedName
Node.namespaceURI namespaceURI
Node.prefix qualifiedNameから抽出された接頭辞,又は接頭辞が存在しない場合にはnull
prefix, extracted from qualifiedName, or null if there is no prefix
Node.localName qualifiedNameから抽出された 局所名
local name, extracted from qualifiedName
Element.tagName qualifiedName
例外
Exceptions

DOMException  

INVALID_CHARACTER_ERR: 指定された修飾された名前が不正な文字を含む場合に,挙げられる。

INVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.

NAMESPACE_ERR: qualifiedNameの形式が正しくない場合,qualifiedNameが接頭辞をもちnamespaceURInullの場合,又はqualifiedNameが"xml"となる接頭辞をもちnamespaceURIが"http://www.w3.org/XML/1998/namespace" [Namespaces]とは異なる場合に,挙げられる。

NAMESPACE_ERR: Raised if the qualifiedName is malformed, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from "http://www.w3.org/XML/1998/namespace" [Namespaces].

createEntityReference
EntityReferenceオブジェクトを生成する。さらに,参照される実体が既知の場合には,EntityReferenceノードの子リストは,対応するEntityノードの子リストと同じとされる。
Creates an EntityReference object. In addition, if the referenced entity is known, the child list of the EntityReference node is made the same as that of the corresponding Entity node.

備考  Entityノードの子孫が束縛されていない 名前空間接頭辞 をもつ場合には,生成されたEntityReferenceノードの対応する子孫も束縛されない。すなわち,そのnamespaceURInullとなる。DOM水準2は,名前空間接頭辞を解決するいかなる機構もサポートしない。

Note: If any descendant of the Entity node has an unbound namespace prefix, the corresponding descendant of the created EntityReference node is also unbound; (its namespaceURI is null). The DOM Level 2 does not support any mechanism to resolve namespace prefixes.

パラメタ
Parameters
DOMStringname
name of type DOMString
参照する実体の名前。
The name of the entity to reference.
返却値
Return Value

EntityReference  

新しいEntityReferenceオブジェクト。

The new EntityReference object.

例外
Exceptions

DOMException  

INVALID_CHARACTER_ERR: 指定された名前が不正な文字を含む場合に,挙げられる。

INVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.

NOT_SUPPORTED_ERR: この文書がHTML文書の場合に,挙げられる。

NOT_SUPPORTED_ERR: Raised if this document is an HTML document.

createProcessingInstruction
指定された名前及びデータ文字列を与えられたProcessingInstructionを生成する。
Creates a ProcessingInstruction node given the specified name and data strings.
パラメタ
Parameters
DOMStringtarget
target of type DOMString
処理命令のターゲット部分。
The target part of the processing instruction.
DOMStringdata
data of type DOMString
ノードに対するデータ。
The data for the node.
返却値
Return Value

ProcessingInstruction  

新しいProcessingInstructionオブジェクト。

The new ProcessingInstruction object.

例外
Exceptions

DOMException  

INVALID_CHARACTER_ERR: 指定されたターゲットが不正な文字を含む場合に,挙げられる。

INVALID_CHARACTER_ERR: Raised if the specified target contains an illegal character.

NOT_SUPPORTED_ERR: この文書がHTML文書の場合に,挙げられる。

NOT_SUPPORTED_ERR: Raised if this document is an HTML document.

createTextNode
与えられた文字列に対してTextノードを生成する。
パラメタ
DOMStringdata
ノードに対するデータ。
返却値

Text  

新しいTextオブジェクト。

例外なし
getElementByIdDOM水準2で導入
IDelementIdによって与えられるElementを返す。それら要素が存在しない場合には,nullを返す。複数の要素がこのIDをもつ場合には,その振る舞いは定義されない。

備考  DOMの実装は,どの属性がID型となるかを示す情報をもたなければならない。それらが定義されない場合には,名前"ID"をもつ属性は,ID型ではない。属性がID型となるかどうか知らない実装は,nullを返すと期待される。

パラメタ
DOMStringelementId
要素に対する一意なid値。
返却値
Return Value

Element  

(id値が)一致する要素。

例外なし
getElementsByTagName
与えられたタグ名をもつElementを,Document木をあらかじめ順序付けされたたどりで出会う順番に返す。
パラメタ
DOMStringtagname
照合させるタグの名前。特別な値"*"は,すべてのタグと一致する。
返却値

NodeList  

一致したすべてのElementを含む新しいNodeListオブジェクト。

例外なし
getElementsByTagNameNSDOM水準2で導入
与えられた 局所名 及び名前空間URIをもつすべてのElementを,Document木をあらかじめ順序付けされたたどりで出会う順番に並べたNodeListを返す。
パラメタ
DOMStringnamespaceURI
照合させる要素の 名前空間URI。特別な値"*"は,すべての名前空間と一致する。
DOMStringlocalName
照合させる要素の 局所名。特別な値"*"は,すべての局所名と一致する。
返却値

NodeList  

すべての一致するElementを含む新しいNodeListオブジェクト。

例外なし
importNodeDOM水準2で導入
他の文書からこの文書に一つのノードをインポートする。返されるノードは親をもたない。すなわち,parentNodenullとする。源となるノードは,元の文書から変更されたり取り除かれたりしない。このメソッドは,源となるノードの新しいコピーを生成する。
すべてのノードに対して,あるノードをインポートすると,インポートを行う文書の所有するノードオブジェクトが,源となるノードのnodeName及びnodeTypeと同一の属性値,及び名前空間(prefixlocalName及びnamespaceURI)に関係する属性をともなって,生成される。Node上のcloneNode操作におけるのと同様に,源となるノードは変更されない。
付加的な情報が,nodeTypeに適切な仕方でコピーされる。このコピーの際に,XML又はHTMLの源(となる文書)の素片がある文書から他の文書へとコピーされた場合には,期待される振る舞いを写し出す試みを行い,XMLの場合には,二つの文書が異なるDTDをもってよいということを認識する。次のリストに,ノードの各々型の詳細を示す。
ATTRIBUTE_NODE
生成されるAttrにおいて,ownerElement属性は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に追加する機能が,DOMの将来の版に追加されることが検討されることになっている。
インポート時には,publicId属性,systemId属性及びnotationName属性は,コピーされる。deep(深い)インポートが要求される場合,源となるEntity 子孫 は,再帰的にインポートされ,結果として生じるノードは,部分木を形成するために再び組み立てられる。
ENTITY_REFERENCE_NODE
deepインポートが要求されたとしても,EntityReferenceそれ自体だけがコピーされる。これは,インポート元の文書及びインポート先の文書が,実体を異なって定義しているかもしれないことによる。インポートされる文書がこの実体の名前に対して定義を提供する場合には,その値が割り当てられる。
NOTATION_NODE
Notationノードはインポートできるが,DOMの現在の公開された版では,DocumentTypeは,読取り専用とする。これらインポートされたノードをDocumentTypeに追加する機能は,DOMの将来の版に追加されることが検討されることになっている。
インポート時には,publicId属性及びsystemId属性は,コピーされる。
deepパラメタは,Notationノードには影響しないことに注意すること。これは,それらのノードが子供をもたないことによる。
PROCESSING_INSTRUCTION_NODE
インポートされたノードは,そのtarget及びdataの値を,源となるノードのそれらの値からコピーする。
TEXT_NODE, CDATA_SECTION_NODE, 及びCOMMENT_NODE
CharacterDataから継承されるこれら三つのノードは,data属性及びlength属性を,源となるノードのそれらの属性からコピーする。
パラメタ
NodeimportedNode
インポートするノード。
booleandeep
(値が)trueの場合,指定されたノードの下の部分木を再帰的にインポートする。(値が)falseの場合,既に示したとおりに,そのノードそれ自体だけをインポートする。これは,Attrノード,EntityReferenceノード及びNotationノードには影響しない。
返却値

Node  

このDocumentに属するインポートされたノード。

例外

DOMException  

NOT_SUPPORTED_ERR: インポートされるノードの型がサポートされていない場合に,挙げられる。

インタフェース Node

Nodeインタフェースは,文書オブジェクトモデル全体に対する主要なデータ型とする。それは,文書木の中の一つのノードを表現する。Nodeインタフェースを実装するすべてのオブジェクトは,子供を扱うためのメソッドを開示しているが,Nodeインタフェースを実装するすべてのオブジェクトが子供をもってよいわけではない。例えば,Textノードは,子供をもってはならず,そのようなノードに子供を追加すると,DOMExceptionが挙げられる。

nodeName属性,nodeValue属性及びattributes属性は,特定の派生したインタフェースに(下向きに)キャストすることなくノードで情報を得る機構として含まれる。特定のnodeTypeに対するこれらの属性の明らかな対応付け(例えば,Elementに対してはnodeValue,又はCommentに対してはattributes)が存在しない場合,これは,nullを返す。特殊化されたインタフェースが,重要な情報を取得し設定するために,付加的なより簡便性のある機構を含んでもよいことに注意すること。


IDL 定義
interface Node {

  // NodeType
  const unsigned short      ELEMENT_NODE                   = 1;
  const unsigned short      ATTRIBUTE_NODE                 = 2;
  const unsigned short      TEXT_NODE                      = 3;
  const unsigned short      CDATA_SECTION_NODE             = 4;
  const unsigned short      ENTITY_REFERENCE_NODE          = 5;
  const unsigned short      ENTITY_NODE                    = 6;
  const unsigned short      PROCESSING_INSTRUCTION_NODE    = 7;
  const unsigned short      COMMENT_NODE                   = 8;
  const unsigned short      DOCUMENT_NODE                  = 9;
  const unsigned short      DOCUMENT_TYPE_NODE             = 10;
  const unsigned short      DOCUMENT_FRAGMENT_NODE         = 11;
  const unsigned short      NOTATION_NODE                  = 12;

  readonly attribute DOMString        nodeName;
           attribute DOMString        nodeValue;
                                        // raises(DOMException) on setting
                                        // raises(DOMException) on retrieval

  readonly attribute unsigned short   nodeType;
  readonly attribute Node             parentNode;
  readonly attribute NodeList         childNodes;
  readonly attribute Node             firstChild;
  readonly attribute Node             lastChild;
  readonly attribute Node             previousSibling;
  readonly attribute Node             nextSibling;
  readonly attribute NamedNodeMap     attributes;
  // Modified in DOM Level 2:
  readonly attribute Document         ownerDocument;
  Node               insertBefore(in Node newChild, 
                                  in Node refChild)
                                        raises(DOMException);
  Node               replaceChild(in Node newChild, 
                                  in Node oldChild)
                                        raises(DOMException);
  Node               removeChild(in Node oldChild)
                                        raises(DOMException);
  Node               appendChild(in Node newChild)
                                        raises(DOMException);
  boolean            hasChildNodes();
  Node               cloneNode(in boolean deep);
  // Modified in DOM Level 2:
  void               normalize();
  // Introduced in DOM Level 2:
  boolean            isSupported(in DOMString feature, 
                                 in DOMString version);
  // Introduced in DOM Level 2:
  readonly attribute DOMString        namespaceURI;
  // Introduced in DOM Level 2:
           attribute DOMString        prefix;
                                        // raises(DOMException) on setting

  // Introduced in DOM Level 2:
  readonly attribute DOMString        localName;
  // Introduced in DOM Level 2:
  boolean            hasAttributes();
};

定義グループ NodeType

このノードがどの型のノードであるかを示す整数。

備考  200までの数値コードが,潜在的な将来の使用のために,W3Cに対して予約されている。

定義済み定数
ATTRIBUTE_NODE
ノードは,Attrになっている。
CDATA_SECTION_NODE
ノードは,CDATASectionになっている。
COMMENT_NODE
ノードはComment
DOCUMENT_FRAGMENT_NODE
ノードは,DocumentFragmentになっている。
DOCUMENT_NODE
ノードは,Documentになっている。
DOCUMENT_TYPE_NODE
ノードは,DocumentTypeになっている。
ELEMENT_NODE
ノードは,Elementになっている。
ENTITY_NODE
ノードは,Entityになっている。
ENTITY_REFERENCE_NODE
ノードは,EntityReferenceになっている。
NOTATION_NODE
ノードは,Notationになっている。
PROCESSING_INSTRUCTION_NODE
ノードは,ProcessingInstructionになっている。
TEXT_NODE
ノードは,Textノードになっている。

nodeNamenodeValue及びattributesの値は,次のとおりに,ノード型に従って変化する。

インタフェース nodeName nodeValue attributes
Attr 属性の名前 属性の値 null
CDATASection #cdata-section CDATAセクションの内容 null
Comment #comment 注釈の内容 null
Document #document null null
DocumentFragment #document-fragment null null
DocumentType 文書型名 null null
Element タグ名 null NamedNodeMap
Entity 実体名 null null
EntityReference 参照された実体の名前 null null
Notation 記法名 null null
ProcessingInstruction ターゲット ターゲットを除く内容全体 null
Text #text テキストノードの内容 null

属性
NamedNodeMapattributes,読取り専用
このノードがElementの場合には,このノードの属性を含むNamedNodeMap。そうでない場合には,null
NodeListchildNodes,読取り専用
このノードのすべての子供を含むNodeList。子供が存在しない場合には,これは,ノードを含まないNodeListになる。
NodefirstChild,読取り専用
このノードの最初の子。そのようなノードが存在しない場合,これは,nullを返す。
NodelastChild,読取り専用
このノードの最後の子。そのようなノードが存在しない場合,これは,nullを返す。
DOMStringlocalName,読取り専用,DOM水準2で導入
このノードの 修飾された名前 の局所部分を返す。
ELEMENT_NODE及びATTRIBUTE_NODE以外の任意の型のノード,及びDocumentインタフェースからのcreateElementといったDOM水準1のメソッドを用いて生成されたノードに対しては,これは,常に,nullとする。
DOMStringnamespaceURI,読取り専用,DOM水準2で導入
このノードの 名前空間URI,又はそれが指定されていない場合には,null
これは,有効範囲の中にある名前空間宣言の検査に基づく名前空間検索の結果である計算された値ではなく,単に,作成時に与えられた名前空間URIとする。
ELEMENT_NODE及びATTRIBUTE_NODE以外の任意の型のノード,及びDocumentインタフェースからのcreateElementといったDOM水準1メソッドを用いて作成されたノードに対しては,常に,nullとする。

備考  XML名前空間 規定[Namespaces]に従うと,属性は,それが添付される要素からその名前空間を継承しない。属性が明示的に名前空間を与えられない場合には,単に,名前空間をもたないものとする。

NodenextSibling,読取り専用
このノードの直後のノード。そのようなノードが存在しない場合,これは,nullを返す。
DOMStringnodeName,読取り専用
データ型に依存した,このノードの名前。"定義済み定数"における表を参照。
unsigned shortnodeType,読取り専用
先に定義したとおり,基盤となるオブジェクトの型を表現するコード。
DOMStringnodeValue
型に依存した,このノードの値。"定義済み定数"における表を参照。nullと定義されている場合には,それを設定しても何の影響もない。
設定に関する例外

DOMException  

NO_MODIFICATION_ALLOWED_ERR: ノードが読取り専用の場合に,挙げられる。

取出しに関する例外

DOMException  

DOMSTRING_SIZE_ERR: 実装プラットフォーム上でのDOMString変数の中に入る以上の文字数を返そうとした場合に,挙げられる。

DocumentownerDocument,読取り専用,DOM水準2で修正
このノードに関連付けられたDocumentオブジェクト。これは,新しいノードを生成するために使用されるDocumentにもなっている。このノードが,Document,又はまだDocumentと共に使用されていないDocumentTypeの場合には,これは,nullとする。
NodeparentNode,読取り専用
このノードの AttrDocumentDocumentFragmentEntity,及びNotationを除くすべてのノードは,親をもってもよい。しかし,ノードが生成されたばかりであって,まだ木に追加されていない場合,又は木から取り除かれた場合には,これは,nullとする。
DOMStringprefixDOM水準2で導入
このノードの 名前空間接頭辞,又はそれが指定されていない場合には,null
この属性の設定が許されている場合に,それを設定すると,修飾された名前 を保持しているnodeName属性が変更される。適用可能な場合には,同様に,Elementインタフェース及びAttrインタフェースのtagName属性及びname属性も変更される。
デフォルト値をもつことが分かっている属性の接頭辞を変更しても,そのデフォルト値をもつ新しい属性は生成されず,元の接頭辞が出現することにも注意すること。これは,namespaceURI及びlocalNameが変更されないことによる。
ELEMENT_NODE及びATTRIBUTE_NODE以外の任意の型のノード,及びDocumentインタフェースからのcreateElementといったDOM水準1メソッドを用いて生成されるノードに対しては,これは,常に,nullとする。
設定に関する例外

DOMException  

INVALID_CHARACTER_ERR: 指定された接頭辞が不正な文字を含む場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NAMESPACE_ERR: 指定されたprefix形式が正しくない場合,このノードのnamespaceURInullの場合,指定された接頭辞が"xml"であって,このノードのnamespaceURIが"http://www.w3.org/XML/1998/namespace"とは異なっている場合,このノードが属性であって,指定された接頭辞が"xmlns"であって,このノードのnamespaceURIが"http://www.w3.org/2000/xmlns/"とは異なっている場合,又はこのノードが属性であって,このノードのqualifiedNameが"xmlns" [Namespaces]の場合に,挙げられる。

NodepreviousSibling,読取り専用
このノードの直前のノード。そのようなノードが存在しない場合には,nullを返す。
メソッド
appendChild
このノードの子供のリストの最後にノードnewChildを追加する。newChildが木に既に存在する場合には,最初にそれが取り除かれる。
パラメタ
NodenewChild
追加するノード。
それが,DocumentFragmentオブジェクトの場合,文書素片の内容全体が,このノードの子リストに移動される。
返却値

Node  

追加されたノード。

例外

DOMException  

HIERARCHY_REQUEST_ERR: このノードがnewChildノードの型の子供を許さない型の場合に,又は追加するノードがこのノードの 先祖 の一つの場合に,挙げられる。

WRONG_DOCUMENT_ERR: このノードを生成した文書とは異なる文書からnewChildが生成された場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

cloneNode
このノードの複製を返す。すなわち,ノードに対する汎用的なコピーコンストラクタ(構築子)として役に立つ。複製されたノードは,親をもたない。すなわち,parentNodenullとする。
Elementのクローンを作ることによって,すべての属性とその値をコピーする。これには,デフォルト化された属性を表現するためにXMLプロセサによって生成されたものも含まれる。しかし,このメソッドは,深い(deep)クローンでない場合には,それが含むテキストはコピーしない。これは,そのテキストは,子のTextノードに含まれることによる。Elementのクローン操作の一部としてクローンが作られるのとは対照的に,直接にAttributeのクローンを作る場合には,指定された属性が返される。すなわち,specifiedtrueになる。その他の任意の型のノードのクローンを作ると,単純に,このノードのコピーが返される。
変更不可の部分木のクローンを作ることによって,変更可能なコピーが生じるが,EntityReferenceのクローンの子供は,読取り専用 となることに注意すること。さらに,指定されなかったAttrノードのクローンが,指定される。Documentノード,DocumentTypeノード,Entityノード及びNotationノードのクローン化は,実装依存とする。
パラメタ
booleandeep
If true, recursively clone the subtree under the specified node; if false, clone only the node itself (and its attributes, if it is an Element).
(値が)trueの場合,指定されたノードの下の部分木のクローンが再帰的に作られる。(値が)falseの場合,そのノードそれ自体のクローンだけが作られる。ただし,Elementの場合には,その属性のクローンも作られる。
返却値

Node  

複製のノード。

例外なし
hasAttributesDOM水準2で導入
このノードが(要素の場合に)属性をもつかどうかを返す。
返却値

boolean  

このノードが属性をもつ場合には,trueとする。そうでない場合には,falseとする。

パラメタなし
例外なし
hasChildNodes
このノードが子供をもつかどうかを返す。
返却値

boolean  

このノードが子供をもつ場合には,trueとする。そうでない場合には,falseとする。

パラメタなし
例外なし
insertBefore
既存の子ノードrefChildの前にnewChildノードを挿入する。refChildnullの場合には,子供のリストの最後にnewChildを挿入する。
newChildDocumentFragmentオブジェクトの場合には,その子供のすべてが,refChildの前に同じ順序で挿入される。newChildが既に木に存在する場合には,それは最初に取り除かれる。
パラメタ
NodenewChild
挿入するノード。
NoderefChild
参照ノード。すなわち,新しいノードが挿入される前のノード。
返却値

Node  

挿入されるノード。

例外

DOMException  

HIERARCHY_REQUEST_ERR: このノードが,newChildノードの型の子供を許さない型の場合に,又は挿入するノードがこのノードの 先祖 の一つとなる場合に,挙げられる。

WRONG_DOCUMENT_ERR: このノードを生成した文書とは異なる文書からnewChildが生成された場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,又は挿入されるノードの親が読取り専用の場合に,挙げられる。

NOT_FOUND_ERR: Raised if refChildがこのノードの子ではない場合に,挙げられる。

isSupportedDOM水準2で導入
DOM実装が特定の機能を実装しているかどうか,及びその機能がこのノードでサポートされているかどうか,を試験する。
パラメタ
DOMStringfeature
試験する機能の名前。これは,DOMImplementation上のメソッドhasFeatureに渡すことのできる名前と同じ名前とする。
DOMStringversion
これは,試験する機能の版数とする。水準2の版1では,これは,文字列"2.0"とする。版が指定されていない場合には,その機能のいずれかの版をサポートしていれば,メソッドは,trueを返すものとする。
返却値

boolean  

指定された機能がこのノード上でサポートされている場合には,trueを返す。そうでない場合には,falseを返す。

例外なし
normalizeDOM水準2で修正
属性ノードを含めた,このNodeの下の部分木のあらゆる深さに存在するすべてのTextノードを,"正規"形式にする。ここで,正規形式とは,構造(例えば,要素,注釈,処理命令,CDATAセクション,及び実体参照)だけがTextノードを分離する形式のこととする。すなわち,隣接するTextノードも,空のTextノードも,存在しない。これは,文書のDOMによるビューが,保存され再ロードされても同じであることを保証するために使用可能であって,特定の文書木の構造に依存する操作(XPointer [XPointer]による検索など)を使用するのが望ましい場合に有用になる。

備考  文書がCDATASectionsを含む場合,正規化操作だけでは十分でないかもしれない。これは,XPointerが,TextノードとCDATASectionノードとを区別しないことによる。

パラメタなし
返却値なし
例外なし
removeChild
子供のリストから,oldChildで指示される子ノードを取り除き,それを返す。
パラメタ
NodeoldChild
取り除かれるノード。
返却値

Node  

取り除かれたノード。

例外

DOMException  

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NOT_FOUND_ERR: oldChildがこのノードの子ではない場合に,挙げられる。

replaceChild
子供のリストの中の,子ノードoldChildnewChildで置き換え,oldChildノードを返す。
newChildDocumentFragmentオブジェクトの場合,oldChildは,子供であるDocumentFragmentのすべてによって置き換えられ,同じ順番で挿入される。newChildがすでに木に存在する場合には,最初にそれが取り除かれる。
パラメタ
NodenewChild
子リストの中に置く新しいノード。
NodeoldChild
リストの中の置き換えられるノード。
返却値

Node  

置き換えられたノード。

例外

DOMException  

HIERARCHY_REQUEST_ERR: このノードがnewChildノードの型の子供を許さない型である場合,又は,置かれるノードがこのノードの 先祖 の一つである場合に,挙げられる。

WRONG_DOCUMENT_ERR: このノードを生成した文書とは異なる文書からnewChildが生成された場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: このノード又は新しいノードの親が読取り専用である場合に,挙げられる。

NOT_FOUND_ERR: oldChildがこのノードの子ではない場合に,挙げられる。

インタフェース NodeList

NodeListインタフェースは,ノードの順序付きの集まりの抽象化を,この集まりの実装方法の定義又は制約なしに,提供する。DOMにおけるNodeListオブジェクトは, 活性化している

NodeListの中の項目は,0から始まる整数のインデクスを通してアクセス可能とする。


IDL定義
interface NodeList {
  Node               item(in unsigned long index);
  readonly attribute unsigned long    length;
};

属性
unsigned longlength,読取り専用
リストの中のノードの数。有効な子ノードのインデクスの範囲は,0〜length-1(0及びlength-1を含む)とする。
メソッド
item
集まりの中のindex番目の項目を返す。indexがリストの中のノードの数に等しい又は大きい場合には,nullを返す。
パラメタ
unsigned longindex
集まりへのインデクス。
返却値

Node  

NodeListの中のindex番目に位置するノード,又は有効なインデクスではない場合には,nullとする。

例外なし
インタフェース NamedNodeMap

NamedNodeMapインタフェースを実装するオブジェクトは,名前によってアクセス可能なノードの集まりを表現するために使用する。NamedNodeMapは,NodeListからは継承されないことに注意すること。すなわち,NamedNodeMapsは,特定の順序で維持されない。NamedNodeMapを実装するオブジェクトの中に含まれるオブジェクトは,順序を表すインデクスによってアクセスしてもよいが,これは,NamedNodeMapの内容を数える場合に都合がよいというだけであって,DOMがこれらのノードに順序を指定することを意味するわけではない。

DOMのNamedNodeMapオブジェクトは, 活性化している


IDL定義
interface NamedNodeMap {
  Node               getNamedItem(in DOMString name);
  Node               setNamedItem(in Node arg)
                                        raises(DOMException);
  Node               removeNamedItem(in DOMString name)
                                        raises(DOMException);
  Node               item(in unsigned long index);
  readonly attribute unsigned long    length;
  // Introduced in DOM Level 2:
  Node               getNamedItemNS(in DOMString namespaceURI, 
                                    in DOMString localName);
  // Introduced in DOM Level 2:
  Node               setNamedItemNS(in Node arg)
                                        raises(DOMException);
  // Introduced in DOM Level 2:
  Node               removeNamedItemNS(in DOMString namespaceURI, 
                                       in DOMString localName)
                                        raises(DOMException);
};

属性
unsigned longlength,読取り専用
このNamedNodeMapの中のノードの数。有効な子ノードのインデクスの範囲は,0length-1(0及びlength-1を含む)とする。
メソッド
getNamedItem
名前によって指定されたノードを取り出す。
パラメタ
DOMStringname
取り出すノードのnodeName
返却値

Node  

指定されたnodeNameをもつ(あらゆる型の)Node,又はこのNamedNodeMapの中でノードが識別されない場合には,null

例外なし
getNamedItemNSDOM水準2で導入
局所名及び名前空間URIによって指定されたノードを取り出す。HTML専用のDOM実装は,このメソッドを実装する必要はない。
パラメタ
DOMStringnamespaceURI
取り出すノードの 名前空間URI
DOMStringlocalName
取り出すノードの 局所名
返却値

Node  

指定された局所名及び名前空間URIをもつ(あらゆる型の)Node,又はこのNamedNodeMapの中でノードが識別されない場合には,null

例外なし
item
NamedNodeMapの中のindex番目の項目を返す。indexが,このNamedNodeMapのノードの数と等しい又は大きい場合には,nullを返す。
パラメタ
unsigned longindex
このNamedNodeMapへのインデクス。
返却値

Node  

このNamedNodeMapの中のindex番目の位置にあるノード,又はそれが有効なインデクスではない場合には,null

例外なし
removeNamedItem
名前によって指定されるノードを取り除く。このNamedNodeMapが要素に添付された属性を含む場合,取り除かれた属性がデフォルト値をもつことが分かっているならば,直ちに,対応する名前空間URI,局所名,及び適用可能な場合には接頭辞とともに,そのデフォルト値を含む属性が出現する。
パラメタ
DOMStringname
取り除くノードのnodeName
返却値

Node  

与えられた名前をもつノードが存在する場合,このNamedNodeMapから取り除かれたノード。

例外

DOMException  

NOT_FOUND_ERR: nameという名前のノードが,このNamedNodeMapの中に存在しない場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: このNamedNodeMapが読取り専用の場合に,挙げられる。

removeNamedItemNSDOM水準2で導入
局所名及び名前空間URIによって指定されるノードを取り除く。このNamedNodeMapが要素に添付された属性を含む場合,Nodeインタフェースのattributes属性によって返されるように,取り除かれた属性は,デフォルト値をもつと分かっていてもよい。その場合,直ちに,対応する名前空間URI,局所名,及び適用可能な場合には接頭辞とともに,そのデフォルト値を含む属性が出現する。
HTML専用のDOM実装は,このメソッドを実装する必要はない。
パラメタ
DOMStringnamespaceURI
取り除くノードの 名前空間URI
DOMStringlocalName
取り除くノードの 局所名
返却値

Node  

与えられた局所名及び名前空間URIをもつノードが存在する場合,このNamedNodeMapから取り除かれたノード。

例外

DOMException  

NOT_FOUND_ERR: 指定されたnamespaceURI及びlocalNameをもつノードがこのNamedNodeMapの中に存在しない場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: このNamedNodeMapが読取り専用の場合に,挙げられる。

setNamedItem
ノードのnodeName属性を使用してそのノードを追加する。その名前をもつノードが既にこのNamedNodeMapの中に存在する場合,新しいノードによって置き換えられる。
nodeName属性は,ノードを記憶しなければならないときに名前を引き出すために使用するので,ある型("特別な"文字列値をもつ型)の複数のノードは,名前が衝突するので,記憶できない。これは,ノードに別名を許すよりも望ましいと考えられる。
パラメタ
Nodearg
このNamedNodeMapに記憶するノード。ノードは,その後,nodeName属性の値を使用してアクセス可能になる。
返却値

Node  

新しいNodeが既存のノードを置き換える場合には,その置き換えられたNodeを返す。そうでない場合には,nullを返す。

例外

DOMException  

WRONG_DOCUMENT_ERR: このNamedNodeMapを生成した文書とは異なる文書からargが生成された場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: このNamedNodeMapが読取り専用の場合に,挙げられる。

INUSE_ATTRIBUTE_ERR: argが,既に他のElementオブジェクトの属性であるAttrとなっている場合に,挙げられる。DOM利用者は,他の要素で再利用するためには,明示的にAttrノードのクローンを作らなければならない。

setNamedItemNSDOM水準2で導入
setNamedItemNS introduced in DOM Level 2
ノードのnamespaceURI及びlocalNameを使用してそのノードを追加する。その名前空間URI及び局所名をもつノードが既にこのNamedNodeMapの中に存在する場合には,新しいもので置き換える。
HTML専用のDOM実装は,このメソッドを実装する必要はない。
Adds a node using its namespaceURI and localName. If a node with that namespace URI and that local name is already present in this map, it is replaced by the new one.
HTML-only DOM implementations do not need to implement this method.
パラメタ
Parameters
Nodearg
arg of type Node
このNamedNodeMapに記憶するノード。ノードは,その後,namespaceURI属性及びlocalName属性の値を使用してアクセス可能になる。
A node to store in this map. The node will later be accessible using the value of its namespaceURI and localName attributes.
返却値
Return Value

Node  

新しいNodeが既存のノードを置き換える場合には,その置き換えられたNodeを返す。そうでない場合には,nullを返す。

If the new Node replaces an existing node the replaced Node is returned, otherwise null is returned.

例外
Exceptions

DOMException  

WRONG_DOCUMENT_ERR: このNamedNodeMapを生成した文書とは異なる文書からargが生成された場合に,挙げられる。

WRONG_DOCUMENT_ERR: Raised if arg was created from a different document than the one that created this map.

NO_MODIFICATION_ALLOWED_ERR: このNamedNodeMapが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.

INUSE_ATTRIBUTE_ERR: argが,既に他のElementオブジェクトの属性であるAttrとなっている場合に,挙げられる。DOM利用者は,他の要素の中でそれらを再利用するためには,明示的にAttrのクローンを作らなければならない。

INUSE_ATTRIBUTE_ERR: Raised if arg is an Attr that is already an attribute of another Element object. The DOM user must explicitly clone Attr nodes to re-use them in other elements.

インタフェース CharacterData
Interface CharacterData

CharacterDataインタフェースは,DOMの文字データにアクセスするための属性及びメソッドの集合を用いて,Nodeを拡張する。明確化のために,この集合を,これら属性及びメソッドを使用する各オブジェクトにおいてではなく,ここで定義する。Textなどは,CharacterDataからインタフェースを継承するが,DOMオブジェクトは,CharacterDataに直接には対応しない。このインタフェースのすべてのoffsetは,0から開始する。

The CharacterData interface extends Node with a set of attributes and methods for accessing character data in the DOM. For clarity this set is defined here rather than on each object that uses these attributes and methods. No DOM objects correspond directly to CharacterData, though Text and others do inherit the interface from it. All offsets in this interface start from 0.

DOMStringインタフェースで示すとおり,DOMにおけるテキスト文字列は,UTF-16で,すなわち,16ビット単位の列として,表現される。以下では,CharacterDataに関するインデクス付けが16ビット単位で行われることを示す必要がある場合にはいつでも,用語 16ビット単位 を使用する。

As explained in the DOMString interface, text strings in the DOM are represented in UTF-16, i.e. as a sequence of 16-bit units. In the following, the term 16-bit units is used whenever necessary to indicate that indexing on CharacterData is done in 16-bit units.


IDL定義
IDL Definition
interface CharacterData : Node {
           attribute DOMString        data;
                                        // raises(DOMException) on setting
                                        // raises(DOMException) on retrieval

  readonly attribute unsigned long    length;
  DOMString          substringData(in unsigned long offset, 
                                   in unsigned long count)
                                        raises(DOMException);
  void               appendData(in DOMString arg)
                                        raises(DOMException);
  void               insertData(in unsigned long offset, 
                                in DOMString arg)
                                        raises(DOMException);
  void               deleteData(in unsigned long offset, 
                                in unsigned long count)
                                        raises(DOMException);
  void               replaceData(in unsigned long offset, 
                                 in unsigned long count, 
                                 in DOMString arg)
                                        raises(DOMException);
};

属性
Attributes
DOMStringdata
data of type DOMString
このインタフェースを実装するノードの文字データ。DOM実装は,CharacterDataノードに記憶されてもよいデータの総量に何らかの限界を課さなくともよい。しかし,実装の限界を示すことで,ノードのデータの全体が一つのDOMStringには入らないかもしれないということを意味してもよい。その場合,利用者は,適切な大きさの断片でデータを取り出すために,substringDataを呼び出してもよい。
The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a CharacterData node. However, implementation limits may mean that the entirety of a node's data may not fit into a single DOMString. In such cases, the user may call substringData to retrieve the data in appropriately sized pieces.
設定に関する例外
Exceptions on setting

DOMException  

NO_MODIFICATION_ALLOWED_ERR: ノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.

取出しに関する例外
Exceptions on retrieval

DOMException  

DOMSTRING_SIZE_ERR: 実装プラットフォーム上のDOMString変数に入るよりも多くの文字を返す場合に,挙げられる。

DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a DOMString variable on the implementation platform.

unsigned longlength,読取り専用
length of type unsigned long, readonly
data及び次に示すメソッドのsubstringDataを通じて利用可能な 16ビット単位 での(文字データの)数。これは値0を取ってもよい。すなわち,CharacterDataノードが空であってもよい。
The number of 16-bit units that are available through data and the substringData method below. This may have the value zero, i.e., CharacterData nodes may be empty.
メソッド
Methods
appendData
ノードの文字データの最後に文字列を付加する。成功した場合には,dataは,元のdataと指定されたDOMStringとの連結へのアクセスを提供する。
Append the string to the end of the character data of the node. Upon success, data provides access to the concatenation of data and the DOMString specified.
パラメタ
Parameters
DOMStringarg
arg of type DOMString
付加するDOMString
The DOMString to append.
例外
Exceptions

DOMException  

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

返却値なし
No Return Value
deleteData
ノードから 16ビット単位 の範囲を取り除く。成功した場合には,data及びlengthに,その変更が反映される。
Remove a range of 16-bit units from the node. Upon success, data and length reflect the change.
パラメタ
Parameters
unsigned longoffset
offset of type unsigned long
取除きを開始する位置を示すオフセット。
The offset from which to start removing.
unsigned longcount
count of type unsigned long
削除する16ビット単位の数。offset及びcountの合計がlengthを超える場合には,offsetからデータの最後までのすべての16ビット単位が削除される。
The number of 16-bit units to delete. If the sum of offset and count exceeds length then all 16-bit units from offset to the end of the data are deleted.
例外
Exceptions

DOMException  

INDEX_SIZE_ERR: 指定されたoffsetが負数若しくはdataの中の16ビット単位の数よりも大きい場合,又は指定されたcountが負数の場合に,挙げられる。

INDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of 16-bit units in data, or if the specified count is negative.

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

返却値なし
No Return Value
insertData
指定された 16ビット単位 のオフセットの位置で文字列を挿入する。
Insert a string at the specified 16-bit unit offset.
パラメタ
Parameters
unsigned longoffset
offset of type unsigned long
挿入する位置のオフセット。
?The character offset at which to insert.
DOMStringarg
arg of type DOMString
挿入するDOMString
The DOMString to insert.
例外
Exceptions

DOMException  

INDEX_SIZE_ERR: 指定されたoffsetが負数又はdataの中の16ビット単位の数よりも大きい場合に,挙げられる。

INDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of 16-bit units in data.

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

返却値なし
No Return Value
replaceData
指定された 16ビット単位 オフセットの位置で開始する文字群を指定された文字列で置き換える。
Replace the characters starting at the specified 16-bit unit offset with the specified string.
パラメタ
Parameters
unsigned longoffset
offset of type unsigned long
置換えを開始する位置を示すオフセット。
The offset from which to start replacing.
unsigned longcount
count of type unsigned long
置き換える16ビット単位の数。offset及びcountの和がlengthを超える場合,データの最後までのすべての16ビット単位を置き換える。すなわち,その効果は,同じ範囲でremoveメソッドを呼び出しそれに続けてappendメソッドを起動することと同じとする。
The number of 16-bit units to replace. If the sum of offset and count exceeds length, then all 16-bit units to the end of the data are replaced; (i.e., the effect is the same as a remove method call with the same range, followed by an append method invocation).
DOMStringarg
arg of type DOMString
置き換えられなければならない範囲を埋めるDOMString
The DOMString with which the range must be replaced.
例外
Exceptions

DOMException  

INDEX_SIZE_ERR: 指定されたoffsetが負数若しくはdataの中の16ビット単位の数よりも大きい場合,又は指定されたcountが負数の場合に,挙げられる。

INDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of 16-bit units in data, or if the specified count is negative.

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

返却値なし
No Return Value
substringData
ノードからデータの範囲を抽出する。
Extracts a range of data from the node.
パラメタ
Parameters
unsigned longoffset
offset of type unsigned long
抽出する部分文字列の開始オフセット。
Start offset of substring to extract.
unsigned longcount
count of type unsigned long
抽出する16ビット単位の数。
The number of 16-bit units to extract.
返却値
Return Value

DOMString  

指定された部分文字列。offset及びcountの和がlengthを超える場合には,データの最後までのすべての16ビット単位を返す。

The specified substring. If the sum of offset and count exceeds the length, then all 16-bit units to the end of the data are returned.

例外
Exceptions

DOMException  

INDEX_SIZE_ERR: 指定されたoffsetが負数若しくはdataの中の16ビット単位の数よりも大きい場合,又は指定されたcountが負数の場合に,挙げられる。

INDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of 16-bit units in data, or if the specified count is negative.

DOMSTRING_SIZE_ERR: テキストの指定された範囲がDOMStringに入らない場合に,挙げられる。

DOMSTRING_SIZE_ERR: Raised if the specified range of text does not fit into a DOMString.

インタフェース Attr
Interface Attr

Attrインタフェースは,Elementオブジェクトにおける属性を表現する。通常は,属性に対する可能な値は,文書型定義において定義する。

The Attr interface represents an attribute in an Element object. Typically the allowable values for the attribute are defined in a document type definition.

Attrオブジェクトは,Nodeインタフェースを継承するが,実際にはそれらが記述する要素の子ノードではないので,DOMでは,Attrオブジェクトを文書木の一部とは考えない。そこで,NodeparentNode属性,previousSibling属性及びnextSibling属性は,Attrオブジェクトに対してnull値をもつ。DOMでは,属性は,それが関連する要素とは分離した識別性をもつのではなく要素の特性であるという見方をする。これによって,与えられた型のすべての要素と関連するデフォルト属性としての機能の実装が,より効率的になる。さらに,Attrノードは,DocumentFragmentの直接の子供でなくともよい。しかし,Attrノードは,DocumentFragment内に含まれるElementと関連することができる。結局のところ,DOMの利用者及び実装者は,AttrノードがNodeインタフェースを継承する他のオブジェクトと共通なものをもつが,それらは全く異なってもいるということに注意する必要がある。

Attr objects inherit the Node interface, but since they are not actually child nodes of the element they describe, the DOM does not consider them part of the document tree. Thus, the Node attributes parentNode, previousSibling, and nextSibling have a null value for Attr objects. The DOM takes the view that attributes are properties of elements rather than having a separate identity from the elements they are associated with; this should make it more efficient to implement such features as default attributes associated with all elements of a given type. Furthermore, Attr nodes may not be immediate children of a DocumentFragment. However, they can be associated with Element nodes contained within a DocumentFragment. In short, users and implementors of the DOM need to be aware that Attr nodes have some things in common with other objects inheriting the Node interface, but they also are quite distinct.

属性の実効値は,次のとおりに決定される。この属性が明示的に値を割り当てられた場合には,その値が,属性の実効値となる。そうでない場合であって,この値に対して宣言が存在し,その宣言がデフォルト値を含んでいる場合には,そのデフォルト値が属性の実効値となる。これらいずれでもない場合には,属性は,明示的に追加されるまでは構造モデルのこの要素上には存在しないとする。Attrインスタンス上のnodeValue属性は,属性の値の文字列版を取り出すためにも使用できる。

The attribute's effective value is determined as follows: if this attribute has been explicitly assigned any value, that value is the attribute's effective value; otherwise, if there is a declaration for this attribute, and that declaration includes a default value, then that default value is the attribute's effective value; otherwise, the attribute does not exist on this element in the structure model until it has been explicitly added. Note that the nodeValue attribute on the Attr instance can also be used to retrieve the string version of the attribute's value(s).

属性の値に実体参照が含まれることが可能なXMLでは,Attrノードの子ノードは,(使用される場合には,)Textノード又はEntityReferenceノードのいずれかであってよい。EntityReferenceの記述を参照すること。DOMコアは属性の型を関知しないので,DTD又はスキーマが属性値を トークン化 された型をもつと宣言したとしても,すべての属性値を単純な文字列として扱う。

In XML, where the value of an attribute can contain entity references, the child nodes of the Attr node may be either Text or EntityReference nodes (when these are in use; see the description of EntityReference for discussion). Because the DOM Core is not aware of attribute types, it treats all attribute values as simple strings, even if the DTD or schema declares them as having tokenized types.


IDL定義
IDL Definition
interface Attr : Node {
  readonly attribute DOMString        name;
  readonly attribute boolean          specified;
           attribute DOMString        value;
                                        // raises(DOMException) on setting

  // Introduced in DOM Level 2:
  readonly attribute Element          ownerElement;
};

属性
Attributes
DOMStringname
name of type DOMString, readonly
この属性の名前を返す。
Returns the name of this attribute.
ElementownerElement,読取り専用,DOM水準2で導入
ownerElement of type Element, readonly, introduced in DOM Level 2
この属性に添付されたElementノード,又はこの属性が使用されていない場合にはnull
The Element node this attribute is attached to or null if this attribute is not in use.
booleanspecified,読取り専用
specified of type boolean, readonly
この属性が元の文書で明示的に値を与えられなかった場合には,これはtrueとする。そうでない場合には,falseとする。実装はこの属性に責任があるが利用者にはないことに注意すること。利用者が(結局はデフォルト値と同じ値をもつことになったとしても)属性の値を変更する場合には,specifiedフラッグは,自動的にtrueになる。属性をDTDからのデフォルト値として再指定するためには,利用者は,属性を削除しなければならない。実装は,新しい属性を,falseに設定されたspecified及び(存在する場合には)そのデフォルト値をもつとして,利用可能にする。
If this attribute was explicitly given a value in the original document, this is true; otherwise, it is false. Note that the implementation is in charge of this attribute, not the user. If the user changes the value of the attribute (even if it ends up having the same value as the default value) then the specified flag is automatically flipped to true. To re-specify the attribute as the default value from the DTD, the user must delete the attribute. The implementation will then make a new attribute available with specified set to false and the default value (if one exists).
まとめると,次のとおりになる。
In summary:
  • 属性が文書の中で割り当てられた値をもつ場合,specifiedtrueとし,値はその割り当てられた値とする。
  • 属性が文書の中で割り当てられた値をもたずDTDの中でデフォルト値をもつ場合,specifiedfalseとし,値はDTDの中のデフォルト値とする。
  • 属性が文書の中で割り当てられた値をもたずDTDの中で#IMPLIEDの値をもつ場合,属性は文書の構造モデルには出現しない。
  • ownerElement属性がnullの場合(これは,例えば,ちょうどその時に生成された,又は様々な取除き及びクローン化の操作によってnullに設定されたことによる。),specifiedtrueとする。
  • If the attribute has an assigned value in the document then specified is true, and the value is the assigned value.
  • If the attribute has no assigned value in the document and has a default value in the DTD, then specified is false, and the value is the default value in the DTD.
  • If the attribute has no assigned value in the document and has a value of #IMPLIED in the DTD, then the attribute does not appear in the structure model of the document.
  • If the ownerElement attribute is null (i.e. because it was just created or was set to null by the various removal and cloning operations) specified is true.

DOMStringvalue
value of type DOMString
取出しに関しては,属性の値は,文字列として返される。文字参照及び一般的な実体参照は,それらの値に置き換えられる。Elementインタフェース上のメソッドgetAttributeも参照すること。
On retrieval, the value of the attribute is returned as a string. Character and general entity references are replaced with their values. See also the method getAttribute on the Element interface.
設定に関しては,これは,文字列の構文解析されない内容をもつTextノードを生成する。すなわち,XMLプロセサがマーク付けとして取り扱うあらゆる文字を,その代わりに,リテラルテキストとして取り扱う。Elementインタフェース上のメソッドsetAttributeも参照すること。
On setting, this creates a Text node with the unparsed contents of the string. I.e. any characters that an XML processor would recognize as markup are instead treated as literal text. See also the method setAttribute on the Element interface.
設定に関する例外
Exceptions on setting

DOMException  

NO_MODIFICATION_ALLOWED_ERR: ノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.

インタフェース Element
Interface Element

Elementインタフェースは,HTML文書又はXML文書における 要素 を表現する。要素は,それに関連する属性をもってもよい。ElementインタフェースはNodeから継承されるので,一般的なNodeインタフェースの属性であるattributesを,一つの要素に対するすべての属性の集合を取り出すために使用してもよい。Elementインタフェースには,Attrオブジェクト又は属性のいずれかを名前によって取り出すためのメソッドが存在する。属性値に実体参照が含まれてもよいXMLでは,属性値を表現する恐らく幾分複雑な部分木を調べるために,Attrオブジェクトを取り出すことが望ましい。一方,すべての属性が単純な文字列値をもつHTMLでは,属性値を直接にアクセスするメソッドを, 簡便性 として安全に使用できる。

The Element interface represents an element in an HTML or XML document. Elements may have attributes associated with them; since the Element interface inherits from Node, the generic Node interface attribute attributes may be used to retrieve the set of all attributes for an element. There are methods on the Element interface to retrieve either an Attr object by name or an attribute value by name. In XML, where an attribute value may contain entity references, an Attr object should be retrieved to examine the possibly fairly complex sub-tree representing the attribute value. On the other hand, in HTML, where all attributes have simple string values, methods to directly access an attribute value can safely be used as a convenience.

備考  DOM水準2では,メソッドnormalizeは,それが移動された場合には,Nodeインタフェースから継承される。

Note: In DOM Level 2, the method normalize is inherited from the Node interface where it was moved.


IDL定義
IDL Definition
interface Element : Node {
  readonly attribute DOMString        tagName;
  DOMString          getAttribute(in DOMString name);
  void               setAttribute(in DOMString name, 
                                  in DOMString value)
                                        raises(DOMException);
  void               removeAttribute(in DOMString name)
                                        raises(DOMException);
  Attr               getAttributeNode(in DOMString name);
  Attr               setAttributeNode(in Attr newAttr)
                                        raises(DOMException);
  Attr               removeAttributeNode(in Attr oldAttr)
                                        raises(DOMException);
  NodeList           getElementsByTagName(in DOMString name);
  // Introduced in DOM Level 2:
  DOMString          getAttributeNS(in DOMString namespaceURI, 
                                    in DOMString localName);
  // Introduced in DOM Level 2:
  void               setAttributeNS(in DOMString namespaceURI, 
                                    in DOMString qualifiedName, 
                                    in DOMString value)
                                        raises(DOMException);
  // Introduced in DOM Level 2:
  void               removeAttributeNS(in DOMString namespaceURI, 
                                       in DOMString localName)
                                        raises(DOMException);
  // Introduced in DOM Level 2:
  Attr               getAttributeNodeNS(in DOMString namespaceURI, 
                                        in DOMString localName);
  // Introduced in DOM Level 2:
  Attr               setAttributeNodeNS(in Attr newAttr)
                                        raises(DOMException);
  // Introduced in DOM Level 2:
  NodeList           getElementsByTagNameNS(in DOMString namespaceURI, 
                                            in DOMString localName);
  // Introduced in DOM Level 2:
  boolean            hasAttribute(in DOMString name);
  // Introduced in DOM Level 2:
  boolean            hasAttributeNS(in DOMString namespaceURI, 
                                    in DOMString localName);
};

属性
Attributes
DOMStringtagName,読取り専用
tagName of type DOMString, readonly
要素の名前。例を次に示す。
The name of the element. For example, in:
<elementExample id="demo"> 
        ... 
</elementExample> ,
tagNameは,値"elementExample"をもつ。これは,XMLでは,DOMのすべての操作と同様に大文字・小文字を保存することに注意すること。HTMLのDOMでは,元になるHTML文書の大文字・小文字とは関係なく,正準的な大文字形式で,HTML要素のtagNameを返す。
tagName has the value "elementExample". Note that this is case-preserving in XML, as are all of the operations of the DOM. The HTML DOM returns the tagName of an HTML element in the canonical uppercase form, regardless of the case in the source HTML document.

メソッド
Methods
getAttribute
名前によって属性値を取り出す
Retrieves an attribute value by name.
パラメタ
Parameters
DOMStringname
name of type DOMString
取り出す属性の名前。
The name of the attribute to retrieve.
返却値
Return Value

DOMString  

文字列としてのAttr値,又はその属性が指定された値若しくはデフォルト値をもたない場合には空文字列。

The Attr value as a string, or the empty string if that attribute does not have a specified or default value.

例外なし
No Exceptions
getAttributeNSDOM水準2で導入
getAttributeNS introduced in DOM Level 2
局所名及び名前空間URIによって属性値を取り出す。HTML専用DOM実装は,このメソッドを実装する必要はない。
Retrieves an attribute value by local name and namespace URI. HTML-only DOM implementations do not need to implement this method.
パラメタ
Parameters
DOMStringnamespaceURI
namespaceURI of type DOMString
取り出す属性の 名前空間URI
The namespace URI of the attribute to retrieve.
DOMStringlocalName
localName of type DOMString
取り出す属性の 局所名
The local name of the attribute to retrieve.
返却値
Return Value

DOMString  

文字列としてのAttr値,又はその属性が指定された値若しくはデフォルト値をもたない場合には空文字列。

The Attr value as a string, or the empty string if that attribute does not have a specified or default value.

例外なし
No Exceptions
getAttributeNode
名前によって属性ノードを取り出す
属性ノードを修飾された名前及び名前空間URIによって取り出す場合には,getAttributeNodeNSメソッドを使用すること。
Retrieves an attribute node by name.
To retrieve an attribute node by qualified name and namespace URI, use the getAttributeNodeNS method.
パラメタ
Parameters
DOMStringname
name of type DOMString
取り出す属性の名前(nodeName)。
The name (nodeName) of the attribute to retrieve.
返却値
Return Value

Attr  

指定された名前(nodeName)をもつAttrノード,又はそれら属性が存在しない場合にはnull

The Attr node with the specified name (nodeName) or null if there is no such attribute.

例外なし
No Exceptions
getAttributeNodeNSDOM水準2で導入
getAttributeNodeNS introduced in DOM Level 2
局所名及び名前空間URIによってAttrノードを取り出す。HTML専用DOM実装は,このメソッドを実装する必要はない。
Retrieves an Attr node by local name and namespace URI. HTML-only DOM implementations do not need to implement this method.
Parameters
DOMStringnamespaceURI
namespaceURI of type DOMString
取り出す属性の 名前空間URI
The namespace URI of the attribute to retrieve.
DOMStringlocalName
localName of type DOMString
取り出す属性の 局所名
The local name of the attribute to retrieve.
返却値
Return Value

Attr  

指定された属性の局所名及び名前空間URIをもつAttrノード,又はそれら属性が存在しない場合にはnull

The Attr node with the specified attribute local name and namespace URI or null if there is no such attribute.

例外なし
No Exceptions
getElementsByTagName
与えられたタグ名をもつすべての 子孫 ElementNodeListを,このElement木をあらかじめ決められた順序でたどって出会う順番に返す。
Returns a NodeList of all descendant Elements with a given tag name, in the order in which they are encountered in a preorder traversal of this Element tree.
パラメタ
Parameters
DOMStringname
name of type DOMString
一致させるタグの名前。特殊な値"*"は,すべてのタグと一致する。
The name of the tag to match on. The special value "*" matches all tags.
返却値
Return Value

NodeList  

一致するElementノードのリスト。

A list of matching Element nodes.

例外なし
No Exceptions
getElementsByTagNameNSDOM水準2で導入
getElementsByTagNameNS introduced in DOM Level 2
与えられた局所名及び名前空間URIをもつ 子孫 ElementNodeListを,このElement木をあらかじめ決められた順番でたどって出会う順番に返す。
Returns a NodeList of all the descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Element tree.
HTML専用のDOM実装は,このメソッドを実装する必要はない。
HTML-only DOM implementations do not need to implement this method.
パラメタ
Parameters
DOMStringnamespaceURI
namespaceURI of type DOMString
一致させる要素の 名前空間URI。特殊な値"*"は,すべての名前空間と一致する。
The namespace URI of the elements to match on. The special value "*" matches all namespaces.
DOMStringlocalName
localName of type DOMString
一致させる要素の 局所名。特殊な値"*"は,すべての局所名と一致する。
The local name of the elements to match on. The special value "*" matches all local names.
返却値
Return Value

NodeList  

すべての一致したElementsを含む新しいNodeListオブジェクト。

A new NodeList object containing all the matched Elements.

例外なし
No Exceptions
hasAttributeDOM水準2で導入
hasAttribute introduced in DOM Level 2
与えられた名前をもつ属性がこの要素上で指定されている又はデフォルト値をもつ場合に,trueを返す。そうでない場合には,falseを返す。
Returns true when an attribute with a given name is specified on this element or has a default value, false otherwise.
パラメタ
Parameters
DOMStringname
name of type DOMString
探す属性の名前。
The name of the attribute to look for.
返却値
Return Value

boolean  

与えられた名前をもつ属性がこの要素上で指定されている又はデフォルト値をもつ場合には,trueを返す。そうでない場合には,falseを返す。

true if an attribute with the given name is specified on this element or has a default value, false otherwise.

例外なし
No Exceptions
hasAttributeNSDOM水準2で導入
hasAttributeNS introduced in DOM Level 2
与えられた局所名及び名前空間URIをもつ属性がこの要素上で指定されている又はデフォルト値をもつ場合に,trueを返す。そうでない場合には,falseを返す。HTML専用のDOM実装は,このメソッドを実装する必要はない。
Returns true when an attribute with a given local name and namespace URI is specified on this element or has a default value, false otherwise. HTML-only DOM implementations do not need to implement this method.
パラメタ
Parameters
DOMStringnamespaceURI
namespaceURI of type DOMString
探す属性の 名前空間URI
The namespace URI of the attribute to look for.
DOMStringlocalName
localName of type DOMString
探す属性の 局所名
The local name of the attribute to look for.
返却値
Return Value

boolean  

与えられた局所前及び名前空間URIをもつ属性がこの要素上で指定されている又はデフォルト値をもつ場合には,trueを返す。そうでない場合には,falseを返す。

true if an attribute with the given local name and namespace URI is specified or has a default value on this element, false otherwise.

例外なし
No Exceptions
removeAttribute
名前を使って属性を取り除く。取り除かれた属性がデフォルト値をもつことが知られている場合には,対応する名前空間URI,局所名,及び適用可能な場合には接頭辞とともにそのデフォルト値を含むその属性が,直ちに出現する。
局所名及び名前空間URIによって属性を取り除くためには,removeAttributeNSメソッドを使用すること。
Removes an attribute by name. If the removed attribute is known to have a default value, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix when applicable.
To remove an attribute by local name and namespace URI, use the removeAttributeNS method.
パラメタ
Parameters
DOMStringname
name of type DOMString
取り除く属性の名前。
The name of the attribute to remove.
例外
Exceptions

DOMException  

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

返却値なし
No Return Value
removeAttributeNSDOM水準2で導入
removeAttributeNS introduced in DOM Level 2
局所名及び名前空間URIによって属性を取り除く。取り除かれた属性がデフォルト値をもつ場合には,その属性は,直ちに(デフォルト値のものに)置き換えられる。置き換える属性は,元の接頭辞だけでなく同じ名前空間URI及び局所名をもつ。
HTML専用のDOM実装は,このメソッドを実装する必要はない。
Removes an attribute by local name and namespace URI. If the removed attribute has a default value it is immediately replaced. The replacing attribute has the same namespace URI and local name, as well as the original prefix.
HTML-only DOM implementations do not need to implement this method.
パラメタ
Parameters
DOMStringnamespaceURI
namespaceURI of type DOMString
取り除く属性の 名前空間URI
The namespace URI of the attribute to remove.
DOMStringlocalName
localName of type DOMString
取り除く属性の 局所名
The local name of the attribute to remove.
例外
Exceptions

DOMException  

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

返却値なし
No Return Value
removeAttributeNode
指定された属性ノードを取り除く。取り除かれたAttrがデフォルト値をもつ場合には,その属性は直ちに置き換えられる。置き換える属性は,適用可能な場合には,元の接頭辞だけでなく,同じ名前空間URI及び局所名をもつ。
Removes the specified attribute node. If the removed Attr has a default value it is immediately replaced. The replacing attribute has the same namespace URI and local name, as well as the original prefix, when applicable.
パラメタ
Parameters
AttroldAttr
oldAttr of type Attr
属性のリストから取り除くAttrノード。
The Attr node to remove from the attribute list.
返却値
Return Value

Attr  

取り除かれたAttrノード。

The Attr node that was removed.

例外
Exceptions

DOMException  

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

NOT_FOUND_ERR: oldAttrが要素の属性でない場合に,挙げられる。

NOT_FOUND_ERR: Raised if oldAttr is not an attribute of the element.

setAttribute
新しい属性を追加する。その名前をもつ属性が要素の中に既に存在する場合には,その値はvalueパラメタのものに変更される。この値は,単純な文字列とする。すなわち,設定される際に構文解析されない。そのために,(実体参照として認識される構文などの)マーク付けは,リテラルテキストとして取り扱われることになり,書き出される場合には,実装によって適切に別扱いされる必要がある。実体参照を含む属性値を割り当てるためには,利用者は,AttrノードをTextノード及びEntityReferenceノードを追加して生成し,適切な部分木を構築し,その値を属性の値として割り当てるためにsetAttributeNodeを使用しなければならない。
修飾された名前及び名前空間URIをもつ属性を設定するためには,setAttributeNSメソッドを使用すること。
Adds a new attribute. If an attribute with that name is already present in the element, its value is changed to be that of the value parameter. This value is a simple string; it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an Attr node plus any Text and EntityReference nodes, build the appropriate subtree, and use setAttributeNode to assign it as the value of an attribute.
To set an attribute with a qualified name and namespace URI, use the setAttributeNS method.
パラメタ
Parameters
DOMStringname
name of type DOMString
生成又は変更するための属性の名前。
The name of the attribute to create or alter.
DOMStringvalue
value of type DOMString
文字列の形式での設定する値。
Value to set in string form.
例外
Exceptions

DOMException  

INVALID_CHARACTER_ERR: 指定された名前が不正な文字を含んでいる場合に,挙げられる。

INVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

返却値なし
No Return Value
setAttributeNSDOM水準2で導入
setAttributeNS introduced in DOM Level 2
新しい属性を追加する。同じ局所名及び名前空間URIをもつ属性が要素上に既に存在する場合には,その接頭辞はqualifiedNameの接頭辞部分に変更され,その値はvalueパラメタに変更される。この値は,単純な文字列とする。すなわち,それは設定する際に構文解析されない。そのために,(実体参照として認識される構文などの)マーク付けは,リテラルテキストとして取り扱われることになり,書き出される場合には,実装によって適切に別扱いする必要がある。実体参照を含む属性値を割り当てるためには,利用者は,AttrノードをTextノード及びEntityReferenceノードを追加して生成し,適切な部分木を構築し,その値を属性の値として割り当てるためにsetAttributeNodeNS又はsetAttributeNodeを使用しなければならない。
HTML専用のDOM実装は,このメソッドを実装する必要はない。
Adds a new attribute. If an attribute with the same local name and namespace URI is already present on the element, its prefix is changed to be the prefix part of the qualifiedName, and its value is changed to be the value parameter. This value is a simple string; it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an Attr node plus any Text and EntityReference nodes, build the appropriate subtree, and use setAttributeNodeNS or setAttributeNode to assign it as the value of an attribute.
HTML-only DOM implementations do not need to implement this method.
パラメタ
Parameters
DOMStringnamespaceURI
namespaceURI of type DOMString
生成又は変更する属性の 名前空間URI
The namespace URI of the attribute to create or alter.
DOMStringqualifiedName
qualifiedName of type DOMString
生成又は変更する属性の 修飾された名前
The qualified name of the attribute to create or alter.
DOMStringvalue
value of type DOMString
文字列の形式での設定する値。
The value to set in string form.
例外
Exceptions

DOMException  

INVALID_CHARACTER_ERR: 指定された修飾された名前が不正な文字を含んでいる場合に,挙げられる。

INVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

NAMESPACE_ERR: qualifiedNameの形式が正しくない場合,qualifiedNameが接頭辞をもちnamespaceURInullの場合,qualifiedNameが"xml"という接頭辞をもちnamespaceURIが"http://www.w3.org/XML/1998/namespace"とは異なる場合,又はqualifiedNameが"xmlns"であってnamespaceURIが"http://www.w3.org/2000/xmlns/"とは異なる場合に,挙げられる。

NAMESPACE_ERR: Raised if the qualifiedName is malformed, if the qualifiedName has a prefix and the namespaceURI is null, if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from "http://www.w3.org/XML/1998/namespace", or if the qualifiedName is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/".

返却値なし
No Return Value
setAttributeNode
新しい属性ノードを追加する。その名前(nodeName)をもつ属性が要素の中に既に存在する場合には,新しいものによって置き換えられる。
修飾された名前及び名前空間URIをもつ新しい属性ノードを追加するためには,setAttributeNodeNSメソッドを使用すること。
Adds a new attribute node. If an attribute with that name (nodeName) is already present in the element, it is replaced by the new one.
To add a new attribute node with a qualified name and namespace URI, use the setAttributeNodeNS method.
パラメタ
Parameters
AttrnewAttr
newAttr of type Attr
属性のリストに追加するAttrノード。
The Attr node to add to the attribute list.
返却値
Return Value

Attr  

newAttr属性が既存の属性を置き換える場合には,置き換えられたAttrノードを返す。そうでない場合には,nullを返す。

If the newAttr attribute replaces an existing attribute, the replaced Attr node is returned, otherwise null is returned.

例外
Exceptions

DOMException  

WRONG_DOCUMENT_ERR: newAttrがその要素を生成した文書以外の異なる文書から生成された場合に,挙げられる。

WRONG_DOCUMENT_ERR: Raised if newAttr was created from a different document than the one that created the element.

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

INUSE_ATTRIBUTE_ERR: newAttrが既に他のElementオブジェクトの属性となっている場合に,挙げられる。DOM利用者は,他の文書の中のAttrノードを再使用するためには,明示的にそれらのAttrノードのクローンを作らなければならない。

INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an attribute of another Element object. The DOM user must explicitly clone Attr nodes to re-use them in other elements.

setAttributeNodeNSDOM水準2で導入
setAttributeNodeNS introduced in DOM Level 2
新しい属性を追加する。その局所名及びその名前空間URIをもつ属性が要素の中に既に存在する場合には,新しいもので置き換えられる。
HTML専用のDOM実装は,このメソッドを実装する必要はない。
Adds a new attribute. If an attribute with that local name and that namespace URI is already present in the element, it is replaced by the new one.
HTML-only DOM implementations do not need to implement this method.
パラメタ
Parameters
AttrnewAttr
newAttr of type Attr
属性のリストに追加するAttrノード。
The Attr node to add to the attribute list.
返却値
Return Value

Attr  

newAttr属性が同じ 局所名 及び 名前空間URI をもつ既存の属性を置き換える場合には,置き換えられたAttrを返す。そうでない場合には,nullを返す。

If the newAttr attribute replaces an existing attribute with the same local name and namespace URI, the replaced Attr node is returned, otherwise null is returned.

例外
Exceptions

DOMException  

WRONG_DOCUMENT_ERR: newAttrが要素を生成した文書以外の異なる文書から生成された場合に,挙げられる。

WRONG_DOCUMENT_ERR: Raised if newAttr was created from a different document than the one that created the element.

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

INUSE_ATTRIBUTE_ERR: newAttrが既に他のElementオブジェクトの属性となっている場合に,挙げられる。DOM利用者は,他の文書の中のAttrノードを再使用するためには,明示的にそれらのAttrノードのクローンを作らなければならない。

INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an attribute of another Element object. The DOM user must explicitly clone Attr nodes to re-use them in other elements.

インタフェース Text
Interface Text

Textインタフェースは,CharacterDataから継承され,Element又はAttrの(XMLでは 文字データ という)テキストデータを表現する。要素の内容の内部にマーク付けが存在しない場合には,テキストは,その要素の唯一の子であってTextインタフェースを実装する単一のオブジェクトの中に含まれる。マーク付けが存在する場合には,その要素の子供のリストを形成する,(要素,注釈などの) 情報項目 のノード及びTextノードに構文解析される。

The Text interface inherits from CharacterData and represents the textual content (termed character data in XML) of an Element or Attr. If there is no markup inside an element's content, the text is contained in a single object implementing the Text interface that is the only child of the element. If there is markup, it is parsed into the information items (elements, comments, etc.) and Text nodes that form the list of children of the element.

文書が最初にDOM経由で利用可能とされるとき,テキストの各ブロックに対してただ一つのTextノードが存在する。利用者は,マーク付けを介在させることなしに,与えられた要素の内容を表現するTextノードを隣接して生成してよいが,XML又はHTMLではこれらノード間での分離を表現する方法がないこと気付いていることが望ましい。それら分離は,DOMによる編集操作中に(一般には)存続しない。Node上のnormalize()メソッドは,それら隣接するTextオブジェクトを,テキストの各ブロックに対して単一のノードに併合する。

When a document is first made available via the DOM, there is only one Text node for each block of text. Users may create adjacent Text nodes that represent the contents of a given element without any intervening markup, but should be aware that there is no way to represent the separations between these nodes in XML or HTML, so they will not (in general) persist between DOM editing sessions. The normalize() method on Node merges any such adjacent Text objects into a single node for each block of text.


IDL定義
IDL Definition
interface Text : CharacterData {
  Text               splitText(in unsigned long offset)
                                        raises(DOMException);
};

メソッド
Methods
splitText
このノードを,指定されたoffsetで二つのノードに分離する。ただし,分離した両方を 兄弟 として木の中で維持する。分離した後では,このノードは,offsetの位置までの内容のすべて含み,offsetの位置及びその後の内容のすべてを含む同じ型の新しいノードが返される。元のノードが親ノードをもっていた場合には,新しいノードは,元のノードの次の 兄弟 として挿入される。offsetがこのノードの長さに等しい場合には,新しいノードはデータをもたない。
Breaks this node into two nodes at the specified offset, keeping both in the tree as siblings. After being split, this node will contain all the content up to the offset point. A new node of the same type, which contains all the content at and after the offset point, is returned. If the original node had a parent node, the new node is inserted as the next sibling of the original node. When the offset is equal to the length of this node, the new node has no data.
パラメタ
Parameters
unsigned longoffset
offset of type unsigned long
分離する位置の 16ビット単位 のオフセット。0から開始する。
The 16-bit unit offset at which to split, starting from 0.
返却値
Return Value

Text  

このノードと同じ型の新しいノード。

The new node, of the same type as this node.

例外
Exceptions

DOMException  

INDEX_SIZE_ERR: 指定されたオフセットが負数又はdataの中の16ビット単位の数よりも大きい場合に,挙げられる。

INDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of 16-bit units in data.

NO_MODIFICATION_ALLOWED_ERR: このノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

インタフェース Comment
Interface Comment

このインタフェースは,CharacterDataから継承され,注釈の内容,すなわち,'<!--'で開始され'-->'で終了されるそれらの間のすべての文字を表現する。これは,XMLにおける注釈の定義だが,実際的にはHTMLにおける注釈の定義にもなることに注意すること。ただし,HTMLツールが完全なSGML注釈の構造を実装していてもよい。

This interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting '<!--' and ending '-->'. Note that this is the definition of a comment in XML, and, in practice, HTML, although some HTML tools may implement the full SGML comment structure.


IDL定義
IDL Definition
interface Comment : CharacterData {
};

1.3. 拡張インタフェース

1.3. Extended Interfaces

1.3で定義するインタフェースは,DOMコア規定の一部を形成するが,HTMLだけを扱うDOM実装では,これらのインタフェースを開示するオブジェクトには決して出会うことがない。そのために,HTML専用のDOM実装[DOM Level 2 HTML]は,これらのインタフェースを実装するオブジェクトをもつ必要はない。

The interfaces defined here form part of the DOM Core specification, but objects that expose these interfaces will never be encountered in a DOM implementation that deals only with HTML. As such, HTML-only DOM implementations [DOM Level 2 HTML] do not need to have objects that implement these interfaces.

1.3で示されるインタフェースは,必須とはしない。DOMアプリケーションは,このモジュールが実装によってサポートされるかどうかを決定するために,DOMImplementationインタフェースのhasFeature(feature, version)メソッドを,パラメタ値を(それぞれ)"XML"及び"2.0"として使用してもよい。このモジュールを完全にサポートするためには,実装は,基礎インタフェースで定義された"コア"機能もサポートしなければならない。この規定における適合性についての追加情報を参照すること。

The interfaces found within this section are not mandatory. A DOM application may use the hasFeature(feature, version) method of the DOMImplementation interface with parameter values "XML" and "2.0" (respectively) to determine whether or not this module is supported by the implementation. In order to fully support this module, an implementation must also support the "Core" feature defined in Fundamental Interfaces. Please refer to additional information about Conformance in this specification.

インタフェース CDATASection
Interface CDATASection

CDATAセクションは,何もしない場合にマーク付けと見なされる文字を含むテキストのブロックを,別扱いするために使用する。CDATAセクションの中で認識される唯一の区切り子は,CDATAセクションを終端する"]]>"という文字列とする。CDATAセクションは,入れ子にはできない。その基本的な目的は,区切り子すべてを別扱いする必要なしに,XML素片などの素材を取り込むためとする。

CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. The only delimiter that is recognized in a CDATA section is the "]]>" string that ends the CDATA section. CDATA sections cannot be nested. Their primary purpose is for including material such as XML fragments, without needing to escape all the delimiters.

TextノードのDOMString属性は,CDATAセクションが含むテキストを保持する。これは,CDATAセクションの外部で別扱いする必要がある文字を含んでも よく,直列化のために選択された文字符号化("charset")に依存して,CDATAセクションの一部として書き出すことが不可能な文字があるかもしれない,ということに注意すること。

The DOMString attribute of the Text node holds the text that is contained by the CDATA section. Note that this may contain characters that need to be escaped outside of CDATA sections and that, depending on the character encoding ("charset") chosen for serialization, it may be impossible to write out some characters as part of a CDATA section.

CDATASectionインタフェースは,Textインタフェースを通じてCharacterDataインタフェースから継承される。隣接するCDATASectionノードは,Nodeインタフェースのnormalizeメソッドを使用することによって併合されない。

The CDATASection interface inherits from the CharacterData interface through the Text interface. Adjacent CDATASection nodes are not merged by use of the normalize method of the Node interface.

備考  マーク付けはCDATASection内では認識されないので,文字の数値参照は,直列化の際に別扱い機構として使用できない。そのために,含まれる文字の幾つかが表現できない文字符号化を用いてCDATASectionを直列化する場合には,何らかの対応が必要となる。これに失敗すると,整形式のXMLを生成しないことがある。
直列化処理における一つの可能な解決は,その文字の前でCDATAセクションを終端し,文字参照又は実体参照を使用してその文字を出力し,そのテキストノードにおける更なる文字に対して新しいCDATAセクションを開始することである。しかし,コード変換ライブラリの中には,書出し時に,符号化から文字が抜けている場合にエラー又は例外を返さないものがあるので,直列化でデータが損なわれないことを保証するためには,作業がより困難になることがある点に注意すること。

Note: Because no markup is recognized within a CDATASection, character numeric references cannot be used as an escape mechanism when serializing. Therefore, action needs to be taken when serializing a CDATASection with a character encoding where some of the contained characters cannot be represented. Failure to do so would not produce well-formed XML.
One potential solution in the serialization process is to end the CDATA section before the character, output the character using a character reference or entity reference, and open a new CDATA section for any further characters in the text node. Note, however, that some code conversion libraries at the time of writing do not return an error or exception when a character is missing from the encoding, making the task of ensuring that data is not corrupted on serialization more difficult.


IDL定義
IDL Definition
interface CDATASection : Text {
};

インタフェース DocumentType
Interface DocumentType

Documentは,値がnull又はDocumentTypeオブジェクトのいずれかとなるdoctype属性をもつ。DOMコアにおけるDocumentTypeインタフェースは,文書に対して定義される実体のリストへのインタフェースを提供する。ただし,この標準情報(TR)の原規定の開発時には,名前空間の影響,及びDTD表現に関する様々なXMLスキーマの開発努力が明確には理解できていないので,それ以外のことはほとんど提供しない。

Each Document has a doctype attribute whose value is either null or a DocumentType object. The DocumentType interface in the DOM Core provides an interface to the list of entities that are defined for the document, and little else because the effect of namespaces and the various XML schema efforts on DTD representation are not clearly understood as of this writing.

DOM水準2は,DocumentTypeノードの編集をサポートしない。

The DOM Level 2 doesn't support editing DocumentType nodes.


IDL定義
IDL Definition
interface DocumentType : Node {
  readonly attribute DOMString        name;
  readonly attribute NamedNodeMap     entities;
  readonly attribute NamedNodeMap     notations;
  // Introduced in DOM Level 2:
  readonly attribute DOMString        publicId;
  // Introduced in DOM Level 2:
  readonly attribute DOMString        systemId;
  // Introduced in DOM Level 2:
  readonly attribute DOMString        internalSubset;
};

属性
Attributes
NamedNodeMapentities,読取り専用
entities of type NamedNodeMap, readonly
DTDで宣言された一般実体,すなわち,外部実体及び内部実体の両方,を含むNamedNodeMap。パラメタ実体は含まれない。重複は破棄される。次に例を示す。
A NamedNodeMap containing the general entities, both external and internal, declared in the DTD. Parameter entities are not contained. Duplicates are discarded. For example in:
<!DOCTYPE ex SYSTEM "ex.dtd" [
  <!ENTITY foo "foo">
  <!ENTITY bar "bar">
  <!ENTITY bar "bar2">
  <!ENTITY % baz "baz">
]>
<ex/>
この例では,インタフェースは,foobarの最初の宣言とへのアクセスを提供するが,barの2番目の宣言又はbazへのアクセスは提供しない。このNamedNodeMapにおけるすべてのノードは,Entityインタフェースも実装する。
the interface provides access to foo and the first declaration of bar but not the second declaration of bar or baz. Every node in this map also implements the Entity interface.

DOM水準2は,実体の編集はサポートしない。そのために,entitiesは,決して変更できない。
The DOM Level 2 does not support editing entities, therefore entities cannot be altered in any way.
DOMStringinternalSubset,読取り専用,DOM水準2で導入
internalSubset of type DOMString, readonly, introduced in DOM Level 2
文字列としての内部サブセット。
The internal subset as a string.

備考 返される実際の内容は,実装に利用可能な情報の量に依存する。これは,文書を構築するために使用するXMLプロセサを含む様々なパラメタに依存して,変化してよい。

Note: The actual content returned depends on how much information is available to the implementation. This may vary depending on various parameters, including the XML processor used to build the document.

DOMStringname,読取り専用
name of type DOMString, readonly
DTDの名前。すなわち,DOCTYPEキーワードの直後の名前。
The name of DTD; i.e., the name immediately following the DOCTYPE keyword.
NamedNodeMapnotations,読取り専用
notations of type NamedNodeMap, readonly
DTDで宣言された記法を含むNamedNodeMap。重複は,破棄される。このNamedNodeMapにおけるすべてのノードは,Notationインタフェースも実装する。
A NamedNodeMap containing the notations declared in the DTD. Duplicates are discarded. Every node in this map also implements the Notation interface.

DOM水準2は,記法の編集をサポートしない。そのために,notationsは,決して変更できない。
The DOM Level 2 does not support editing notations, therefore notations cannot be altered in any way.
DOMStringpublicId,読取り専用,DOM水準2で導入
publicId of type DOMString, readonly, introduced in DOM Level 2
外部サブセットの公開識別子。
The public identifier of the external subset.
DOMStringsystemId,読取り専用,DOM水準2で導入
systemId of type DOMString, readonly, introduced in DOM Level 2
外部サブセットのシステム識別子。
The system identifier of the external subset.
インタフェース Notation
Interface Notation

このインタフェースは,DTDの中で宣言された記法を表現する。記法は,名前によって解析対象外実体(XML 1.0規定[XML]の 4.7 を参照)のフォーマットを宣言するか,又は処理命令ターゲット(XML 1.0規定[XML]の 2.6 を参照)の形式的宣言のために使用されるかのいずれかとする。Nodeから継承されるnodeName属性は,記法の宣言された名前に設定される。

This interface represents a notation declared in the DTD. A notation either declares, by name, the format of an unparsed entity (see section 4.7 of the XML 1.0 specification [XML]), or is used for formal declaration of processing instruction targets (see section 2.6 of the XML 1.0 specification [XML]). The nodeName attribute inherited from Node is set to the declared name of the notation.

DOM水準1は,Notationノードの編集をサポートしない。そのために,このノードは 読取り専用 とする。

The DOM Level 1 does not support editing Notation nodes; they are therefore readonly.

Notationノードは,親をもたない。

A Notation node does not have any parent.


IDL定義
IDL Definition
interface Notation : Node {
  readonly attribute DOMString        publicId;
  readonly attribute DOMString        systemId;
};

属性
Attributes
DOMStringpublicId,読取り専用
publicId of type DOMString, readonly
この記法の公開識別子。公開識別子が指定されていなかった場合には,これはnullとする。
The public identifier of this notation. If the public identifier was not specified, this is null.
DOMStringsystemId,読取り専用
systemId of type DOMString, readonly
この記法のシステム識別子。システム識別子が指定されていなかった場合には,これはnullとする。
The system identifier of this notation. If the system identifier was not specified, this is null.
インタフェース Entity
Interface Entity

このインタフェースは,XML文書の中の,解析対象実体又は解析対象外実体のいずれかを表現する。このことは,実体それ自体をモデル化するのであって実体宣言をモデル化する わけではない ことに注意すること。Entity宣言のモデル化は,DOM規定のより高位の水準に残されている。

This interface represents an entity, either parsed or unparsed, in an XML document. Note that this models the entity itself not the entity declaration. Entity declaration modeling has been left for a later Level of the DOM specification.

Nodeから継承されるnodeName属性は,実体の名前を含む。

The nodeName attribute that is inherited from Node contains the name of the entity.

XMLプロセサは,構造モデルをDOMに渡す前に,完全に実体を展開することを選択してもよい。この場合,文書木にはEntityReferenceノードは存在しない。

An XML processor may choose to completely expand entities before the structure model is passed to the DOM; in this case there will be no EntityReference nodes in the document tree.

XMLは,妥当性検証を行わないXMLプロセサが,外部サブセットで作成された又は外部パラメタ実体で宣言された実体宣言を読んで処理することを必須とはしない。このことは,外部サブセットで宣言された解析対象実体が,アプリケーションの幾つかの種類によって展開されなくともよく,その実体の置換値が利用可能でなくともよいことを意味する。置換値が利用可能な場合には,対応するEntityノードの子リストが,その置換テキストの構造を表現する。そうでない場合には,子リストは空とする。

XML does not mandate that a non-validating XML processor read and process entity declarations made in the external subset or declared in external parameter entities. This means that parsed entities declared in the external subset need not be expanded by some classes of applications, and that the replacement value of the entity may not be available. When the replacement value is available, the corresponding Entity node's child list represents the structure of that replacement text. Otherwise, the child list is empty.

DOM水準2は,Entityノードの編集をサポートしない。利用者がEntityの内容に変更を行いたい場合には,すべての関係するEntityReferenceノードを,そのEntityの内容のクローンによって構造モデルの中で置き換えなければならず,望まれる変更は,代わりに,それらのクローンの各々に対して行わなければならない。Entityノード及びそれらのすべての 子孫 は, 読取り専用 とする。

The DOM Level 2 does not support editing Entity nodes; if a user wants to make changes to the contents of an Entity, every related EntityReference node has to be replaced in the structure model by a clone of the Entity's contents, and then the desired changes must be made to each of those clones instead. Entity nodes and all their descendants are readonly.

Entityノードは,親をもたない。

An Entity node does not have any parent.

備考  実体が束縛されない 名前空間接頭辞 を含む場合には,Entityノード部分木の対応するノードのnamespaceURIは,nullとする。この実体を参照するEntityReferenceノードに対しても,それらがDocumentインタフェースのcreateEntityReferenceメソッドを使用して生成されている場合には,同じことがいえる。DOM水準2は,名前空間接頭辞を解決するいかなる機構もサポートしない。

Note: If the entity contains an unbound namespace prefix, the namespaceURI of the corresponding node in the Entity node subtree is null. The same is true for EntityReference nodes that refer to this entity, when they are created using the createEntityReference method of the Document interface. The DOM Level 2 does not support any mechanism to resolve namespace prefixes.


IDL定義
IDL Definition
interface Entity : Node {
  readonly attribute DOMString        publicId;
  readonly attribute DOMString        systemId;
  readonly attribute DOMString        notationName;
};

属性
Attributes
DOMStringnotationName,読取り専用
notationName of type DOMString, readonly
解析対象外実体に対しては,その実体のための記法の名前とする。解析対象実体に対しては,これはnullとする。
For unparsed entities, the name of the notation for the entity. For parsed entities, this is null.
DOMStringpublicId,読取り専用
publicId of type DOMString, readonly
指定する場合には,実体に関連する公開識別子。公開識別子を指定しない場合には,これはnullとする。
The public identifier associated with the entity, if specified. If the public identifier was not specified, this is null.
DOMStringsystemId,読取り専用
systemId of type DOMString, readonly
指定する場合には,実体に関連するシステム識別子。システム識別子を指定しない場合には,これはnullとする。
The system identifier associated with the entity, if specified. If the system identifier was not specified, this is null.
インタフェース EntityReference
Interface EntityReference

実体参照が源となる文書に存在する場合,又は利用者が実体参照を挿入したい場合には,EntityReferenceオブジェクトを構造モデルの中に挿入してよい。文字参照及び事前定義された実体への参照は,HTMLプロセサ又はXMLプロセサによって展開されると考えられ,その結果,文字は,実体参照ではなくそれらのUnicodeでの等価なものによって表現されることに注意すること。さらに,XMLプロセサは,EntityReferenceオブジェクトを提供する代わりに,構造モデルを構築する際に実体への参照を完全に展開してもよい。それらオブジェクトを提供する場合には,与えられたEntityReferenceノードに対して,参照される実体を表現するEntityノードが存在しなくともよい。それらEntityノードが存在する場合には,EntityReferenceノードの部分木は,一般に,Entityノード部分木のコピーとなる。しかし,このことは,実体が束縛のない 名前空間接頭辞 を含む場合には,成立しなくともよい。それらの場合には,名前空間接頭辞の解決は,実体参照が存在する場所に依存するので,EntityReferenceノードの 子孫 は,異なる 名前空間URI に束縛されてもよい。

EntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference. Note that character references and references to predefined entities are considered to be expanded by the HTML or XML processor so that characters are represented by their Unicode equivalent rather than by an entity reference. Moreover, the XML processor may completely expand references to entities while building the structure model, instead of providing EntityReference objects. If it does provide such objects, then for a given EntityReference node, it may be that there is no Entity node representing the referenced entity. If such an Entity exists, then the subtree of the EntityReference node is in general a copy of the Entity node subtree. However, this may not be true when an entity contains an unbound namespace prefix. In such a case, because the namespace prefix resolution depends on where the entity reference is, the descendants of the EntityReference node may be bound to different namespace URIs.

Entityノードに関しては,EntityReferenceノード及びそのすべての 子孫 は, 読取り専用 とする。

As for Entity nodes, EntityReference nodes and all their descendants are readonly.


IDL定義
IDL Definition
interface EntityReference : Node {
};

インタフェース ProcessingInstruction

ProcessingInstructionインタフェースは,プロセサ固有の情報を文書のテキストの中に保持する方法としてXMLで使用される"処理命令"を表現する。

The ProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document.


IDL定義
IDL Definition
interface ProcessingInstruction : Node {
  readonly attribute DOMString        target;
           attribute DOMString        data;
                                        // raises(DOMException) on setting

};

属性
Attributes
DOMStringdata
data of type DOMString
この処理命令の内容。これは,ターゲットの後の最初の空白ではない文字から?>のすぐ前の文字までとする。
The content of this processing instruction. This is from the first non white space character after the target to the character immediately preceding the ?>.
設定に関する例外
Exceptions on setting

DOMException  

NO_MODIFICATION_ALLOWED_ERR: ノードが読取り専用の場合に,挙げられる。

NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.

DOMStringtarget,読取り専用
target of type DOMString, readonly
この処理命令のターゲット。XMLは,これを,処理命令を開始するマーク付けの前の最初の トークン として定義する。
The target of this processing instruction. XML defines this as being the first token following the markup that begins the processing instruction.