    # 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