J'étais sur un projet Java qui avait quelques exigences et nous avons trouvé que HyperJAXB était un bon ajustement. Il utilise JAXB pour passer du schéma XML aux objets Java, puis utilise Hibernate pour conserver les objets Java. La dernière version fonctionne avec tout ce qui prend en charge EJB3/JPA.
Normalement, il le fait sans produire le fichier de schéma de base de données, mais vous pouvez le faire cracher par Hibernate si vous en avez besoin. Parce que le schéma produit automatiquement, il peut sembler un peu moche jusqu'à ce que vous compreniez pourquoi il a été fait de la façon dont il est fait. Si vous n'utilisez pas Java mais que vous souhaitez utiliser quelque chose de similaire à HQL (Hibernate Query Language) pour accéder à la base de données, vous pouvez l'utiliser pour créer un convertisseur XSD vers DDL depuis la création du schéma généré avec les opérations de style HQL à l'esprit. Si cela ne vous semble pas assez laid, vous pouvez afficher la journalisation Hibernate et voir ce que SQL génère pour les différentes requêtes HQL et l'utiliser pour vous assurer que vous obtenez les bons modèles d'accès.
Donc, fondamentalement, ce n'est pas un bon moyen pour tout sauf Java :)