I was looking at options to discover errors in XML data during parsing (e.g.. to nicely recover), but wasn't able to get far. The most you can get, is to configure SAX-based parser such as Xerces to continue parsing on any errors, implement custom error handler that would collect errors and then process these errors in document handler methods and clean/reset error list after processing of each element. The problem with this approach that errors (actually SAXException) does not have information about attribute names and the only way to get actual attribute names is to parse error message (which I consider nearly impossible).
I've looked at MSV tools, but there is no contextual error information either. More over I wasn't able to get all the errors for current element from MSV's Verifier.