Difference between validating and non validating parser
The Open Source parsers are invariably non-validating.
This table provides an alphabetical quick reference to the results of the analysis for non-validating processors: This processor is uniquely light weight; at about 33 KBytes of JAR file size (compressed, and including the SAX interfaces), it was designed for downloading in applets and explicitly traded off conformance for size.
These rejections include all of the direct failures, as well as the huge number of "false passes" on the negative tests ...
For example, syntax that looks like a parameter entity reference but is found inside of a comment should be ignored, but isn't.
The XML spec itself uses such constructs in its DTD, but its errata haven't yet been updated to address the issue of exactly where parameter entities get expanded and where they don't.
In short, most of the time if you feed this processor a legal XML document it will parse it without needing many resources.
But if you feed it illegal XML, it won't be good about telling you that anything was wrong; or exactly what was wrong.