new (REXML::DocType)

    # File temp/doctype.rb, line 41
                    def initialize( first, parent=nil )
                            @entities = DEFAULT_ENTITIES
                            @long_name = @uri = nil
                            if first.kind_of? String
                                    super()
                                    @name = first
                                    @external_id = parent
                            elsif first.kind_of? DocType
                                    super( parent )
                                    @name = first.name
                                    @external_id = first.external_id
                            elsif first.kind_of? Array
                                    super( parent )
                                    @name = first[0]
                                    @external_id = first[1]
                                    @long_name = first[2]
                                    @uri = first[3]
          elsif first.kind_of? Source
            super( parent )
            parser = Parsers::BaseParser.new( first )
            event = parser.pull
            if event[0] == :start_doctype
              @name, @external_id, @long_name, @uri, = event[1..-1]
            end
          else
            super()
                            end
                    end