Eine Quellkomponente auf eine Zielkomponente
In diesem Tutorial wird beschrieben, wie Sie ein Mapping für eines der einfachsten Szenarien erstellen. Ziel ist es, die Daten aus der XML-Datei A, (der das XML-Schema A zugewiesen ist), in die XML-Datei B (der das XML-Schema B zugewiesen ist) zu übertragen. Im Prinzip wird dabei folgendermaßen vorgegangen:
1.Da wir zwei Datenstrukturen verwenden, werden wir in unserem Mapping-Design zwei Komponenten (eine Quell- und eine Zielkomponente) erstellen.
2.Da die Transformation von einem Dokument in ein anderes mit Hilfe einer geeigneten Transformationssprache ausgeführt wird, wählen wir eine Transformationssprache aus.
3.Anschließend müssen wir Nodes mappen, indem wir einen Quell-Node mit dem gewünschten Ziel-Node verbinden. Diese Verbindungen bilden das Mapping und bestimmen, welcher Quell-Node auf welchen Ziel-Node gemappt wird.
4.Als Ergebnis des Mappings erhalten wir das XML-Zieldokument, das gemäß dem Zielschema gültig ist.
5.Schlussendlich können wir die XML-Ausgabedatei speichern.
Im abstrakten Modell unten sehen Sie, wie Datentransformationen durchgeführt werden.
Abstraktes Modell
Im unten gezeigten abstrakten Modell wird die Datentransformation in diesem Tutorial veranschaulicht:

Unser Mapping hat eine Quell- und eine Zielkomponente. Im Quellschema (Books.xsd) ist die Struktur der Quellinstanzdatei (Books.xml) beschrieben. Im Zielschema (Library.xsd) ist die Struktur der Zielinstanzdatei (BooksOutput.xml) beschrieben. Wenn Sie die Nodes der Quellkomponente mit den entsprechenden Nodes der Zielkomponente verbinden, generiert das Mapping Transformationscode in XSLT 2.0. Der Transformationscode liest Daten aus Books.xml aus und schreibt diese in BooksOutput.xml.
Quell- und Zieldatei
Das nachstehende Codefragment enthält die Beispieldaten aus der Datei Books.xml, die als Datenquelle verwendet wird.
<books>
<book id="1">
<author>Mark Twain</author>
<title>The Adventures of Tom Sawyer</title>
<category>Fiction</category>
<year>1876</year>
</book>
<book id="2">
<author>Franz Kafka</author>
<title>The Metamorphosis</title>
<category>Fiction</category>
<year>1912</year>
</book>
</books>
So sollten die Daten in der Zieldatei namens BooksOutput.xml aussehen:
<library>
<last_updated>2015-06-02T16:26:55+02:00</last_updated>
<publication>
<id>1</id>
<author>Mark Twain</author>
<title>The Adventures of Tom Sawyer</title>
<genre>Fiction</genre>
<publish_year>1876</publish_year>
</publication>
<publication>
<id>2</id>
<author>Franz Kafka</author>
<title>The Metamorphosis</title>
<genre>Fiction</genre>
<publish_year>1912</publish_year>
</publication>
</library>
Einige Elementnamen in der XML-Quell- und Zieldatei sind nicht identisch. Unser Ziel ist, die Elemente <author>, <title>, <genre> und <publish_year> der Zieldatei mit dem Inhalt aus den entsprechenden Elementen in der Quelldatei (<author>, <title>, <category>, <year>) zu befüllen. Das Attribut id in der Quelldatei wird auf das Element <id> in der Zieldatei gemappt. Schließlich wird noch das Element <last_updated> der Zieldatei mit dem Datum und der Uhrzeit der letzten Aktualisierung der Datei befüllt.
Um die erforderliche Datentransformation durchzuführen, gehen Sie vor, wie in den nachfolgenden Unterabschnitten beschrieben.