This class also wraps SAXException to a RuntimeException so that the exception thrown inside the error handler can abort the process.
At the end of the day, we need to know if there was any error. So it is important that all the error messages go through this object.
This code consists of two main portions.
Singleton.