Home. 
.

transparent

transparent

transparent

Vergleichen von XML-Schemas mit DiffDog

DiffDog enthält umfangreiche Funktionalitäten zum Vergleichen von XML-Schemas. Mit Hilfe dieser XML-Schemas kann ein Entwickler bestehende XML-Dateien aktualisieren, nachdem ein XML-Schema erweitert wurde. Diese Funktion wird in diesem technischen Tipp anhand eines Beispielszenarios beschrieben.

Bevor wir diese komplexe Funktionalität näher erörtern, werfen wir einen kurzen Blick auf zwei XML-Schemas und vergleichen wir diese mit Hilfe der DiffDog-Dateivergleichsfunktion. Natürlich können XML-Schemas in DiffDog wie auch in früheren Versionen als .xsd-Dokumente verglichen werden. Unterschiede werden in einem farbcodierten XML-fähigen Format angezeigt.

DiffDog file comparison view of XML Schemas

Dies ist eine gute Methode um Unterschiede in XML-Schemas ausfindig zu machen und abzugleichen, vor allem, wenn Sie verschiedene Versionen von Standard-XML-Schemas überprüfen möchten, die im Laufe der Zeit immer weiter ergänzt wurden.

Darüber hinaus steht Ihnen in DiffDog nun eine zusätzliche Option für den XML-Schemavergleich zur Verfügung, mit der zwei XML-Schemas grafisch Seite an Seite angezeigt werden. Identische Elemente werden automatisch als solche gekennzeichnet. Der Benutzer kann unterschiedliche Elemente aufeinander mappen und XSL-Transformationen generieren, um XML-Datendateien zu aktualisieren.

Diese erste Ansicht sehen Sie, wenn Sie dieselben beiden im Dateivergleich oben gezeigten XML-Schemas mit der XML-Schemavergleichsfunktion öffnen.

Initial DiffDog XML Schema Differencing view of XML Schemas

Die Root-Elemente der beiden XML-Schemas werden automatisch miteinander verbunden. Wenn wir in der Symbolleiste auf die Schaltfläche "Vergleichen" klicken, werden identische Elemente in den beiden XML-Schemas automatisch miteinander verbunden.

DiffDog XML Schema Differencing

(Natürlich könnten wir den Befehl "XML-Schemas vergleichen" auch über das Kontextmenü auswählen oder im Menü "Vergleichen und zusammenführen" auf "Vergleich starten" klicken oder einfach die Taste F5 drücken - In DiffDog haben Sie viele verschiedene Optionen zur Verfügung, um dieselbe Aufgabe durchzuführen. Dadurch können Sie auf die von Ihnen bevorzugte Art arbeiten.)

Als nächstes können wir Elemente mit unterschiedlichen Namen in den beiden XML-Schemas mappen, indem wir die entsprechenden Pfeilspitzen miteinander verbinden. In diesem Beispiel betreffen die meisten Änderungen an der Version des XML-Schemas auf der rechten Seite Elementnamen. Elemente erhielten einfach neue Namen, die aufschlussreicher sind, wenn das XML-Schema und seine Datendateien firmenweit verwendet werden.

User-mapped XML Schemas in DiffDog XML Schema Differencing view

Nachdem alle Elemente gemappt wurden, können wir eine XSLT-Datei generieren, mit der die vorhandenen XML-Datendateien, die auf dem XML-Schema auf der linken Seite basieren, transformiert werden, sodass die Änderungen aus der neueren Version auf der rechten Seiten übernommen werden. Diese Funktion ist dazu gedacht, XML-Entwicklern das mühsame Schreiben und Debuggen von XSL-Transformationen von Hand zu ersparen.

DiffDog Diff and Merge Menu

Hier sehen Sie ein Beispiel für eine XML-Originaldatei, die auf dem XML-Schema auf der linken Seite basiert. Angezeigt wird die Datei in Altova XMLSpy® 2012:

XML data file viewed in XMLSpy

