XML Spy 3.0

Die Entwicklungsumgebung mit dem abenteuerlichen Namen XML Spy ermöglicht einen schnellen Einstieg in die Welt der XML-Programmierung.

Artikel erschienen in Swiss IT Magazine 2000/38

     

XML Spy ist nicht nur ein XML-Editor, sondern ein komplettes XML-IDE (Integrated Development Environment). Dies ist der Werbeslogan von der XML-Spy-Homepage und trifft den Nagel auf den Kopf.



XML-Editoren wie zum Beispiel XMetal 2.0 sprechen vornehmlich Inhaltsautoren von grossen und hoch strukturierten Dokumenten an. Dieser Anwenderkreis benötigt einen Struktureditor, eine Strukturnavigation und einen Editor zum Abfüllen der Dokumentstruktur sowie eine einfache Schnittstelle zur Einbindung von externen Visualisierungsmodulen zur Darstellung von Formeln, Organigrammen, Charts etc.




Systemingenieure dagegen erstellen den Inhalt selten manuell, sondern beziehen die Daten aus anderen Systemen, Komponenten oder direkt aus einer Datenbank. Sie benötigen ein Toolset, mit dem es auf einfachste Weise möglich ist, zum Beispiel aus einer Datenbank eine XML-Datei und daraus eine DTD zu generieren. Genau dafür ist XML Spy konzipiert.


Look&Feel fast wie in Office

Die Benutzeroberfläche macht einen aufgeräumten Eindruck. Alle Fenster sowie Menü- und Symbolleisten können frei angeordnet werden. Unlimitierte Undo- und Redo-Funktionen und ein sehr detailliertes Suchen- und Ersetzen-Feature fehlen ebensowenig wie fast universelle Drag&Drop-Unterstützung.



Alle Dateien können in einer Grid-, Text- oder Browser-Ansicht dargestellt werden. In der Grid-Ansicht kann bei XML-Dateien zusätzlich zwischen einer Tabellen- oder einer "Tree-ähnlichen" Ansicht gewechselt werden. Die gewählte Darstellung der Strukturen in der Grid-Ansicht ist intuitiv und ermöglicht produktives Arbeiten.




Der Platzbedarf am Bildschirm ist jedoch beachtlich. Ein PC mit Doppelbildschirm ist da nicht zu verachten, wenn man dauerndes Scrollen vermeiden will. Die farbliche Gestaltung des Codes ist dagegen in allen Ansichten sehr gut.



Das Zuordnen von Attributen und Eigenschaften mutet hingegen teilweise etwas seltsam an. So muss zum Beispiel der Typ eines Attributs im DTD-Editor über eine Liste in einem anderen Fenster ausgewählt und mit Doppelklick eingefügt werden. Warum hier die sogenannten Context-sensitive Choices nicht funktionieren, ist ein weiteres Problem. Auch die verfügbaren Funktionen im aktuellen Kontext bedürften einer Überarbeitung. Dies würde die Benutzerführung vereinfachen und die Fehlerquote minimieren.




Gelungene Projektverwaltung

Die Möglichkeit, in XML Spy alle Dateien in einem Projekt zu verwalten, hat wohl die Marketing-Leute zur Aussage über die IDE veranlasst. Diese Funktion ist sehr einfach und ungemein nützlich.



Werden hingegen neue Dateien innerhalb eines Projektes erstellt, so müssen diese danach explizit dem Projekt zugeordnet werden. Das kann in einigen Fällen praktisch sein, ist im allgemeinen dem Arbeitsfluss aber eher hinderlich.





Von der Datenbank zu XML und von da zu DTD

XML Spy verfügt über verschiedene Importfunktionen. Daten können aus reinen Textdateien, aus Word, aber auch aus allen Datenbanksystemen, für die ein OLE DB- oder ODBC-Treiber vorhanden ist, importiert werden. Beim Textimport kann der Anwender das Feldtrennzeichen wählen, vorgeben ob eine Kopfzeile vorhanden ist sowie die Codepage auswählen.



