Opsi lainnya adalah menggunakan JAXB untuk menghasilkan objek Java, dan menggunakan Hibernate untuk membuat skema berdasarkan hierarki kelas.
Meskipun demikian, itu tergantung pada apa yang Anda coba lakukan, dan saya pikir solusi seperti itu mungkin akan rapuh dan sulit dipertahankan.