As promised, we're ready to start hacking on the validation stufff, and here comes a first request. :)
Our typical use case (may I remind you that we're building a full fledged "validation server?") requires multisptep validation, that is validating an input against a set of different schemas (say an XML Schema and a Schematron file, as an example). This process, to the final user, should be as transparent as possible, and we wont to provide her with an error report, in case something goes wrong, that gives as much information as possible: this means that, in case there are errors coming both from the first and the second phase, we don't want to stop processing the XML right away and provide just the first step errors. With the current validation block this isn't quite possible: the validation report transformer either passes the original events through or provides a totally different (error reporting) XML stream. We are currently thinking of somewhat hack our way through by providing a custom error handler, shared between the different validation steps (implementation note: a ThreadLocal, I guess), that silently accumulates error notifications, providing them all at once when processing ends. The final step of the pipeline could then be either a validation transformer that somewhat is aware of his "final" role or a custom transformer that checks if there are errors streaming them away or, if everything went smooth, just passes events through. Yes, we know how having a full fledged error reporting is somewhat a holy grail, but we'd like to strive to get as far as possible. Of course we are open to alternatives, and we'd love to know if this effort might be of interest to the validation block as a whole or if our needs are just too vertical to become a shared component. Opinions, anyone? (and yes, Pier, once this thingy is sorted out, the Schematron factory is next :)) Ciao, -- Gianugo Rabellino Pro-netics s.r.l. - http://www.pro-netics.com Orixo, the XML business alliance: http://www.orixo.com (blogging at http://www.rabellino.it/blog/)