# DocumentFragment

public interface **DocumentFragment** implements [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) `DocumentFragment` is a "lightweight" or "minimal"
`Document` object. It is very common to want to be able to
extract a portion of a document's tree or to create a new fragment of a
document. Imagine implementing a user command like cut or rearranging a
document by moving fragments around. It is desirable to have an object
which can hold such fragments and it is quite natural to use a Node for
this purpose. While it is true that a `Document` object could
fulfill this role, a `Document` object can potentially be a
heavyweight object, depending on the underlying implementation. What is
really needed for this is a very lightweight object.
`DocumentFragment` is such an object.

Furthermore, various operations -- such as inserting nodes as children
of another `Node` -- may take `DocumentFragment`
objects as arguments; this results in all the child nodes of the
`DocumentFragment` being moved to the child list of this node.

The children of a `DocumentFragment` node are zero or more
nodes representing the tops of any sub-trees defining the structure of
the document. `DocumentFragment` nodes do not need to be
well-formed XML documents (although they do need to follow the rules
imposed upon well-formed XML parsed entities, which can have multiple top
nodes). For example, a `DocumentFragment` might have only one
child and that child node could be a `Text` node. Such a
structure model represents neither an HTML document nor a well-formed XML
document.

When a `DocumentFragment` is inserted into a
`Document` (or indeed any other `Node` that may
take children) the children of the `DocumentFragment` and not
the `DocumentFragment` itself are inserted into the
`Node`. This makes the `DocumentFragment` very
useful when the user wishes to create nodes that are siblings; the
`DocumentFragment` acts as the parent of these nodes so that
the user can use the standard methods from the `Node`
interface, such as `Node.insertBefore` and
`Node.appendChild`.

See also the [Document Object Model (DOM) Level 3 Core Specification](http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407).

### Inherited Constant Summary

From interface [org.w3c.dom.Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html)

