## 13.6.1 モジュールの内容

`xml.dom` には、以下の関数が収められています:

`registerDOMImplementation`( | name, factory)

  ファクトリ関数 (factory function) factory を名前 name で 登録します。ファクトリ関数は `DOMImplementation` インタフェース を実装するオブジェクトを返さなければなりません。ファクトリ関数は 毎回同じオブジェクトを返すこともでき、呼び出されるたびに、特定の実装 (例えば実装が何らかのカスタマイズをサポートしている場合) における、 適切な新たなオブジェクトを返すこともできます。

`getDOMImplementation`( | [name[, features]])

  適切な DOM 実装を返します name は、よく知られた DOM 実装の モジュール名か、`None` になります。`None` でない場合、 対応するモジュールを import して、import が成功した場合 `DOMImplementation` オブジェクトを返します。name が与えられ ておらず、環境変数 PYTHON_DOM が設定されていた場合、 DOM 実装を見つけるのに環境変数が使われます。

  name が与えられない場合、 利用可能な実装を調べて、 指定された機能 (feature) セットを持つものを探します。 実装が見つからなければ `ImportError` を送出します。 features のリストは `(feature, version)` の ペアからなる配列で、利用可能な `DOMImplementation` オブジェクト の `hasFeature()` メソッドに渡されます。

いくつかの便利な定数も提供されています:

`EMPTY_NAMESPACE`
  DOM 内のノードに名前空間が何も関連づけられていないことを示すために 使われる値です。この値は通常、ノードの `namespaceURI` の値 として見つかったり、名前空間特有のメソッドに対する namespaceURI パラメタとして使われます。 バージョン2.2 以降で新規追加された 仕様です。

`XML_NAMESPACE`
  Namespaces in XML (4 節) で定義されている、予約済みプレフィクス (reserved prefix) `xml` に関連付けられた名前空間 URI です。 バージョン2.2 以降で新規追加された 仕様です。

`XMLNS_NAMESPACE`
  Document Object Model (DOM) Level 2 Core Specification (1.1.8 節) で定義されている、名前空間宣言への名前空間 URI です。 バージョン2.2 以降で新規追加された 仕様です。

`XHTML_NAMESPACE`
  XHTML 1.0: The Extensible HyperText Markup Language (3.1.1 節) で定義されている、XHTML 名前空間 URI です。 バージョン2.2 以降で新規追加された 仕様です。

加えて、 `xml.dom` には基底となる `Node` クラスと DOM 例外クラスが収められています。このモジュールで提供されている `Node` クラスは DOM 仕様で定義されているメソッドや属性は 何ら実装していません; これらは具体的な DOM 実装において提供 しなければなりません。このモジュールの一部として提供されている `Node` クラスでは、具体的な `Node` オブジェクトの `nodeType` 属性として使う定数を提供しています; これらの 定数は、DOM 仕様に適合するため、クラスではなくモジュールのレベルに 配置されています。