Most XML parsers will give up after the first error in a document. In fact, IIRC, that's actually part of the 'official' spec for parsers.
I'm looking for something that will break that rule. It should take a given schema (assuming a valid schema) and an xml input and attempt to keep going after the first error and either raise an event for each error or return a list when finished, so I can use it to generate some kind of a report of the errors in the document. This requirement comes from above, so let's try to keep the purist "but it wouldn't make sense to keep going" comments to a minimum.
I'm looking for something that will evaluate both whether the document is well-formed and whether or not it conforms to the schema. Ideally it would evaluate those as different classes of error. I'd prefer a .Net solution but I could use a standalone .exe as well. If you know of one that uses a different platform go ahead and post it because someone else might find it useful.
Update: I expect that most of the documents where I use this will be mostly well-formed. Maybe an & included as data instead of & here and there, or an occasional mis-placed tag. I don't expect the parser to be able to recover from anything, just to make a best-effort to keep going. If a document is too out of whack it should spit out as much as it can followed by some kind of 'fatal, unable to continue' error. Otherwise the schema validation part is pretty easy.