Mehrere Quellkomponenten auf mehrere Zielkomponenten
In diesem Tutorial wird gezeigt, wie Sie mit derselben Transformation Daten aus mehreren Quelldateien auf mehrere Zieldateien mappen. Um dies zu veranschaulichen, werden wir nun ein Mapping erstellen, mit dem Folgendes bewerkstelligt werden soll:
1.Auslesen der Daten aus mehreren XML-Dateien im selben Verzeichnis.
2.Mappen der Schemas der einzelnen Dateien auf ein neues Schema.
3.Generieren einer neuen XML-Zieldatei mit dem neuen Schema für jede XML-Quelldatei.
4.Entfernen der XML- und Namespace-Deklaration aus den generierten Dateien.
In der Abbildung unten sehen Sie ein abstraktes Modell der in diesem Tutorial verwendeten Datentransformation:

Ausgangspunkt
Als XML-Quelldateien verwenden wir die drei Dateien BookTitle1.xml, BookTitle2.xml und BookTitle3.xml. Jede der drei Dateien basiert auf Books.xsd und es ist darin ein einziges Buch gespeichert (siehe unten).
BookTitle1.xml
<?xml version="1.0" encoding="UTF-8"?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Books.xsd">
<book id="1">
<author>Mark Twain</author>
<title>The Adventures of Tom Sawyer</title>
<category>Fiction</category>
<year>1876</year>
</book>
</books>
BookTitle2.xml
<?xml version="1.0" encoding="UTF-8"?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Books.xsd">
<book id="2">
<author>Franz Kafka</author>
<title>The Metamorphosis</title>
<category>Fiction</category>
<year>1912</year>
</book>
</books>
BookTitle3.xml
<?xml version="1.0" encoding="UTF-8"?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Books.xsd">
<book id="3">
<author>Herman Melville</author>
<title>Moby Dick</title>
<category>Fiction</category>
<year>1851</year>
</book>
</books>
Weitere Schritte
Wir gehen nun folgendermaßen vor:
1.Zuerst muss das Quellschema (Books.xsd) auf das Zielschema (Library.xsd) gemappt werden.
2.Nach der Transformation generiert das Mapping drei Dateien anhand dieses neuen Schemas (siehe Codefragmente unten).
3.Wir werden das Mapping so konfigurieren, dass die Namen der drei generierten Dateien Publication1.xml, Publication2.xml und Publication3.xml lauten. Beachten Sie, dass die XML-Deklaration und die Namespace-Deklaration entfernt werden müssen.
Publication1.xml
<library>
<publication>
<id>1</id>
<author>Mark Twain</author>
<title>The Adventures of Tom Sawyer</title>
<genre>Fiction</genre>
<publish_year>1876</publish_year>
</publication>
</library>
Publication2.xml
<library>
<publication>
<id>2</id>
<author>Franz Kafka</author>
<title>The Metamorphosis</title>
<genre>Fiction</genre>
<publish_year>1912</publish_year>
</publication>
</library>
Publication3.xml
<library>
<publication>
<id>3</id>
<author>Herman Melville</author>
<title>Moby Dick</title>
<genre>Fiction</genre>
<publish_year>1851</publish_year>
</publication>
</library>
Um die erforderliche Datentransformation durchzuführen, gehen Sie vor, wie in den nachfolgenden Unterabschnitten beschrieben.