Comment puis-je créer des tables de base de données à partir de fichiers XSD? [fermé]

J'ai un ensemble de XSD à partir duquel je génère des classes d'accès aux données, des procédures stockées et plus encore.

Ce que je n'ai pas est un moyen de générer une table de base de données à partir de ceux - ci-y a-t-il un outil qui va générer les instructions DDL pour moi?

Ce n'est pas la même chose que Créer une table DB à partir de la table dataset, car je n'ai pas de tables dataset, mais des xsd.

27
demandé sur Community 2008-09-26 14:04:26

8 réponses

Produit Commercial: Altova's XML Spy .

Notez qu'il n'y a pas de solution générale à cela. Un XSD peut facilement décrire quelque chose qui ne correspond pas à une base de données relationnelle.

Bien que vous puissiez essayer d '"automatiser" cela, vos XSD doivent être conçus avec une base de données relationnelle à l'esprit, sinon cela ne fonctionnera pas bien.

Si les XSD ont des fonctionnalités qui ne correspondent pas bien, vous devrez (1) concevoir un mappage, puis (2) écrire votre propre application pour traduire le XSD est dans DDL.

Été là, fait cela. Travailler pour la location-Pas open source disponible.

20
répondu S.Lott 2008-09-26 10:29:28

Il existe un outil de ligne de commande appelé XSD2DB , qui génère une base de données à partir de fichiers xsd, disponibles sur sourceforge.

41
répondu Spoike 2009-04-20 16:22:19

J'utilise XSLT pour le faire. Écrivez votre XSD puis passez vos modèles de données à travers un XSLT écrit à la main qui génère des commandes SQL. Écrire un XSLT est beaucoup plus rapide et réutilisable qu'un programme /script personnalisé que vous pouvez écrire.

Au moins c'est comme ça que je le fais au travail, et grâce à cela j'ai eu le temps de traîner sur SO:)

9
répondu Robert Gould 2008-09-26 10:59:36

La meilleure façon de créer le schéma de base de données SQL en utilisant un fichier XSD est un programme appelé Altova XMLSpy, c'est très simple:

  1. Créer un nouveau projet
  2. dans le dossier DTDs / Schemas, cliquez avec le bouton droit de la souris et sélectionnez Ajouter des fichiers
  3. sélectionne le fichier XSD
  4. Ouvrez le fichier XSD ajouté en double-cliquant sur
  5. Allez dans la barre d'outils et regardez Conversion
  6. ils sélectionnent créer une base de données de structure à partir du schéma XML
  7. Sélectionne la source de données
  8. et enfin donnez-lui d'exporter les appels de route immédiatement laisser leurs schémas scrip avec SQL Server pour exécuter la requête.

J'espère que ça aide.

4
répondu user3043225 2013-11-27 20:26:33

Les schémas XML décrivent des modèles de données hiérarchiques et peuvent ne pas correspondre à un modèle de données relationnel. Le mappage de XSD aux tables de base de données est très similaire aux objets de mappage aux tables de base de données, en fait vous pouvez utiliser un framework comme Castor qui fait les deux, il vous permet de prendre un schéma XML et de générer des classes, des tables de base de données et du code d'accès aux données. Je suppose qu'il y a maintenant beaucoup d'outils qui font la même chose, mais il y aura une courbe d'apprentissage et les mappages par défaut ne seront plus ce que vous vous voulez, donc vous devez passer du temps à personnaliser n'importe quel outil que vous utilisez.

XSLT pourrait être le moyen le plus rapide de générer exactement le code que vous voulez. Si c'est un petit schéma hardcoding, il pourrait être plus rapide que d'évaluer et d'apprendre un tas de nouvelles technologies.

3
répondu BeWarned 2008-11-18 01:08:42

Créez un modèle Java en utilisant Axis wsdl2java (qui peut prendre en charge .les fichiers xsd).

Utilisez un outil de génération de base de données pour Java qui prend un modèle Java. Sûrement quelque chose comme Hibernate peut le faire? J'ai écrit mon propre outil (prend quelques jours, génère également du code CRUD en Java) pour me faire gagner du temps au travail, peut-être que ce serait un bon projet personnel?

Ou tout simplement le faire manuellement afin que vous puissiez vérifier tout est correct et bon! Les outils de base de données sont assez bons maintenant que vous pouvez zip à travers la création de tables pour un modèle sans trop de problèmes.

0
répondu JeeBee 2008-09-26 10:54:03

Pourrait jeter un oeil à l'outil XSD dans visual studio 2k8... J'ai créé un ensemble de données relationnel à partir d'un xsd et cela pourrait vous aider en quelque sorte.

0
répondu Shawn 2008-09-27 17:23:58

Hyperjaxb (versions 2 et 3) génère en fait des fichiers de mappage hibernate et des objets d'entité associés et effectue également un test aller-retour pour un fichier XSD et un exemple de fichier XML donné. Vous pouvez capturer la sortie du journal et voir les instructions DDL par vous - même. J'ai dû bidouiller un peu, mais il vous donne une impression bleu pour commencer.

0
répondu 2008-11-18 00:45:55