Class: REXML::DocType

# REXML::DocType (Class)

In: | temp/doctype.rb
Parent: | Parent

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.

## Methods

add attribute_of attributes_of clone context entity new node_type write

## Constants

START | = | "<!DOCTYPE"
STOP | = | ">"
SYSTEM | = | "SYSTEM"
PUBLIC | = | "PUBLIC"
DEFAULT_ENTITIES | = | { 'gt'=>EntityConst::GT, 'lt'=>EntityConst::LT, 'quot'=>EntityConst::QUOT, "apos"=>EntityConst::APOS

## Attributes

entities | [R] | name is the name of the doctype external_id is the referenced DTD, if given
external_id | [R] | name is the name of the doctype external_id is the referenced DTD, if given
name | [R] | name is the name of the doctype external_id is the referenced DTD, if given
namespaces | [R] | name is the name of the doctype external_id is the referenced DTD, if given

## Included Modules

XMLTokens

## Public Class methods

new( first, parent=nil )

Constructor

         dt = DocType.new( 'foo', '-//I/Hate/External/IDs' )
         # <!DOCTYPE foo '-//I/Hate/External/IDs'>
         dt = DocType.new( doctype_to_clone )
         # Incomplete.  Shallow clone of doctype

`Note` that the constructor:

     Doctype.new( Source.new( "<!DOCTYPE foo 'bar'>" ) )

is deprecated. Do not use it. It will probably disappear.

## Public Instance methods

add(child)
attribute_of(element, attribute)
attributes_of(element)
clone()
context()
entity( name )
node_type()
write( output, indent=0, transitive=false, ie_hack=false )

output: | Where to write the string
indent: | An integer. If -1, no indenting will be used; otherwise, the indentation will be this number of spaces, and children will be indented an additional amount.
transitive: | If transitive is true and indent is >= 0, then the output will be pretty-printed in such a way that the added whitespace does not affect the absolute value of the document — that is, it leaves the value and number of Text nodes in the document unchanged.
ie_hack: | Internet Explorer is the worst piece of crap to have ever been written, with the possible exception of Windows itself. Since IE is unable to parse proper XML, we have to provide a hack to generate XML that IE’s limited abilities can handle. This hack inserts a space before the /> on empty tags.

[Validate]