# File lib/xml/saxdriver.rb, line 342
      def parse(sysid)
        @documentHandler.setDocumentLocator(self)
        if sysid.kind_of?(XML::SAX::InputSource)
          inputSource = openInputStream(sysid.dup)
        else
          inputSource = openInputStream(XML::SAX::InputSource.new(sysid))
        end
        encoding = inputSource.getEncoding
        if encoding
          parser = SAXParser.new(self, encoding)
        else
          parser = SAXParser.new(self)
        end

        pushLocator(DummyLocator.new(inputSource.getSystemId))
        begin
          @documentHandler.startDocument
          parser.parse(inputSource)
          @documentHandler.endDocument
        rescue XML::Parser::Error
          @errorHandler.fatalError(XML::SAX::SAXParseException.new($!.to_s,
                                                                   self))
        rescue
          @errorHandler.fatalError($!)
        end
      end