it-swarm.com.de

Wie kann ich Datenbanktabellen aus XSD-Dateien erstellen?

Ich habe eine Reihe von XSDs, aus denen ich Datenzugriffsklassen, gespeicherte Prozeduren und mehr generiere.

Was ich nicht habe, ist eine Möglichkeit, eine Datenbanktabelle daraus zu generieren. Gibt es ein Tool, das die DDL-Anweisungen für mich generiert?

Dies ist nicht dasselbe wie DB-Tabelle aus Dataset-Tabelle erstellen , da ich keine Dataset-Tabellen, sondern XSDs habe.

28
Oded

Kommerzielles Produkt: Altova's XML Spy .

Beachten Sie, dass es hierfür keine allgemeine Lösung gibt. Ein XSD kann leicht etwas beschreiben, das keiner relationalen Datenbank zugeordnet ist.

Während Sie versuchen können, dies zu "automatisieren", müssen Ihre XSDs unter Berücksichtigung einer relationalen Datenbank entworfen werden, da dies sonst nicht funktioniert.

Wenn die XSDs Funktionen haben, die nicht gut zugeordnet werden können, müssen Sie (1) eine Zuordnung entwerfen und dann (2) Ihre eigene Anwendung schreiben, um die XSDs in DDL zu übersetzen.

Kenne ich schon. Leiharbeit - kein Open Source verfügbar.

22
S.Lott

Es gibt ein Befehlszeilentool mit dem Namen XSD2DB , das eine Datenbank aus xsd-Dateien generiert und bei sourceforge verfügbar ist.

42
Spoike

Ich benutze XSLT, um das zu tun. Schreiben Sie Ihre XSD-Datei auf und übergeben Sie Ihre Datenmodelle einer handgeschriebenen XSLT-Datei, die SQL-Befehle ausgibt. Das Schreiben eines XSLT ist viel schneller und wiederverwendbarer als ein benutzerdefiniertes Programm/Skript, das Sie möglicherweise schreiben.

Zumindest mache ich das so bei der Arbeit, und dank dieser Zeit habe ich Zeit zum rumhängen SO :)

8
Robert Gould

Der beste Weg, um das SQL-Datenbankschema mit einer XSD-Datei zu erstellen, ist ein Programm namens Altova XMLSpy. Dies ist sehr einfach:

  1. Erstellen Sie ein neues Projekt
  2. Klicken Sie mit der rechten Maustaste auf den Ordner DTDs/Schemas und wählen Sie Dateien hinzufügen
  3. Wählt die XSD-Datei aus
  4. Öffnen Sie die hinzugefügte XSD-Datei mit einem Doppelklick
  5. Gehen Sie zur Symbolleiste und schauen Sie sich Conversion an
  6. Sie wählen Strukturdatenbank aus XML-Schema erstellen
  7. Wählt die Datenquelle aus
  8. Und schließlich geben Sie es an, um die Routenaufrufe sofort zu exportieren. Lassen Sie ihre Scrip-Schemata bei SQL Server, um die Abfrage auszuführen.

Ich hoffe es hilft.

4
user3043225

XML-Schemata beschreiben hierarchische Datenmodelle und lassen sich möglicherweise nicht gut auf ein relationales Datenmodell abbilden. Das Zuordnen von XSDs zu Datenbanktabellen ist dem Zuordnen von Objekten zu Datenbanktabellen sehr ähnlich. Tatsächlich können Sie ein Framework wie Castor verwenden, das beides ermöglicht. Sie können ein XML-Schema verwenden und Klassen, Datenbanktabellen und Datenzugriffscode generieren. Ich nehme an, dass es mittlerweile viele Tools gibt, die dasselbe tun, aber es wird eine Lernkurve geben und die Standardzuordnungen werden am liebsten nicht Ihren Wünschen entsprechen, sodass Sie Zeit damit verbringen müssen, das von Ihnen verwendete Tool anzupassen.

XSLT ist möglicherweise der schnellste Weg, um genau den Code zu generieren, den Sie möchten. Wenn es sich um eine kleine Schema-Hardcodierung handelt, ist sie möglicherweise schneller als das Bewerten und Erlernen einer Reihe neuer Technologien.

4
BeWarned

hyperjaxb (Versionen 2 und 3) generiert tatsächlich Zuordnungsdateien für den Ruhezustand und zugehörige Entitätsobjekte und führt außerdem einen Roundtrip-Test für eine bestimmte XSD- und XML-Beispieldatei durch. Sie können die Protokollausgabe erfassen und die DDL-Anweisungen selbst anzeigen. Ich musste sie ein wenig optimieren, aber es gibt Ihnen zunächst einen grundlegenden Entwurf.

0
uday

Schauen Sie sich vielleicht das XSD-Tool in Visual Studio 2k8 an ... Ich habe ein relationales Dataset aus einer XSD erstellt und es könnte Ihnen irgendwie helfen.

0
Shawn

Erstellen Sie ein Java Modell mit Axis wsdl2Java (das .xsd-Dateien aufnehmen kann).

Verwenden Sie ein Tool zur Datenbankgenerierung für Java, das ein Java) - Modell aufnimmt. Sicherlich kann so etwas wie Hibernate das? Ich habe mein eigenes Tool geschrieben (dauert ein paar Sekunden) Tage, erzeugt auch CRUD-Code in Java), um mir Zeit bei der Arbeit zu sparen, vielleicht wäre dies ein schönes persönliches Projekt?

Oder machen Sie es einfach manuell, damit Sie überprüfen können, ob alles korrekt und gut ist! Die Datenbanktools sind jetzt gut genug, um das Erstellen von Tabellen für ein Modell ohne zu viele Probleme zu vereinfachen.

0
JeeBee