Un'altra opzione sarebbe usare JAXB per generare oggetti Java e usare Hibernate per creare uno schema basato sulla gerarchia delle classi.
Detto questo, dipende da cosa stai cercando di fare e penso che tali soluzioni saranno probabilmente fragili e difficili da mantenere.