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 t