Další možností by bylo použití JAXB ke generování objektů Java a použití Hibernate k vytvoření schématu založeného na hierarchii tříd.
Jak již bylo řečeno, záleží na tom, co se snažíte dělat, a myslím si, že taková řešení budou pravděpodobně křehká a těžko udržovatelná.