org.w3c.dom

## Interface DOMImplementation

- All Known Subinterfaces:
    HTMLDOMImplementation

      public interface DOMImplementation

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

  See also the Document Object Model (DOM) Level 3 Core Specification.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Document` | `createDocument(java.lang.String namespaceURI, java.lang.String qualifiedName, DocumentType doctype)` Creates a DOM Document object of the specified type with its document element.
    `DocumentType` | `createDocumentType(java.lang.String qualifiedName, java.lang.String publicId, java.lang.String systemId)` Creates an empty `DocumentType` node.
    `java.lang.Object` | `getFeature(java.lang.String feature, java.lang.String version)` This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in .
    `boolean` | `hasFeature(java.lang.String feature, java.lang.String version)` Test if the DOM implementation implements a specific feature and version, as specified in .

- - ### Method Detail

    - #### hasFeature

          boolean hasFeature(java.lang.String feature,
                           java.lang.String version)

      Test if the DOM implementation implements a specific feature and version, as specified in .
      Parameters:
        `feature` - The name of the feature to test.
        `version` - This is the version number of the feature to test.
      Returns:
        `true` if the feature is implemented in the specified version, `false` otherwise.

    - #### createDocumentType

          DocumentType createDocumentType(java.lang.String qualifiedName,
                                        java.lang.String publicId,
                                        java.lang.String systemId)
                                          throws DOMException

      Creates an empty `DocumentType` node. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur..
      Parameters:
        `qualifiedName` - The qualified name of the document type to be created.
        `publicId` - The external subset public identifier.
        `systemId` - The external subset system identifier.
      Returns:
        A new `DocumentType` node with `Node.ownerDocument` set to `null`.
      Throws:
        `DOMException` - INVALID_CHARACTER_ERR: Raised if the specified qualified name is not an XML name according to [XML 1.0].
        NAMESPACE_ERR: Raised if the `qualifiedName` is malformed.
        NOT_SUPPORTED_ERR: May be raised if the implementation does not support the feature "XML" and the language exposed through the Document does not support XML Namespaces (such as [HTML 4.01]).
      Since:
        DOM Level 2

    - #### createDocument

          Document createDocument(java.lang.String namespaceURI,
                                java.lang.String qualifiedName,
                                DocumentType doctype)
                                  throws DOMException

      Creates a DOM Document object of the specified type with its document element.
      Note that based on the `DocumentType` given to create the document, the implementation may instantiate specialized `Document` objects that support additional features than the "Core", such as "HTML" [DOM Level 2 HTML] . On the other hand, setting the `DocumentType` after the document was created makes this very unlikely to happen. Alternatively, specialized `Document` creation methods, such as `createHTMLDocument` [DOM Level 2 HTML] , can be used to obtain specific types of `Document` objects.
      Parameters:
        `namespaceURI` - The namespace URI of the document element to create or `null`.
        `qualifiedName` - The qualified name of the document element to be created or `null`.
        `doctype` - 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.
      Returns:
        A new `Document` object with its document element. If the `NamespaceURI`, `qualifiedName`, and `doctype` are `null`, the returned `Document` is empty with no document element.
      Throws:
        `DOMException` - INVALID_CHARACTER_ERR: Raised if the specified qualified name is not an XML name according to [XML 1.0].
        NAMESPACE_ERR: Raised if the `qualifiedName` is malformed, if the `qualifiedName` has a prefix and the `namespaceURI` is `null`, or if the `qualifiedName` is `null` and the `namespaceURI` is different from `null`, or if the `qualifiedName` has a prefix that is "xml" and the `namespaceURI` is different from " http://www.w3.org/XML/1998/namespace" [XML Namespaces] , or if the DOM implementation does not support the `"XML"` feature but a non-null namespace URI was provided, since namespaces were defined by XML.
        WRONG_DOCUMENT_ERR: Raised if `doctype` has already been used with a different document or was created from a different implementation.
        NOT_SUPPORTED_ERR: May be raised if the implementation does not support the feature "XML" and the language exposed through the Document does not support XML Namespaces (such as [HTML 4.01]).
      Since:
        DOM Level 2

    - #### getFeature

          java.lang.Object getFeature(java.lang.String feature,
                                    java.lang.String version)

      This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the `DOMImplementation` interface.
      Parameters:
        `feature` - The name of the feature requested. Note that any plus sign "+" prepended to the name of the feature will be ignored since it is not significant in the context of this method.
        `version` - This is the version number of the feature to test.
      Returns:
        Returns an object which implements the specialized APIs of the specified feature and version, if any, or `null` if there is no object which implements interfaces associated with that feature. If the `DOMObject` returned by this method implements the `DOMImplementation` interface, it must delegate to the primary core `DOMImplementation` and not return results inconsistent with the primary core `DOMImplementation` such as `hasFeature`, `getFeature`, etc.
      Since:
        DOM Level 3

Copyright © 1999-2022 The Apache Software Foundation. All Rights Reserved.