###
5 Document オブジェクト

`Document` は XML ドキュメント全体を表現し、その構成要素 である要素、属性、処理命令、コメント等が入っています。 `Document` は `Node` からプロパティを継承していることを 思い出してください。

`documentElement`
  ドキュメントの唯一無二のルート要素です。

`createElement`( | tagName)

  新たな要素ノードを生成して返します。要素は、生成された時点では ドキュメント内に挿入されません。`insertBefore()` や `appendChild()` のような他のメソッドの一つを使って 明示的に挿入を行う必要があります。

`createElementNS`( | namespaceURI, tagName)

  名前空間を伴う新たな要素ノードを生成して返します。tagName にはプレフィクス (prefix) があってもかまいません。要素は、生成された 時点では文書内に挿入されません。`insertBefore()` や `appendChild()` のような他のメソッドの一つを使って 明示的に挿入を行う必要があります。 `appendChild()`.

`createTextNode`( | data)

  パラメタで渡されたデータの入ったテキストノードを生成して返します。 他の生成 (create) メソッドと同じく、このメソッドは生成された ノードをツリーに挿入しません。

`createComment`( | data)

  パラメタで渡されたデータの入ったコメントノードを生成して返します。 他の生成 (create) メソッドと同じく、このメソッドは生成された ノードをツリーに挿入しません。

`createProcessingInstruction`( | target, data)

  パラメタで渡された target および data の入った処理命令 ノードを生成して返します。他の生成 (create) メソッドと同じく、 このメソッドは生成されたノードをツリーに挿入しません。

`createAttribute`( | name)

  属性ノードを生成して返します。このメソッドは属性ノードを特定の 要素に関連づけることはしません。新たに生成された属性インスタンス を使うには、適切な `Element` オブジェクトの `setAttributeNode()` を使わなければなりません。

`createAttributeNS`( | namespaceURI, qualifiedName)

  名前空間を伴う新たな属性ノードを生成して返します。tagName にはプレフィクス (prefix) があってもかまいません。 このメソッドは属性ノードを特定の要素に関連づけることはしません。 新たに生成された属性インスタンスを使うには、適切な `Element` オブジェクトの `setAttributeNode()` を使わなければなりません。

`getElementsByTagName`( | tagName)

  全ての下位要素 (直接の子要素、子要素の子要素、等) から、特定の 要素型名を持つものを検索します。

`getElementsByTagNameNS`( | namespaceURI, localName)

  全ての下位要素 (直接の子要素、子要素の子要素、等) から、特定の 名前空間 URI とローカル名 (local name) を持つものを検索します。 ローカル名は名前空間におけるプレフィクス以降の部分です。