|---|---|---|
| short | [ATTRIBUTE_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#ATTRIBUTE_NODE) | The node is an `Attr`. |
| short | [CDATA_SECTION_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#CDATA_SECTION_NODE) | The node is a `CDATASection`. |
| short | [COMMENT_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#COMMENT_NODE) | The node is a `Comment`. |
| short | [DOCUMENT_FRAGMENT_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#DOCUMENT_FRAGMENT_NODE) | The node is a `DocumentFragment`. |
| short | [DOCUMENT_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#DOCUMENT_NODE) | The node is a `Document`. |
| short | [DOCUMENT_POSITION_CONTAINED_BY](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#DOCUMENT_POSITION_CONTAINED_BY) | The node is contained by the reference node. |
| short | [DOCUMENT_POSITION_CONTAINS](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#DOCUMENT_POSITION_CONTAINS) | The node contains the reference node. |
| short | [DOCUMENT_POSITION_DISCONNECTED](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#DOCUMENT_POSITION_DISCONNECTED) | The two nodes are disconnected. |
| short | [DOCUMENT_POSITION_FOLLOWING](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#DOCUMENT_POSITION_FOLLOWING) | The node follows the reference node. |
| short | [DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC) | The determination of preceding versus following is implementation-specific. |
| short | [DOCUMENT_POSITION_PRECEDING](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#DOCUMENT_POSITION_PRECEDING) | The second node precedes the reference node. |
| short | [DOCUMENT_TYPE_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#DOCUMENT_TYPE_NODE) | The node is a `DocumentType`. |
| short | [ELEMENT_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#ELEMENT_NODE) | The node is an `Element`. |
| short | [ENTITY_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#ENTITY_NODE) | The node is an `Entity`. |
| short | [ENTITY_REFERENCE_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#ENTITY_REFERENCE_NODE) | The node is an `EntityReference`. |
| short | [NOTATION_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#NOTATION_NODE) | The node is a `Notation`. |
| short | [PROCESSING_INSTRUCTION_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#PROCESSING_INSTRUCTION_NODE) | The node is a `ProcessingInstruction`. |
| short | [TEXT_NODE](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#TEXT_NODE) | The node is a `Text` node. |

### Inherited Method Summary

From interface [org.w3c.dom.Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html)

|---|---|
| abstract [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) | [appendChild](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#appendChild(org.w3c.dom.Node))([Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) newChild) Adds the node `newChild` to the end of the list of children of this node. |
| abstract [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) | [cloneNode](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#cloneNode(boolean))(boolean deep) Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. |
| abstract short | [compareDocumentPosition](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#compareDocumentPosition(org.w3c.dom.Node))([Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) other) Compares the reference node, i.e. |
| abstract [NamedNodeMap](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/NamedNodeMap.html) | [getAttributes](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getAttributes())() A `NamedNodeMap` containing the attributes of this node (if it is an `Element`) or `null` otherwise. |
| abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [getBaseURI](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getBaseURI())() The absolute base URI of this node or `null` if the implementation wasn't able to obtain an absolute URI. |
| abstract [NodeList](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/NodeList.html) | [getChildNodes](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getChildNodes())() A `NodeList` that contains all children of this node. |
| abstract [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) | [getFeature](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getFeature(java.lang.String,%20java.lang.String))([String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) feature, [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) version) This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . |
| abstract [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) | [getFirstChild](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getFirstChild())() The first child of this node. |
| abstract [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) | [getLastChild](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getLastChild())() The last child of this node. |
| abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [getLocalName](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getLocalName())() Returns the local part of the qualified name of this node. |
| abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [getNamespaceURI](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getNamespaceURI())() The namespace URI of this node, or `null` if it is unspecified (see ). |
| abstract [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) | [getNextSibling](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getNextSibling())() The node immediately following this node. |
| abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [getNodeName](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getNodeName())() The name of this node, depending on its type; see the table above. |
| abstract short | [getNodeType](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getNodeType())() A code representing the type of the underlying object, as defined above. |
| abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [getNodeValue](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getNodeValue())() The value of this node, depending on its type; see the table above. |
| abstract [Document](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Document.html) | [getOwnerDocument](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getOwnerDocument())() The `Document` object associated with this node. |
| abstract [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) | [getParentNode](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getParentNode())() The parent of this node. |
| abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [getPrefix](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getPrefix())() The namespace prefix of this node, or `null` if it is unspecified. |
| abstract [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) | [getPreviousSibling](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getPreviousSibling())() The node immediately preceding this node. |
| abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [getTextContent](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getTextContent())() This attribute returns the text content of this node and its descendants. |
| abstract [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) | [getUserData](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#getUserData(java.lang.String))([String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) key) Retrieves the object associated to a key on a this node. |
| abstract boolean | [hasAttributes](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#hasAttributes())() Returns whether this node (if it is an element) has any attributes. |
| abstract boolean | [hasChildNodes](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#hasChildNodes())() Returns whether this node has any children. |
| abstract [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) | [insertBefore](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#insertBefore(org.w3c.dom.Node,%20org.w3c.dom.Node))([Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) newChild, [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) refChild) Inserts the node `newChild` before the existing child node `refChild`. |
| abstract boolean | [isDefaultNamespace](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#isDefaultNamespace(java.lang.String))([String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) namespaceURI) This method checks if the specified `namespaceURI` is the default namespace or not. |
| abstract boolean | [isEqualNode](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#isEqualNode(org.w3c.dom.Node))([Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) arg) Tests whether two nodes are equal. |
| abstract boolean | [isSameNode](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#isSameNode(org.w3c.dom.Node))([Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) other) Returns whether this node is the same node as the given one. |
| abstract boolean | [isSupported](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#isSupported(java.lang.String,%20java.lang.String))([String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) feature, [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) version) Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in . |
| abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [lookupNamespaceURI](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#lookupNamespaceURI(java.lang.String))([String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) prefix) Look up the namespace URI associated to the given prefix, starting from this node. |
| abstract [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [lookupPrefix](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#lookupPrefix(java.lang.String))([String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) namespaceURI) Look up the prefix associated to the given namespace URI, starting from this node. |
| abstract void | [normalize](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#normalize())() Puts all `Text` nodes in the full depth of the sub-tree underneath this `Node`, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates `Text` nodes, i.e., there are neither adjacent `Text` nodes nor empty `Text` nodes. |
| abstract [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) | [removeChild](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#removeChild(org.w3c.dom.Node))([Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) oldChild) Removes the child node indicated by `oldChild` from the list of children, and returns it. |
| abstract [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) | [replaceChild](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#replaceChild(org.w3c.dom.Node,%20org.w3c.dom.Node))([Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) newChild, [Node](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html) oldChild) Replaces the child node `oldChild` with `newChild` in the list of children, and returns the `oldChild` node. |
| abstract void | [setNodeValue](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#setNodeValue(java.lang.String))([String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) nodeValue) The value of this node, depending on its type; see the table above. |
| abstract void | [setPrefix](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#setPrefix(java.lang.String))([String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) prefix) The namespace prefix of this node, or `null` if it is unspecified. |
| abstract void | [setTextContent](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#setTextContent(java.lang.String))([String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) textContent) This attribute returns the text content of this node and its descendants. |
| abstract [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) | [setUserData](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/Node.html#setUserData(java.lang.String,%20java.lang.Object,%20org.w3c.dom.UserDataHandler))([String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) key, [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) data, [UserDataHandler](https://developers.google.com/j2objc/javadoc/jre/reference/org/w3c/dom/UserDataHandler.html) handler) Associate an object to a key on this node. |