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