Vergleichen von XML-Schemas mit DiffDogDiffDog 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.
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.
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.
(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.
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.
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:
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.
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.
Ü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.
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.
Sie können das Mapping ganz einfach verbessern, indem Sie eine Konstante als Standardwert für das "publication" Element hinzufügen.
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.
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!
|
| |||||||||||||||||||||||
| Altova | Rechtsabteilung | Presse | Partner | Karriere | Übersicht | Kontakt | Altova Blog | Mobile | Full Site | |||
|
