Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

# DOMImplementation

` public interface DOMImplementation `   
` `

|---|
| org.w3c.dom.DOMImplementation |

<br />

*** ** * ** ***

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](http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407).

## Summary

| ### Public methods ||
|---|---|
| ` abstract https://developer.android.com/reference/org/w3c/dom/Document` | ` https://developer.android.com/reference/org/w3c/dom/DOMImplementation#createDocument(java.lang.String,%20java.lang.String,%20org.w3c.dom.DocumentType)(https://developer.android.com/reference/java/lang/String namespaceURI, https://developer.android.com/reference/java/lang/String qualifiedName, https://developer.android.com/reference/org/w3c/dom/DocumentType doctype) ` Creates a DOM Document object of the specified type with its document element. |
| ` abstract https://developer.android.com/reference/org/w3c/dom/DocumentType` | ` https://developer.android.com/reference/org/w3c/dom/DOMImplementation#createDocumentType(java.lang.String,%20java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String qualifiedName, https://developer.android.com/reference/java/lang/String publicId, https://developer.android.com/reference/java/lang/String systemId) ` Creates an empty `DocumentType` node. |
| ` abstract https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/org/w3c/dom/DOMImplementation#getFeature(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String feature, https://developer.android.com/reference/java/lang/String version) ` This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . |
| ` abstract boolean` | ` https://developer.android.com/reference/org/w3c/dom/DOMImplementation#hasFeature(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String feature, https://developer.android.com/reference/java/lang/String version) ` Test if the DOM implementation implements a specific feature and version, as specified in . |

## Public methods

### createDocument

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract Document createDocument (String namespaceURI, 
                String qualifiedName, 
                DocumentType doctype)
```

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](http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109)\] . 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](http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109)\] , can be used to obtain specific types of `Document` objects.

<br />

| Parameters ||
|---|---|
| `namespaceURI` | `String`: The namespace URI of the document element to create or `null`. <br /> |
| `qualifiedName` | `String`: The qualified name of the document element to be created or `null`. <br /> |
| `doctype` | `DocumentType`: 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. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/org/w3c/dom/Document` | 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. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/org/w3c/dom/DOMException` | INVALID_CHARACTER_ERR: Raised if the specified qualified name is not an XML name according to \[[XML 1.0](http://www.w3.org/TR/2004/REC-xml-20040204)\]. 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](http://www.w3.org/TR/1999/REC-xml-names-19990114/)\] , 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](http://www.w3.org/TR/1999/REC-html401-19991224/)\]). |

### createDocumentType

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract DocumentType createDocumentType (String qualifiedName, 
                String publicId, 
                String systemId)
```

Creates an empty `DocumentType` node. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur..

<br />

| Parameters ||
|---|---|
| `qualifiedName` | `String`: The qualified name of the document type to be created. <br /> |
| `publicId` | `String`: The external subset public identifier. <br /> |
| `systemId` | `String`: The external subset system identifier. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/org/w3c/dom/DocumentType` | A new `DocumentType` node with `Node.ownerDocument` set to `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/org/w3c/dom/DOMException` | INVALID_CHARACTER_ERR: Raised if the specified qualified name is not an XML name according to \[[XML 1.0](http://www.w3.org/TR/2004/REC-xml-20040204)\]. 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](http://www.w3.org/TR/1999/REC-html401-19991224/)\]). |

### getFeature

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract Object getFeature (String feature, 
                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.

<br />

| Parameters ||
|---|---|
| `feature` | `String`: 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. <br /> |
| `version` | `String`: This is the version number of the feature to test. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/Object` | 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. <br /> |

### hasFeature

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract boolean hasFeature (String feature, 
                String version)
```

Test if the DOM implementation implements a specific feature and version, as specified in .

<br />

| Parameters ||
|---|---|
| `feature` | `String`: The name of the feature to test. <br /> |
| `version` | `String`: This is the version number of the feature to test. <br /> |

| Returns ||
|---|---|
| `boolean` | `true` if the feature is implemented in the specified version, `false` otherwise. <br /> |