# File rexml/doctype.rb, line 130
    def DocType.parse_stream source, listener
      md = source.match( PATTERN_RE, true )
      identity = md[1]
      close = md[2]

      identity =~ IDENTITY
      name = $1

      raise "DOCTYPE is missing a name" if name.nil?

      pub_sys = $2.nil? ? nil : $2.strip
      long_name = $3.nil? ? nil : $3.strip
      uri = $4.nil? ? nil : $4.strip

      listener.doctype name, pub_sys, long_name, uri
      return if close == ">"
      parse_entities_source source, listener
    end