To hide all these details and requirements I've written up an API generator. The original jboss-metadata should have had this kind of interface hierarchy anyway, so that details like parser and merging (possibly other logic) would be hidden from anybody.
To get the generated API classes you would need to build the project.
http://github.com/wolfc/jboss-beach-metadata
The generator itself is one big ugly ball of code and not really relevant. (An as long it does the job thing.)
Note that currently it only does javaee_6.xsd, while each tech should have an independent release cycle.