Okay, just following up my own email from the afternoon: whilst I like the idea with the use of the MappingException, this does not work as intended. The class MappingException is part of the XML module, and the core module (where the Annotation* classes live) must not depend upon the XML module. I have tried to move the MappingException class to the core module (within the same package, as this class is part of the public API) ... but then I get sealing exceptions.
As such, I'd introduce a new Exception (MappingException, but local to the annotation processing package(s), and then (somewhere else) convert this to the XML MappingException. I hope I have expressed myslef clearly .. ,.