//Auto-generated by kalyptus. DO NOT EDIT.
namespace DOM {
	using Kimono;
	using System;
	using Qyoto;
	/// <remarks>
	///  <code>DocumentFragment</code> is a "lightweight" or "minimal"
	///  <code>Document</code> 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 <code>Document</code> object could fulfil this role, a
	///  <code>Document</code> object can potentially be a heavyweight object,
	///  depending on the underlying implementation. What is really needed
	///  for this is a very lightweight object. <code>DocumentFragment</code>
	///  is such an object.
	///   Furthermore, various operations -- such as inserting nodes as
	///  children of another <code>Node</code> -- may take
	///  <code>DocumentFragment</code> objects as arguments; this results in all
	///  the child nodes of the <code>DocumentFragment</code> being moved
	///  to the child list of this node.
	///   The children of a <code>DocumentFragment</code> node are zero or
	///  more nodes representing the tops of any sub-trees defining the
	///  structure of the document. <code>DocumentFragment</code> 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
	///  <code>DocumentFragment</code> might have only one child and that child
	///  node could be a <code>Text</code> node. Such a structure model
	///  represents neither an HTML document nor a well-formed XML document.
	///   When a <code>DocumentFragment</code> is inserted into a
	///  <code>Document</code> (or indeed any other <code>Node</code> that may
	///  take children) the children of the <code>DocumentFragment</code>
	///  and not the <code>DocumentFragment</code> itself are inserted
	///  into the <code>Node</code> . This makes the
	///  <code>DocumentFragment</code> very useful when the user wishes to create
	///  nodes that are siblings; the <code>DocumentFragment</code> acts
	///  as the parent of these nodes so that the user can use the standard
	///  methods from the <code>Node</code> interface, such as
	///  <code>insertBefore</code>() and <code>appendChild</code>() .
	///  </remarks>		<short>    <code>DocumentFragment</code> is a "lightweight" or "minimal"  <code>Document</code> object.</short>
	[SmokeClass("DOM::DocumentFragment")]
	public class DocumentFragment : DOM.Node, IDisposable {
 		protected DocumentFragment(Type dummy) : base((Type) null) {}
		protected new void CreateProxy() {
			interceptor = new SmokeInvocation(typeof(DocumentFragment), this);
		}
		// DOM::DocumentFragment* DocumentFragment(DOM::DocumentFragmentImpl* arg1); >>>> NOT CONVERTED
		public DocumentFragment() : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("DocumentFragment", "DocumentFragment()", typeof(void));
		}
		public DocumentFragment(DOM.DocumentFragment other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("DocumentFragment#", "DocumentFragment(const DOM::DocumentFragment&)", typeof(void), typeof(DOM.DocumentFragment), other);
		}
		public DocumentFragment(DOM.Node other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("DocumentFragment#", "DocumentFragment(const DOM::Node&)", typeof(void), typeof(DOM.Node), other);
		}
		~DocumentFragment() {
			interceptor.Invoke("~DocumentFragment", "~DocumentFragment()", typeof(void));
		}
		public new void Dispose() {
			interceptor.Invoke("~DocumentFragment", "~DocumentFragment()", typeof(void));
		}
	}
}
