The Xml Validator component stops on the first error, so you only get errors one at a time.
I have implemented Xml validation using a map inside an orchestration. The map is a custom Xslt based on a Schematron pattern.
This is able to return more than one error and also enables validation that is not possible using Xml Schema.
e.g. if <DocumentType> = "CREDIT NOTE" then <OriginalInvoiceNumber> must contain a value.
and I have also summed line totals which must match net totals, calculated tax, etc
You can only use this in an orchestration, because the output is an error document. If there are no errors then the orchestration proceeds using the original message, otherwise return original message and error document to the originator.
There is a performance overhead, so it is not appropriate for all circumstances