Der Import erstellt eine XML-Datei. Beim Import ab Textdatei oder Tabelle wird automatisch ein Root-Element mit der Bezeichnung Import generiert, in dem pro Zeile ein Element namens Row und darin je Feld ein Element mit der Feldbezeichnung als Elementname enthalten ist.




Leider können dabei keine relational verknüpften Tabellen zum Beispiel als Choice oder Link mitimportiert werden. Dies geht nur, wenn die Tabellen während des Imports verknüpft worden sind.



XML-Dateien können in den bereits erwähnten Ansichten editiert werden. Dieser Editor lässt für den Eingangs erwähnten Verwendungszweck keine Wünsche offen.



Aus einer XML-Datei kann eine rudimentäre DTD abgeleitet werden. Diese Funktion erledigt, was sich vollautomatisch überhaupt machen lässt. Attributlisten, Attributtypen und ähnliches müssen danach manuell eingefügt und ergänzt werden. Besser wäre hier ein Wizard, der dem Anwender noch ein paar Fragen zur Verwendung der verschiedenen Elemente und Attribute stellt.



Sehr schön ist die Konvertierungsfunktion für DTDs gelungen. So kann mit einem einzigen Befehl ein W3C- in ein BizTalk-Schema umgewandelt werden. Nach anfänglichen Schwierigkeiten gelang es auch, das XML-Dokument mit einem auf diese Weise umgewandelten Schema aus dem BizTalk-Server aufzurufen.



Es ist zwar möglich, eine DTD aus einer bestehenden XML-Datei zu generieren, wenn jedoch danach in der XML-Datei ein Element in ein Attribut umgewandelt wird, so ändert dies nichts an der einmal generierten DTD. Man sollte also immer erst die XML-Datei entsprechend gestalten und erst danach die DTD generieren.



Für die Erstellung von XSL-Dateien schliesslich wäre ein ähnlicher Generator wie bei den DTDs sehr nützlich. Dieser könnte anhand einfacher Regeln aus der XML-Datei und der DTD ein XSL-Grundgerüst erstellen. Leider fehlt eine solche Funktion. Überhaupt scheint die Verbindung zwischen XML/DTD und XSL noch nicht das Ende alles Machbaren zu sein.


Auf dem Weg zur Glueware

XML-Editoren für Systemingenieure und Programmierer müssen sich nahtlos in etablierte Entwicklungsumgebungen (eben die echten IDE) einfügen. Nur so können sie einen andauernden Nutzen für diese Benutzerschicht bringen. Zum heutigen Zeitpunkt ist es sicher vorteilhaft, über ein Tool wie XML Spy zu verfügen, da es nicht zuletzt dabei hilft, die Mechanismen von XML zu verstehen.



Die Entwicklung geht aber weiter, und die Anforderungen an Schnittstellen nehmen ständig zu. Heute besitzen bereits viele Anwendungen eine XML-Schnittstelle. In den meisten Fällen ist dies leider nur eine Einbahnstrasse: Es können zwar Daten im XML-Format exportiert, nicht aber importiert werden. Wenn sich diese Programme weiter entwickeln, brauchen wir vor allem Tools, mit denen wir die diversen Anwendungen zusammenkleistern können (etwa "Glueware" zu nennen). Eine solche Glueware ist beispielsweise BizTalk-Server.




Programmierer, die solche Schnittstellen in Anwendungen einbauen möchten, benötigen in die Entwicklungsumgebung integrierte und einfach anzuwendende Tools. Ein solches Tool sollte nicht nur aus Tabellen, sondern auch aus vorhandenen Klassen alle benötigten Dateien generieren.



Wenn dies Wirklichkeit wird - und es scheint Wirklichkeit zu werden, wenn man die Ankündigungen der Grossen der Branche ansieht -, dann sehen wir die Dämmerung am IDE-Horizont.



Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Vor wem mussten die sieben Geisslein aufpassen?
GOLD SPONSOREN
SPONSOREN & PARTNER