Beispiel: Mappen von Daten von XML auf SQLite

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Datenquellen und -ziele > Datenbanken und MapForce > Mappen von Daten auf Datenbanken >

Beispiel: Mappen von Daten von XML auf SQLite

In diesem Beispiel wird Schritt für Schritt beschrieben, wie Sie ein MapForce Mapping erstellen, das Daten aus einer XML-Datei liest und diese in eine SQLite-Datenbank schreibt. Zu diesem Beispiel gibt es eine Mapping-Beispieldesigndatei (.mfd-Datei). Wenn Sie die Datei vor Beginn dieses Beispiels öffnen möchten, finden Sie die Datei unter dem folgenden Pfad: <Dokumente>\Altova\MapForce2019\MapForceExamples\XMLtoSQLite.mfd.

 

Ziel des Beispiels ist es, Daten aus einer XML-Datei in eine SQLite-Datenbank einzufügen. Dazu benötigen Sie eine leere SQLite-Datenbank, in die die Daten geschrieben werden. Wie unten gezeigt, können Sie die SQLite-Datenbank entweder mit Altova DatabaseSpy erstellen und anzeigen oder über die Befehlszeilen-Shell, die Sie von der offiziellen SQLite-Website herunterladen können.

 

 

So erstellen Sie die SQLite-Datenbank:

Wenn DatabaseSpy auf Ihrem Rechner (entweder als Standalone-Produkt oder als Teil des Altova MissionKit) installiert ist, können Sie die neue SQLite-Datenbank folgendermaßen erstellen:

 

1.Starten Sie DatabaseSpy.
2.Klicken Sie im Menü Datei auf Datenbankverbindung erstellen.
3.Klicken Sie auf Verbindungsassistent und anschließend aufSQLite.
4.Klicken Sie auf Neue SQLite-Datenbank erstellen, geben Sie als Pfad c:\sqlite\articles.sqlite ein und klicken Sie auf Verbinden.
5.Wenn Sie aufgefordert werden, einen Datenquellennamen zu definieren, lassen Sie den Standardnamen unverändert.
6.Öffnen Sie einen neuen SQL Editor (Strg+N) und führen Sie an der Datenbank die folgende Abfrage aus:

create table articles (number smallint, name varchar(10), singleprice real);

Gehen Sie andernfalls folgendermaßen vor, um die Datenbank zu erstellen:

 

1.Laden Sie die SQLite Command-Line Shell für Windows von der SQLite Download-Seite (http://www.sqlite.org/download.html) herunter und entpacken Sie das .zip-Archiv in ein Verzeichnis auf Ihrem lokalen Rechner (in diesem Beispiel in c:\sqlite).
2.Führen Sie c:\sqlite\sqlite3.exe aus und geben Sie die folgende Anweisung ein:

 

create table articles (number smallint, name varchar(10), singleprice real);

 

Dadurch wird die Tabelle articles in der Arbeitsspeicherdatenbank erstellt. Die Tabelle articles besteht aus drei Spalten: number, name und singleprice. In diesen Spalten sollen die Daten aus den gleichnamigen Elementen aus dem XML-Quellschema gespeichert werden. Für jede Spalte ist ein für die jeweiligen Daten in der Spalte geeigneter Datentyp deklariert.

3.Führen Sie den folgenden Befehl aus:

 

.save articles.sqlite

 

Daraufhin wird die Datenbank im Arbeitsspeicher unter dem aktuellen Arbeitspfad c:\sqlite\Articles.db gespeichert. Beachten Sie, dass Sie diesen Pfad später referenzieren müssen.

 

Sie haben die für dieses Beispiel benötigte SQLite-Beispieldatenbank nun fertig erstellt.

 

So erstellen Sie das XML-auf-SQLite-Mapping-Design:

1.Starten Sie MapForce und stellen Sie sicher, dass als Transformationssprache BUILT-IN (Menübefehl Ausgabe | Built-in Ausführungsprozessor) ausgewählt ist.
2.Fügen Sie die Datei Articles.xml aus dem Ordner <Documents>\Altova\MapForce2019\MapForceExamples\Tutorial zum Mapping-Bereich hinzu (Menübefehl Einfügen | XML-Schema/Datei einfügen).
3.Fügen Sie die zuvor erstellte Datenbank Articles.sqlite aus dem Ordner zum Mapping-Bereich hinzu (Menübefehl Einfügen | Datenbank einfügen) und wählen Sie anschließend SQLite aus.
4.Klicken Sie auf Verbinden. Wenn Sie aufgefordert werden, die Datenbankobjekte auszuwählen, wählen Sie die Tabelle articles aus.

mff_update_db_tutorial2

5.Erstellen Sie die folgenden Verbindungen:

mff_update_db_tutorial3

6.Klicken Sie auf die A:In-Schaltfläche der Datenbankkomponente und wählen Sie die Option Alle Datensätze löschen aus. Damit stellen Sie sicher, dass bei jeder Ausführung des Mappings zuerst alle vorhandenen Datenbankzeilen gelöscht werden, damit es zu keinen doppelt vorhandenen Zeilen kommt.

mff_update_db_tutorial4

7.Klicken Sie im Hauptmappingfenster auf das Register Ausgabe. MapForce führt das Mapping mit dem Built-in-Ausführungsprozessor aus und zeigt die erstellte SQL-Abfrage im Ausgabefenster an.

mff_update_db_tutorial5

8.Führen Sie das SQL-Script aus, um die Datenbank zu befüllen (Menübefehl Ausgabe | SQL-Script ausführen). Falls keine Laufzeitfehler auftreten, werden die Datensätze in die SQLite-Datenbank eingefügt.

mff_update_db_tutorial6

 

So überprüfen Sie, ob die Daten korrekt in die SQLite-Datenbank eingefügt wurden:

1.Klicken Sie in MapForce auf das Register DB-Abfrage.
2.Wählen Sie aus der Dropdown-Liste im oberen Bereich des Fensters SQL-Abfrage den Eintrag articles aus.
3.Geben Sie im SQL Editor die folgende Abfrage ein:

select * from articles;

 

Führen Sie alternativ dazu die folgenden Schritte durch:

 

1.Führen Sie die Datei c:\sqlite\sqlite3.exe aus und öffnen Sie die Datenbank mit dem Befehl:

 

.open Articles.sqlite

 

2.Führen Sie die folgenden SELECT-Anweisung aus:

 

select * from articles;

 

Unabhängig davon, welche Methode Sie zur Auswahl der Tabellendaten verwenden (MapForce oder SQLite Shell), sollte das Ergebnis der Abfrage nun vier Zeilen sein. Dies entspricht der Anzahl der Datensätze in der XML-Datei.


© 2019 Altova GmbH