Represents an XML DOCTYPE declaration; that is, the contents of
<!DOCTYPE ... >. DOCTYPES can be used to declare the DTD of a document, as well as being used to declare
entities used in the document.
Constructor @param parent If first is String,
it must be String and set to external_id.
Otherwise, it is set as the parent of this object. @param first can be
multiple types. If String, name is set to this
and external_id is set to nil. If DocType, the
object is cloned. If Source, the source is
scanned for the DOCTYPE declaration.