Inną opcją byłoby użycie JAXB do generowania obiektów Java i użycie Hibernate do stworzenia schematu opartego na hierarchii klas.
Biorąc to pod uwagę, zależy to od tego, co próbujesz zrobić, i myślę, że takie rozwiązania będą prawdopodobnie kruche i trudne do utrzymania.