//Auto-generated by kalyptus. DO NOT EDIT.
namespace DOM {
	using Kimono;
	using System;
	using Qyoto;
	/// <remarks>
	///  Each <code>Document</code> has a <code>doctype</code> attribute
	///  whose value is either <code>null</code> or a <code>DocumentType</code>
	///  object. The <code>DocumentType</code> interface in the
	///  DOM Level 1 Core provides an interface to the list of entities that
	///  are defined for the document, and little else because the effect of
	///  namespaces and the various XML scheme efforts on DTD representation
	///  are not clearly understood as of this writing.
	///   The DOM Level 1 doesn't support editing <code>DocumentType</code>
	///  nodes.
	///  </remarks>		<short>    Each <code>Document</code> has a <code>doctype</code> attribute  whose value is either <code>null</code> or a <code>DocumentType</code>  object.</short>
	[SmokeClass("DOM::DocumentType")]
	public class DocumentType : DOM.Node, IDisposable {
 		protected DocumentType(Type dummy) : base((Type) null) {}
		protected new void CreateProxy() {
			interceptor = new SmokeInvocation(typeof(DocumentType), this);
		}
		// DOM::DocumentType* DocumentType(DOM::DocumentTypeImpl* arg1); >>>> NOT CONVERTED
		public DocumentType() : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("DocumentType", "DocumentType()", typeof(void));
		}
		public DocumentType(DOM.DocumentType other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("DocumentType#", "DocumentType(const DOM::DocumentType&)", typeof(void), typeof(DOM.DocumentType), other);
		}
		public DocumentType(DOM.Node other) : this((Type) null) {
			CreateProxy();
			interceptor.Invoke("DocumentType#", "DocumentType(const DOM::Node&)", typeof(void), typeof(DOM.Node), other);
		}
		/// <remarks>
		///  The name of DTD; i.e., the name immediately following the
		///  <code>DOCTYPE</code> keyword.
		///      </remarks>		<short>    The name of DTD; i.</short>
		public DOM.DOMString Name() {
			return (DOM.DOMString) interceptor.Invoke("name", "name() const", typeof(DOM.DOMString));
		}
		/// <remarks>
		///  A <code>NamedNodeMap</code> containing the general entities,
		///  both external and internal, declared in the DTD. Duplicates are
		///  discarded. For example in: &lt;!DOCTYPE ex SYSTEM "ex.dtd" [
		///  &lt;!ENTITY foo "foo"> &lt;!ENTITY bar "bar"> &lt;!ENTITY % baz
		///  "baz"> ]> &lt;ex/> the interface provides access to <code>foo</code>
		///  and <code>bar</code> but not <code>baz</code> .
		///  Every node in this map also implements the <code>Entity</code>
		///  interface.
		///   The DOM Level 1 does not support editing entities, therefore
		///  <code>entities</code> cannot be altered in any way.
		///      </remarks>		<short>    A <code>NamedNodeMap</code> containing the general entities,  both external and internal, declared in the DTD.</short>
		public DOM.NamedNodeMap Entities() {
			return (DOM.NamedNodeMap) interceptor.Invoke("entities", "entities() const", typeof(DOM.NamedNodeMap));
		}
		/// <remarks>
		///  A <code>NamedNodeMap</code> containing the notations declared
		///  in the DTD. Duplicates are discarded. Every node in this map
		///  also implements the <code>Notation</code> interface.
		///   The DOM Level 1 does not support editing notations, therefore
		///  <code>notations</code> cannot be altered in any way.
		///      </remarks>		<short>    A <code>NamedNodeMap</code> containing the notations declared  in the DTD.</short>
		public DOM.NamedNodeMap Notations() {
			return (DOM.NamedNodeMap) interceptor.Invoke("notations", "notations() const", typeof(DOM.NamedNodeMap));
		}
		/// <remarks>
		///  Introduced in DOM Level 2
		///  The public identifier of the external subset.
		///      </remarks>		<short>    Introduced in DOM Level 2 </short>
		public DOM.DOMString PublicId() {
			return (DOM.DOMString) interceptor.Invoke("publicId", "publicId() const", typeof(DOM.DOMString));
		}
		/// <remarks>
		///  Introduced in DOM Level 2
		///  The system identifier of the external subset.
		///      </remarks>		<short>    Introduced in DOM Level 2 </short>
		public DOM.DOMString SystemId() {
			return (DOM.DOMString) interceptor.Invoke("systemId", "systemId() const", typeof(DOM.DOMString));
		}
		/// <remarks>
		///  Introduced in DOM Level 2
		///  The internal subset as a string.
		///  Note: The actual content returned depends on how much information is
		///  available to the implementation. This may vary depending on various
		///  parameters, including the XML processor used to build the document.
		///      </remarks>		<short>    Introduced in DOM Level 2 </short>
		public DOM.DOMString InternalSubset() {
			return (DOM.DOMString) interceptor.Invoke("internalSubset", "internalSubset() const", typeof(DOM.DOMString));
		}
		~DocumentType() {
			interceptor.Invoke("~DocumentType", "~DocumentType()", typeof(void));
		}
		public new void Dispose() {
			interceptor.Invoke("~DocumentType", "~DocumentType()", typeof(void));
		}
	}
}
