Beispiel: Schreiben von XML-Daten in ein SQLite-Feld

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

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

Beispiel: Schreiben von XML-Daten in ein SQLite-Feld

In diesem Beispiel wird Schritt für Schritt beschrieben, wie Sie ein MapForce-Mapping erstellen, in dem Daten aus mehreren XML-Dateien gelesen und in eine SQLite-Datenbank geschrieben werden. Ziel des Mappings ist die Erstellung eines neuen Datenbankdatensatzes in der SQLite-Datenbank für jede XML-Quelldatei. Das XML-Dokument wird in den einzelnen Datensätzen als TEXT-Feld gespeichert.

 

Alle in diesem Beispiel verwendeten Dateien stehen unter dem folgenden Pfad zur Verfügung: <Dokumente>\Altova\MapForce2019\MapForceExamples\. Es werden die folgenden Dateien verwendet:

 

Die Mapping-Design-Datei

XmlToSqliteField.mfd

Die XML-Quelldateien

bookentry1.xml
bookentry2.xml
bookentry3.xml

Das für die Validierung verwendete XML-Schema

books.xsd

Die SQLite-Zieldatenbank

Library.sqlite

 

Die folgenden Schritte müssen durchgeführt werden, um das gewünschte Resultat zu erzielen:

 

1.Fügen Sie die XML-Komponente hinzu und konfigurieren Sie sie so, dass sie den Inhalt aus mehreren Dateien liest.
2.Fügen Sie die SQLite-Datenbankkomponente hinzu und weisen Sie dem TEXT-Zielfeld ein XML-Schema zu.
3.Erstellen Sie die Mapping-Verbindungen und konfigurieren Sie die Datenbank-INSERT-Aktion.

 

Schritt 1: Hinzufügen der XML-Komponente

1.Klicken Sie im Menü Einfügen auf XML-Schema/Datei und navigieren Sie im Verzeichnis <Dokumente>\Altova\MapForce2019\MapForceExamples\ zum Schema books.xsd. Wenn Sie aufgefordert werden, eine XML-Beispieldatei anzugeben, klicken sie auf Überspringen. Wenn Sie aufgefordert werden, ein Root-Element auszuwählen, wählen Sie Books aus.
2.Doppelklicken Sie auf die Komponentenüberschrift und geben Sie in das Feld XML-Input-Datei bookentry*.xml ein. Dadurch liest MapForce alle XML-Dateien, deren Name im Quellverzeichnis mit "bookentry-" beginnt. Nähere Informationen zu diesem Verfahren finden Sie unter Dynamische Verarbeitung mehrerer Input- oder Output-Dateien.

xml_to_sqlite_field_01

 

Schritt 2: Hinzufügen der SQLite-Komponente

Klicken Sie im Menü Einfügen auf Datenbank und befolgen Sie die Anweisungen des Assistenten, um eine Verbindung zur Datenbankdatei Library.sqlite aus dem Verzeichnis <Dokumente>\Altova\MapForce2019\MapForceExamples\ herzustellen (siehe auch Herstellen einer Verbindung zu einer bestehenden SQLite-Datenbank). Wenn Sie aufgefordert werden, die Datenbankobjekte auszuwählen, wählen Sie die Tabelle BOOKS aus.

xml_to_sqlite_field_02

Das Datenbankfeld, in das XML-Inhalt geschrieben werden soll, heißt metadata. Um diesem Feld ein XML-Schema zuzuweisen, klicken Sie mit der rechten Maustaste darauf und wählen Sie im Kontextmenü den Befehl XML-Schema Feld zuweisen.

xml_to_sqlite_field_03

Das dem Feld metadata zugewiesene Feld in diesem Tutorial ist dasselbe, das auch zum Validieren der XML-Quelldateien verwendet wird. Klicken Sie auf Durchsuchen und wählen Sie das Schema books.xsd aus dem Verzeichnis <Dokumente>\Altova\MapForce2019\MapForceExamples\ aus:

xml_to_sqlite_field_04

Das Schema books.xsd hat zwei Elemente mit einer globalen Deklaration: book und books. Wir definieren book in diesem Beispiel als das Root-Element der XML-Daten, die in das Datenbankfeld geschrieben werden. Klicken Sie auf Auswählen und wählen Sie book als Root-Element aus:

xml_to_sqlite_field_05

 
Schritt 3: Erstellen der Mapping-Verbindungen und Konfigurieren der Datenbank-INSERT-Aktion

Erstellen Sie die folgenden Mapping-Verbindungen:

xml_to_sqlite_field_07

Wie Sie in der Abbildung oben sehen, handelt es sich bei der Verbindung von book zu book um eine "Alles kopieren"-Verbindung, da im Quell- und Zielschema dasselbe Schema verwendet wird und die Namen der Sub-Einträge dieselben sind. Nähere Informationen zu solchen Verbindungen finden Sie unter "Alles kopieren"-Verbindungen.

 

Die oberste Verbindung (books zu BOOKS) iteriert durch die einzelnen book-Elemente in der Quelldatei und schreibt neue Datensätze in die Tabelle BOOKS. Klicken Sie auf die A:In -Schaltfläche der Datenbankkomponente und konfigurieren Sie die folgenden Datenbankaktualisierungseinstellungen:

xml_to_sqlite_field_06

Mit der Option Alle Datensätze LÖSCHEN wird MapForce angewiesen, den Inhalt der Tabelle BOOKS zu löschen, bevor neue Datensätze eingefügt werden.

 

Mit den Alle einfügen-Aktionen wird festgelegt, dass eine Datenbank INSERT-Abfrage durchgeführt wird. Das Feld id wird anhand der Datenbank selbst generiert, während das Feld metadata mit dem Wert aus dem Mapping befüllt wird.

 

Vergessen Sie nicht, das Mapping vor der Ausführung zu speichern.

 

Um das Mapping auszuführen und die generierte Ausgabe anzuzeigen, klicken Sie auf das Register Ausgabe. Beachten Sie, dass die Datenbank dadurch noch nicht sofort aktualisiert wird. Wenn Sie bereit sind, das generierte Datenbank-Skript auszuführen, wählen Sie den Menübefehl Ausgabe | SQL-Script ausführen (oder klicken Sie auf die Symbolleisten-Schaltfläche ic-start-sel).


© 2019 Altova GmbH