モジュール java.xml
パッケージ org.w3c.dom

インタフェースDocument

  • すべてのスーパー・インタフェース:
    Node
    既知のすべてのサブインタフェース:
    HTMLDocument
    既知のすべての実装クラス:
    SOAPPart


    public interface Document
    extends Node
    Documentインタフェースは、HTML文書またはXML文書全体を表します。 概念上は文書ツリーのルートであり、文書データに最初にアクセスする手段を提供します。

    要素、テキスト・ノード、コメント、処理命令などはDocumentのコンテキストの外部に存在できないため、Documentインタフェースには、これらのオブジェクトを作成するために必要なファクトリ・メソッドも含まれています。 作成されたNodeオブジェクトには、作成されたコンテキスト内でそのオブジェクトをDocumentに関連付けるownerDocument属性があります。

    Document Object Model (DOM) Level 3 Core Specification」も参照してください。

    • メソッドの詳細

      • getDoctype

        DocumentType getDoctype​()
        この文書に関連付けられている文書型宣言(DocumentTypeを参照)。 文書型宣言を持たないXML文書の場合はnullを返します。 HTML文書では、文書内の文書型宣言の有無とは関係なくDocumentTypeオブジェクトを返すことができます。
        これにより、このDocumentの子ノードである、DocumentTypeノードに直接アクセスできます。
        このノードは文書作成時に設定でき、それ以降はNode.insertBeforeNode.replaceChildなどの子ノード操作メソッドを使用して変更できます。 ただし、一部の実装では、作成時に指定されたDocumentTypeに基づいて、「HTML」の「DOM Level 2 HTML」などの「Core」以外の追加機能をサポートしているさまざまなタイプのDocumentオブジェクトをインスタンス化できますが、あとで変更してもサポートされている機能が変化することはほとんどありません。
        導入されたバージョン:
        1.4、DOMレベル3
      • getImplementation

        DOMImplementation getImplementation​()
        この文書を処理するDOMImplementationオブジェクト。 DOMアプリケーションは、複数の実装からのオブジェクトを使用できます。
      • getDocumentElement

        Element getDocumentElement​()
        文書の文書要素になっている子ノードへの直接アクセスを可能にする便利な属性です。
      • createElement

        Element createElement​(String tagName)
                       throws DOMException
        指定された型の要素を作成します。 返されるインスタンスはElementインタフェースを実装するため、属性は返されるオブジェクトに直接指定できます。
        さらに、デフォルト値を持つ既知の属性が存在する場合は、これらを表すAttrノードが自動的に作成され、要素に付加されます。

        修飾名と名前空間URIを使用して要素を作成するには、createElementNSメソッドを使用します。
        パラメータ:
        tagName - インスタンス化する要素型の名前。 XMLの場合、アルファベットの大文字と小文字が区別される。 その場合、大文字と小文字の区別は、使用しているマークアップ言語に依存し、DOM実装によってその正規マークアップにマッピングされる。
        戻り値:
        nodeName属性がtagNameに設定され、localNameprefix、およびnamespaceURInullに設定された新しいElementオブジェクト。
        例外:
        DOMException - INVALID_CHARACTER_ERR: 指定された名前が、使用中のXMLバージョン(Document.xmlVersion属性に指定されている)に定められているXML名ではない場合に発生します。
      • createDocumentFragment

        DocumentFragment createDocumentFragment​()
        空のDocumentFragmentオブジェクトを作成します。
        戻り値:
        新しいDocumentFragment
      • createTextNode

        Text createTextNode​(String data)
        指定された文字列を持つTextノードを作成します。
        パラメータ:
        data - ノードのデータ。
        戻り値:
        新しいTextオブジェクト。
      • createComment

        Comment createComment​(String data)
        指定された文字列を持つCommentノードを作成します。
        パラメータ:
        data - ノードのデータ。
        戻り値:
        新しいCommentオブジェクト。
      • createCDATASection

        CDATASection createCDATASection​(String data)
                                 throws DOMException
        指定された文字列を値として持つCDATASectionノードを作成します。
        パラメータ:
        data - CDATASectionコンテンツのデータ。
        戻り値:
        新しいCDATASectionオブジェクト。
        例外:
        DOMException - NOT_SUPPORTED_ERR: この文書がHTML文書の場合に発生します。
      • createProcessingInstruction

        ProcessingInstruction createProcessingInstruction​(String target,
                                                          String data)
                                                   throws DOMException
        指定された名前およびデータ文字列を使用してProcessingInstructionノードを作成します。
        パラメータ:
        target - 処理命令のターゲット部分。Document.createElementNSDocument.createAttributeNSとは異なり、ターゲット名に対する名前空間整形式のチェックは実行されない。 アプリケーションは、ターゲット名の名前空間整形式を確保するために、「namespaces」パラメータをtrueに設定してDocument.normalizeDocument()を呼び出す必要がある。
        data - ノードのデータ。
        戻り値:
        新しいProcessingInstructionオブジェクト。
        例外:
        DOMException - INVALID_CHARACTER_ERR: 指定されたターゲットが、使用中のXMLバージョン(Document.xmlVersion属性に指定されている)に定められているXML名ではない場合に発生します。
        NOT_SUPPORTED_ERR: この文書がHTML文書の場合に発生します。
      • createAttribute

        Attr createAttribute​(String name)
                      throws DOMException
        所定の名前のAttrを作成します。 その後、setAttributeNodeメソッドを使用して、このAttrインスタンスをElementに設定できます。
        修飾名と名前空間URIを使用して属性を作成するには、createAttributeNSメソッドを使用します。
        パラメータ:
        name - 属性の名前。
        戻り値:
        nodeName属性がnameに設定され、localNameprefix、およびnamespaceURInullに設定された新しいAttrオブジェクト。 属性の値は空の文字列。
        例外:
        DOMException - INVALID_CHARACTER_ERR: 指定された名前が、使用中のXMLバージョン(Document.xmlVersion属性に指定されている)に定められているXML名ではない場合に発生します。
      • createEntityReference

        EntityReference createEntityReference​(String name)
                                       throws DOMException
        EntityReferenceオブジェクトを作成します。 さらに、参照されるエンティティが既知の場合は、対応するEntityノードの子リストと同じようにEntityReferenceノードの子リストが作成されます。

        注: Entityノードの下位ノードの名前空間接頭辞のバインドが解除されている場合には、作成されたEntityReferenceノードの対応する下位ノードのバインドも解除されます(そのnamespaceURInull)。 DOM Level 2とDOM Level 3では、このような場合に名前空間接頭辞を解決するメカニズムがサポートされていません。

        パラメータ:
        name - 参照されるエンティティの名前。Document.createElementNSDocument.createAttributeNSとは異なり、エンティティ名に対する名前空間整形式のチェックは実行されない。 アプリケーションは、エンティティ名の名前空間整形式を確保するために、「namespaces」パラメータをtrueに設定してDocument.normalizeDocument()を呼び出す必要がある。
        戻り値:
        新しいEntityReferenceオブジェクト。
        例外:
        DOMException - INVALID_CHARACTER_ERR: 指定された名前が、使用中のXMLバージョン(Document.xmlVersion属性に指定されている)に定められているXML名ではない場合に発生します。
        NOT_SUPPORTED_ERR: この文書がHTML文書の場合に発生します。
      • getElementsByTagName

        NodeList getElementsByTagName​(String tagname)
        文書内の、特定のタグ名を持つすべてのElementsを文書の順に格納するNodeListを返します。
        パラメータ:
        tagname - 一致するタグの名前。 特殊な値「*」はすべてのタグに一致する。 XMLの場合、tagnameパラメータでは大文字と小文字が区別される。そうでない場合は、使用されるマークアップ言語の大文字と小文字の区別に依存する。
        戻り値:
        一致するすべてのElementsを含む新しいNodeListオブジェクト。
      • importNode

        Node importNode​(Node importedNode,
                        boolean deep)
                 throws DOMException
        別の文書から現在の文書へノードをインポートします。このとき、元の文書のソース・ノードが変更または削除されることはありません。このメソッドはソース・ノードの新しいコピーを作成します。 返されるノードは親ノードを持ちません(parentNodenull)。
        すべてのノードについて、ノードをインポートすると、インポート側の文書によって所有されたノード・オブジェクトが、ソース・ノードのnodeNameおよびnodeTypeと同じ属性値の他、名前空間に関連した属性(prefixlocalNameおよびnamespaceURI)を使用して作成されます。
        cloneNode操作の場合と同じく、ソース・ノードは変更されません。 インポートされているノードに関連するユーザー・データは持ち越されません。 ただし、関連するデータとともにUserDataHandlersが指定された場合は、このメソッドから戻る前に、それらのハンドラが該当するパラメータで呼び出されます。
        追加情報は適切な方法でnodeTypeにコピーされます。XMLソースまたはHTMLソースのフラグメントが一方の文書からもう一方の文書にコピーされた場合、2つの文書がXMLケース内に異なったDTDを持つ可能性があることを受けて、適切な動作のミラー化が試行されます。
        次のリストでは、各ノードについて説明します。
        ATTRIBUTE_NODE
        生成されたAttr上で、ownerElement属性はnullに設定され、specifiedフラグはtrueに設定されます。 ソースAttrの子孫が再帰的にインポートされ、結果ノードが再アセンブルされて、対応するサブツリーを形成します。 なお、deepパラメータはAttrノードに影響を及ぼしません。これらのパラメータは、子とともにインポートされます。
        DOCUMENT_FRAGMENT_NODE
        deepオプションがtrueに設定されている場合は、ソースDocumentFragmentの子孫が再帰的にインポートされ、そのインポートされたDocumentFragmentの下で結果ノードが再アセンブルされて、対応するサブツリーを形成します。 それ以外の場合は、空のDocumentFragmentが生成されるだけです。
        DOCUMENT_NODE
        Documentノードはインポートできません。
        DOCUMENT_TYPE_NODE
        DocumentTypeノードはインポートできません。
        ELEMENT_NODE
        ソース要素の指定された属性ノードがインポートされ、生成されたAttrノードが生成されたElementに接続されます。 インポートされる文書がこの要素名のデフォルト属性(割当て済み)を定義する場合も、デフォルト属性はコピーされません importNodedeepパラメータがtrueに設定されている場合は、ソース要素の子孫が再帰的にインポートされ、結果ノードが再アセンブルされて、対応するサブツリーを形成します。
        ENTITY_NODE
        DOMの現在のリリースではDocumentTypeは読取り専用ですが、Entityノードはインポート可能です。 こうしてインポートされたノードをDocumentTypeに追加する機能は、将来のDOMのリリースで追加される予定です。インポート時には、publicIdsystemIdnotationNameの各属性がコピーされます。 deepのインポートが要求された場合は、ソースEntityの子孫が再帰的にインポートされ、結果ノードが再アセンブルされて、対応するサブツリーを形成します。
        ENTITY_REFERENCE_NODE
        deepのインポートが要求された場合も、ソース文書とデスティネーション文書でエンティティの定義が異なる場合があるので、EntityReferenceだけがコピーされることになります。 インポートされる文書がこのエントリ名を定義する場合は、その値が割り当てられます。
        NOTATION_NODE
        DOMの現在のリリースではDocumentTypeは読取り専用ですが、Notationノードはインポート可能です。 こうしてインポートされたノードをDocumentTypeに追加する機能は、将来のDOMのリリースで追加される予定です。インポート時には、publicIdおよびsystemIdの各属性がコピーされます。 これらのノードは子を持つことができないので、deepパラメータは何の影響も及ぼしません。
        PROCESSING_INSTRUCTION_NODE
        インポートしたノードは、ソース・ノードからtargetdataの値をコピーします。これらのノードは子を持つことができないので、deepパラメータは何の影響も及ぼしません。
        TEXT_NODE、CDATA_SECTION_NODE、COMMENT_NODE
        CharacterDataを継承する3つのノード型で、data属性とlength属性をソース・ノードからコピーします。これらのノードは子を持つことができないので、deepパラメータは何の影響も及ぼしません。
        パラメータ:
        importedNode - インポートされるノード。
        deep - trueの場合は、指定されたノードの下のサブツリーを再帰的にインポートし、falseの場合は、指定されたノードだけをインポートする(上記の説明を参照)。 子を持つことができないノードやAttrEntityReferenceノードには影響を及ぼさない。
        戻り値:
        このDocumentに属するインポートされたノード。
        例外:
        DOMException - NOT_SUPPORTED_ERR: インポートするノードの種類がサポートされていない場合に発行されます。
        INVALID_CHARACTER_ERR: インポートされた名前のいずれか1つが、使用中のXMLバージョン(Document.xmlVersion属性に指定されている)に定められているXML名ではない場合に発生します。
        これは、たとえば、XML 1.1「XML 1.1」要素をXML 1.0文書にインポートしているときに発生する可能性があります。
        導入されたバージョン:
        1.4、DOMレベル2
      • createElementNS

        Element createElementNS​(String namespaceURI,
                                String qualifiedName)
                         throws DOMException
        所定の修飾名と名前空間URIを持つ要素を作成します。
        名前空間を保有しない場合は、「XML名前空間」に従って、アプリケーションでメソッドのnamespaceURIパラメータとして値nullを使用する必要があります。
        パラメータ:
        namespaceURI - 作成する要素の名前空間URI。
        qualifiedName - インスタンス化する要素型の修飾名。
        戻り値:
        次の属性を持つ新しいElementオブジェクト
        Elementオブジェクトの属性
        属性
        Node.nodeName qualifiedName
        Node.namespaceURI namespaceURI
        Node.prefix qualifiedNameから抽出された接頭辞。接頭辞がない場合はnull
        Node.localName qualifiedNameから抽出されたローカル名
        Element.tagName qualifiedName
        例外:
        DOMException - INVALID_CHARACTER_ERR: 指定されたqualifiedNameが、使用中のXMLバージョン(Document.xmlVersion属性に指定されている)に定められているXML名ではない場合に発生します。
        NAMESPACE_ERR: qualifiedNameの修飾名の形式が正しくない場合、qualifiedNameが接頭辞を持ち、かつnamespaceURInullの場合、またはqualifiedNameが「xml」の接頭辞を持ち、かつnamespaceURIが「http://www.w3.org/XML/1998/namespace」の「XML名前空間」とは異なる場合、またはqualifiedNameかその接頭辞が「xmlns」であり、かつnamespaceURIが「http://www.w3.org/2000/xmlns/」とは異なる場合、またはnamespaceURIが「http://www.w3.org/2000/xmlns/」であり、かつqualifiedNameもその接頭辞も「xmlns」ではない場合に発生します。

        NOT_SUPPORTED_ERR: 名前空間はXMLによって定義されているため、現在の文書が"XML"機能をサポートしていない場合は常にスローされます。
        導入されたバージョン:
        1.4、DOMレベル2
      • createAttributeNS

        Attr createAttributeNS​(String namespaceURI,
                               String qualifiedName)
                        throws DOMException
        所定の修飾名と名前空間URIを持つ属性を作成します。
        名前空間を保有しない場合は、XML名前空間に従って、アプリケーションでメソッドのnamespaceURIパラメータにnull値を使用する必要があります。
        パラメータ:
        namespaceURI - 作成する属性の名前空間URI。
        qualifiedName - インスタンス化する属性の修飾名。
        戻り値:
        次の属性を持つ新しいAttrオブジェクト
        Attrオブジェクトの属性
        属性
        Node.nodeName qualifiedName
        Node.namespaceURI namespaceURI
        Node.prefix qualifiedNameから抽出された接頭辞。接頭辞がない場合はnull
        Node.localName qualifiedNameから抽出されたローカル名
        Attr.name qualifiedName
        Node.nodeValue 空の文字列
        例外:
        DOMException - INVALID_CHARACTER_ERR: 指定されたqualifiedNameが、使用中のXMLバージョン(Document.xmlVersion属性に指定されている)に定められているXML名ではない場合に発生します。
        NAMESPACE_ERR: qualifiedNameの修飾名の形式が正しくない場合、qualifiedNameが接頭辞を持ち、かつnamespaceURInullの場合、qualifiedNameが「xml」の接頭辞を持ち、かつnamespaceURIが「http://www.w3.org/XML/1998/namespace」とは異なる場合、qualifiedNameまたはその接頭辞が「xmlns」であり、かつnamespaceURIが「http://www.w3.org/2000/xmlns/」とは異なる場合、またはnamespaceURIが「http://www.w3.org/2000/xmlns/」であり、かつqualifiedNameもその接頭辞も「xmlns」ではない場合に発生します。

        NOT_SUPPORTED_ERR: 名前空間はXMLによって定義されているため、現在の文書が"XML"機能をサポートしていない場合は常にスローされます。
        導入されたバージョン:
        1.4、DOMレベル2
      • getElementsByTagNameNS

        NodeList getElementsByTagNameNS​(String namespaceURI,
                                        String localName)
        特定のローカル名と名前空間URIを持つすべてのElementsを文書の順に格納するNodeListを返します。
        パラメータ:
        namespaceURI - 一致する要素の名前空間URI。 特殊な値"*"は、すべての名前空間に一致する。
        localName - 一致する要素のローカル名。 特殊な値「*」はすべてのローカル名に一致する。
        戻り値:
        一致するすべてのElementsを含む新しいNodeListオブジェクト。
        導入されたバージョン:
        1.4、DOMレベル2
      • getElementById

        Element getElementById​(String elementId)
        所定の値のID属性を持つElementを返します。 このような要素がない場合は、nullを返します。 複数の要素が所定の値のID属性を持っている場合には、どの値が返されるかは定義されていません。
        DOM実装では、Attr.isId属性を使用して、ID属性かどうかを判定することが求められます。

        注: 属性名に「ID」または「id」が含まれていても、そのように定義されていない場合には、ID属性ではありません。

        パラメータ:
        elementId - 要素の一意のid値。
        戻り値:
        一致する要素。存在しない場合はnull
        導入されたバージョン:
        1.4、DOMレベル2
      • getInputEncoding

        String getInputEncoding​()
        このドキュメントを解析するときに使用するエンコーディングを指定します。 Documentがメモリーで作成されたときなど、未知の場合はnullです。
        導入されたバージョン:
        1.5、DOMレベル3
      • getXmlEncoding

        String getXmlEncoding​()
        この文書のエンコーディングをXML宣言の一部として指定する属性。 Documentがメモリーで作成されたときなど、未指定の場合や認識されない場合はnullです。
        導入されたバージョン:
        1.5、DOMレベル3
      • getXmlStandalone

        boolean getXmlStandalone​()
        このドキュメントがスタンドアロンかどうかをXML宣言の一部として指定します。 指定されない場合はfalseです。

        注: この属性を設定するときに、値の検証は行われません。 アプリケーションは「validate」パラメータを持つDocument.normalizeDocument()を使用して、値が「XML 1.0」で定義されるスタンドアロン文書宣言に対する有効性の制約に一致するかどうかを検証する必要があります。

        導入されたバージョン:
        1.5、DOMレベル3
      • setXmlStandalone

        void setXmlStandalone​(boolean xmlStandalone)
                       throws DOMException
        このドキュメントがスタンドアロンかどうかをXML宣言の一部として指定します。 指定されない場合はfalseです。

        注: この属性を設定するときに、値の検証は行われません。 アプリケーションは「validate」パラメータを持つDocument.normalizeDocument()を使用して、値が「XML 1.0」で定義されるスタンドアロン文書宣言に対する有効性の制約に一致するかどうかを検証する必要があります。

        例外:
        DOMException - NOT_SUPPORTED_ERR: このドキュメントがXML機能をサポートしない場合に発生します。
        導入されたバージョン:
        1.5、DOMレベル3
      • getXmlVersion

        String getXmlVersion​()
        この文書のバージョン番号をXML宣言の一部として指定します。 宣言がない場合、およびこの文書が「XML」機能をサポートしている場合、値は"1.0"です。 この文書が「XML」機能をサポートしていない場合、値は常にnullです。 この属性を変更すると、XML名の無効な文字を確認するメソッドに影響します。 このDocumentの既存のNodeに無効な文字があるかどうかを確認するには、アプリケーションでDocument.normalizeDocument()を呼び出す必要があります。
        DOMアプリケーションで実装が「XML 1.0」をサポートしているかどうかを判定するときは、パラメータ値「XMLVersion」と「1.0」を指定してDOMImplementation.hasFeature(feature, version)メソッドを使用します。
        DOMアプリケーションで実装が「XML 1.1」をサポートしているかどうかを判定するときは、パラメータ値「XMLVersion」と「1.1」を指定して同じメソッドを使用します。 どちらの場合も、XMLをサポートするには、この仕様に定義されている「XML」機能を実装がサポートしている必要があります。 あるバージョンの「XML Version」機能をサポートしているDocumentオブジェクトがDocument.xmlVersionを使用しているときに、同じバージョン番号のNOT_SUPPORTED_ERR例外をスローしてはいけません。
        導入されたバージョン:
        1.5、DOMレベル3
      • setXmlVersion

        void setXmlVersion​(String xmlVersion)
                    throws DOMException
        この文書のバージョン番号をXML宣言の一部として指定します。 宣言がない場合、およびこの文書が「XML」機能をサポートしている場合、値は"1.0"です。 この文書が「XML」機能をサポートしていない場合、値は常にnullです。 この属性を変更すると、XML名の無効な文字を確認するメソッドに影響します。 このDocumentの既存のNodeに無効な文字があるかどうかを確認するには、アプリケーションでDocument.normalizeDocument()を呼び出す必要があります。
        DOMアプリケーションで実装が「XML 1.0」をサポートしているかどうかを判定するときは、パラメータ値「XMLVersion」と「1.0」を指定してDOMImplementation.hasFeature(feature, version)メソッドを使用します。
        DOMアプリケーションで実装が「XML 1.1」をサポートしているかどうかを判定するときは、パラメータ値「XMLVersion」と「1.1」を指定して同じメソッドを使用します。 どちらの場合も、XMLをサポートするには、この仕様に定義されている「XML」機能を実装がサポートしている必要があります。 あるバージョンの「XML Version」機能をサポートしているDocumentオブジェクトがDocument.xmlVersionを使用しているときに、同じバージョン番号のNOT_SUPPORTED_ERR例外をスローしてはいけません。
        例外:
        DOMException - NOT_SUPPORTED_ERR: Documentがサポートしていない値がバージョンに設定されている場合、またはこの文書が「XML」機能をサポートしていない場合に発生します。
        導入されたバージョン:
        1.5、DOMレベル3
      • getStrictErrorChecking

        boolean getStrictErrorChecking​()
        エラー・チェックを適用するかどうかを指定します。 falseに設定した場合、この実装はDOM処理に通常定義されているあらゆるエラー・ケースをテストしません。また、DOM処理に関するDOMExceptionをスローせず、Document.normalizeDocument()を使用しているときはエラーを報告しません。 エラーが発生した場合の動作は未定義です。 この属性はデフォルトでtrueです。
        導入されたバージョン:
        1.5、DOMレベル3
      • setStrictErrorChecking

        void setStrictErrorChecking​(boolean strictErrorChecking)
        エラー・チェックを適用するかどうかを指定します。 falseに設定した場合、この実装はDOM処理に通常定義されているあらゆるエラー・ケースをテストしません。また、DOM処理に関するDOMExceptionをスローせず、Document.normalizeDocument()を使用しているときはエラーを報告しません。 エラーが発生した場合の動作は未定義です。 この属性はデフォルトでtrueです。
        導入されたバージョン:
        1.5、DOMレベル3
      • getDocumentURI

        String getDocumentURI​()
        ドキュメントの場所。未定義の場合やDOMImplementation.createDocumentを使ってDocumentが作成された場合はnull この属性が設定されている場合には、字句は確認されないため、Node.baseURIを使用したときにnull値が返される可能性があります。
        Documentが「HTML」の「DOM Level 2 HTML」機能をサポートしているときには、Node.baseURIを計算する際、HTML BASE要素のhref属性がこの属性よりも優先されます。
        導入されたバージョン:
        1.5、DOMレベル3
      • setDocumentURI

        void setDocumentURI​(String documentURI)
        ドキュメントの場所。未定義の場合やDOMImplementation.createDocumentを使ってDocumentが作成された場合はnull この属性が設定されている場合には、字句は確認されないため、Node.baseURIを使用したときにnull値が返される可能性があります。
        Documentが「HTML」の「DOM Level 2 HTML」機能をサポートしているときには、Node.baseURIを計算する際、HTML BASE要素のhref属性がこの属性よりも優先されます。
        導入されたバージョン:
        1.5、DOMレベル3
      • adoptNode

        Node adoptNode​(Node source)
                throws DOMException
        ほかの文書のノードを現在の文書にインポートします。 サポートされている場合には、ソース・ノードのownerDocument、その子、および接続されている属性ノード(存在する場合)を変更します。 ソース・ノードが親を持っている場合には、そのソース・ノードが親の子リストから最初に削除されます。 これにより、実質的にある文書のサブツリーをほかの文書に移動できます(importNode()の場合は、ソース・ノードを移動する代わりにコピーを作成する)。 失敗した場合、代わりにアプリケーションでDocument.importNode()を使用するようにしてください。 インポートしたノードがすでにこの文書の一部である場合(つまり、ソースとターゲット文書が同じである場合)、このメソッドは、親の子からソース・ノードを削除する場合にも効果的です(存在する場合)。 次のリストでは、各ノードについて説明します。
        ATTRIBUTE_NODE
        インポートしたAttrownerElement属性をnullに設定し、specifiedフラグをtrueに設定します。 ソースAttrの子孫は再帰的にインポートします。
        DOCUMENT_FRAGMENT_NODE
        ソース・ノードの子孫を再帰的にインポートします。
        DOCUMENT_NODE
        Documentノードを取り入れることはできません。
        DOCUMENT_TYPE_NODE
        DocumentTypeノードを取り入れることはできません。
        ELEMENT_NODE
        ソース要素の指定された属性ノードがインポートされます。 デフォルト属性は破棄します。ただし、インポートしている文書にこの要素名のデフォルト属性が定義されている場合には、これらの属性を割り当てます。 ソース要素の子孫は再帰的にインポートされます。
        ENTITY_NODE
        Entityノードを取り入れることはできません。
        ENTITY_REFERENCE_NODE
        ソース文書とデスティネーション文書でエンティティの定義が異なる場合があるので、EntityReferenceだけをインポートし、子孫は破棄します。 インポートされる文書がこのエントリ名を定義する場合は、その値が割り当てられます。
        NOTATION_NODE
        Notationノードを取り入れることはできません。
        PROCESSING_INSTRUCTION_NODE、TEXT_NODE、CDATA_SECTION_NODE、COMMENT_NODE
        これらのノードはすべてインポートできます。 仕様はありません。

        注: このメソッドは、Document.importNode()メソッドとは異なり、新しいノードを作成しないので、INVALID_CHARACTER_ERR例外をスローしません。アプリケーションでは、Document.normalizeDocument()メソッドを使用して、インポートされた名前が使用中のXMLバージョンに従うXML名でないかどうかを確認する必要があります。

        パラメータ:
        source - この文書に移動するノード。
        戻り値:
        インポートされたノード。ソース・ノードの実装が異なる場合など、この操作が失敗した場合はnull
        例外:
        DOMException - NOT_SUPPORTED_ERR: ソース・ノードがDOCUMENTDOCUMENT_TYPE型である場合に発生します。
        NO_MODIFICATION_ALLOWED_ERR: ソース・ノードが読取り専用の場合に発生します。
        導入されたバージョン:
        1.5、DOMレベル3
      • getDomConfig

        DOMConfiguration getDomConfig​()
        Document.normalizeDocument()が呼び出されたときに使用される構成。
        導入されたバージョン:
        1.5、DOMレベル3
      • normalizeDocument

        void normalizeDocument​()
        このメソッドは、文書を通常の形式に変換して、保存およびロードするように動作します。 その結果、このメソッドはNode.normalize()メソッドの定義に基づいて、EntityReferenceノードの置換ツリーを更新し、Textノードを正規化します。
        それ以外の場合、実際の結果は、Document.domConfigオブジェクトに設定されている機能と、その機能がどんな処理を実際に実行するかに応じて異なります。
        たとえば、記述されているアルゴリズムに従って、文書を名前空間整形式に変換したり、文字の正規化をチェックしたり、CDATASectionノードを削除したりすることもできます。詳細は、DOMConfigurationを参照してください。
        // Keep in the document
         the information defined // in the XML Information Set (Java example)
         DOMConfiguration docConfig = myDocument.getDomConfig();
         docConfig.setParameter("infoset", Boolean.TRUE);
         myDocument.normalizeDocument();

        変異イベントがサポートされているときには、文書で発生する変更を反映するために変異イベントが生成されます。

        このメソッドの呼出し中にエラーが発生した場合(読取り専用ノードを更新しようとした場合や、Node.nodeNameに使用中のXMLバージョンに定められている無効な文字が含まれている場合など)は、「error-handler」パラメータに関連付けられたDOMErrorHandlerオブジェクトを使用して、エラーまたは警告(DOMError.SEVERITY_ERRORまたはDOMError.SEVERITY_WARNING)が報告されます。
        また、実装がエラーから回復できない場合に、このメソッドによって致命的なエラー(DOMError.SEVERITY_FATAL_ERROR)が報告されることがあります。
        導入されたバージョン:
        1.5、DOMレベル3
      • renameNode

        Node renameNode​(Node n,
                        String namespaceURI,
                        String qualifiedName)
                 throws DOMException
        ELEMENT_NODEまたはATTRIBUTE_NODE型の既存のノードを変更します。
        可能な場合は、指定されたノードの名前を単純に変更します。それ以外の場合は、指定された名前を持つ新しいノードを作成し、次の手順で既存のノードを新しいノードに置き換えます。

        指定されたノードの名前を単純に変更できない場合は、次の操作が実行されます。新しいノードが作成され、登録済のイベント・リスナーがすべて新しいノードに登録されます。古いノードに関連付けられていたユーザー・データがすべて、そのノードから削除されます。古いノードはその親から削除されます(そのノードに親が存在する場合)。削除された子が新しいノードに移動します。名前が変更されたノードがElementの場合は、その属性が新しいノードに移動します。新しいノードは、その親の子ノード・リスト内の古いノードがあった位置に挿入されます(そのリストが存在する場合)。古いノードに関連付けられていたユーザー・データが新しいノードに関連付けられます。

        名前が変更されるノードがElementの場合は、指定された属性のみが移動され、DTDに基づいて設定されたデフォルト属性が新しい要素名に従って更新されます。
        この実装は、他のスキーマからデフォルト属性を更新することもあります。 アプリケーションは、Document.normalizeDocument()を使用して、これらの属性を更新する必要があります。
        名前が変更されるノードがElementに関連付けられたAttrの場合、そのノードはまずElement属性マップから削除されます。
        次に、ノードの名前を変更すると(既存のノードを変更するか、前述の手順で新しいノードを作成する)、ノードが元に戻ります。
        さらに、
        • ユーザー・データ・イベントNODE_RENAMEDがトリガーされます。
        • 実装が「MutationNameEvents」機能をサポートしている場合は、このメソッドに関連する各変異操作によって適切なイベントがトリガーされ、最後にイベント{http://www.w3.org/2001/xml-events, DOMElementNameChanged}または{http://www.w3.org/2001/xml-events, DOMAttributeNameChanged}がトリガーされます。
        パラメータ:
        n - 名前を変更するノード。
        namespaceURI - 新しい名前空間URI。
        qualifiedName - 新しい修飾名。
        戻り値:
        名前が変更されたノード。 指定されたノード、または指定されたノードを置き換える新しいノード。
        例外:
        DOMException - NOT_SUPPORTED_ERR: 指定されたノードの型がELEMENT_NODEでもATTRIBUTE_NODEでもない場合、または実装がドキュメント要素の名前の変更をサポートしていない場合に発生します。
        INVALID_CHARACTER_ERR: 新しい修飾名が、使用中のXMLバージョン(Document.xmlVersion属性に指定されている)に定められているXML名でない場合に発生します。

        WRONG_DOCUMENT_ERR: 指定されたノードがこのドキュメントとは異なるドキュメントから生成された場合に発生します。

        NAMESPACE_ERR: qualifiedNameの修飾名の形式が正しくない場合、qualifiedNameが接頭辞を持ち、かつnamespaceURInullの場合、またはqualifiedNameが「xml」の接頭辞を持ち、かつnamespaceURIが「http://www.w3.org/XML/1998/namespace」の「XML名前空間」とは異なる場合に発生します。
        また、名前が変更されるノードが属性であるときに、qualifiedNameまたはその接頭辞が「xmlns」で、かつnamespaceURIが「http://www.w3.org/2000/xmlns/」とは異なる場合にも発生します。
        導入されたバージョン:
        1.5、DOMレベル3