Die Ausgabedatei sieht nach Ausführung der mit DiffDog erstellten XSL-Transformation folgendermaßen aus. Beachten Sie, dass das Element "writer" durch "author", "feedback" durch "email" usw. ersetzt wurde.

Output created by XSL viewed in XMLSpy

Wenn viele XML-Dateien transformiert werden müssen, lässt sich der Vorgang mit Hilfe der Projektverwaltungsfunktionen von XMLSpy automatisieren. Wir können externe Ordner zu einem XMLSpy-Projekt hinzufügen.

XMLSpy Project Helper Window

Über das XMLSpy-Dialogfeld "Eigenschaften" können wir den einzelnen Projektordnern Standardwerte zuweisen, um dem Ordner ein XML-Schema für die Validierung, eine XSL-Transformation zuzuweisen und den Zielordner für die Ausgabedatei zu definieren.

XMLSpy project folder properties dialog

Nun können wir in der XMLSpy-Eingabehilfe "Projekt" den Eingabeordner auswählen und alle Dateien darin durch Drücken von F10 transformieren.

Beim ursprünglichen Mappen der XML-Schema-Elemente in DiffDog haben wir das "publication" Element auf der linken Seite nicht verbunden, da es dazu in der älteren Schemaversion kein Pendant gibt. Das bedeutet, dass nach der Transformation von XML-Input-Dateien mit XSLT in der Output-Datei kein "publication" Element vorhanden ist. Wenn "publication" ein obligatorisches Element ist, können wir dafür mit Hilfe von MapForce® 2012 schnell eine Lösung finden.

Eine der Optionen in DiffDog ist anstelle einer XSLT-Datei ein MapForce Mapping zu generieren. Bei Auswahl dieser Option wird MapForce gestartet, wobei unser DiffDog-Mapping bereits wie unten gezeigt als neues MapForce Design geladen ist.

MapForce New Design

Sie können das Mapping ganz einfach verbessern, indem Sie eine Konstante als Standardwert für das "publication" Element hinzufügen.

MapForce enhanced design

Wir können jetzt eine XSL-Datei aus MapForce speichern, in der alle ursprünglich in DiffDog erstellten Element-Mappings wiederverwendet werden und in der die Konstante hinzugefügt wurde. Wenn wir die XML-Originaldatendatei mit Hilfe der neuen XSL-Datei transformieren, erhalten wir ein Ergebnis, in dem der Standardwert für das "publication" Element enthalten ist.

Final version of output viewed in XMLSpy

Zuerst wurde in diesem technischen Tipp die neue XML-Schemavergleichsfunktion in DiffDog beschrieben. Anhand eines einfachen praktischen Beispiels haben wir einige zusätzliche Aufgaben beschrieben, die sich dank der engen Integration mit XMLSpy und MapForce leicht bewerkstelligen lassen.

Alle drei dieser Tools und noch mehr sind zu einem Sonderpreis in Form des Altova Altova® MissionKit® 2012, eines integrierten Pakets von XML-, Datenbank- und UML-Tools für die verschiedensten Entwicklungs-.und Datenmanagementaufgaben moderner Software-Architekten und XML-Entwickler, erhältlich. Klicken Sie hier, um eine kostenlose Testversion herunterzuladen!



MissionKit downloadDownloaden Sie jetzt eine kostenlose Testversion des MissionKit mit dem vollen Funktionsumfang!


transparent
Print
Mail
Like It
.

Lesen Sie den Altova Blog
Read the Altova Blog!

.

Im Altova Blog lesen Sie über die neuesten Altova-Produktankündigungen, neue Produktfunktionen, technische Tipps und Informationen über die Branche. Registrieren Sie sich jetzt!

.
Akronymophobie
.

Substantiv. Zustand, der durch eine unübersehbare Anzahl an technischen Abkürzungen, Akronymen und Schlagwörtern verursacht wird. Lässt sich mit dem Altova-Glossar gut behandeln.

.
.

transparent

transparent