XML-Allrounder auf dem Prüfstand
Artikel erschienen in Swiss IT Magazine 2003/11
Seit seiner Lancierung im Jahr 1996 haben XML und seine zahlreichen Erweiterungen einen regelrechten Senkrechtstart hingelegt. So gibt es kaum mehr eine grössere IT-Lösung, in der die Datenbeschreibungssprache nicht in irgendeiner Form zum Einsatz kommt.
Zu den Erfolgsfaktoren von XML gehören dessen Schlichtheit und Flexibilität. Vor allem letztere sorgt für das breite Anwendungsspektrum der Tag-basierten Sprache. Zu den Einsatzgebieten von XML zählen neben vielen anderen der Datenaustausch, B2B-Kommunikation, Konfigurationsmanagement, Dokument-Archivierung, Content Management oder Web Services.
Wer XML-basierende Lösungen entwickeln muss, wird schnell merken, dass er ohne geeignete Werkzeuge nicht sehr weit kommt. Für reines XML-Editing sind mittlerweile unzählige Produkte auf dem Markt erhältlich, und auch die modernen Entwicklungsumgebungen wie Visual Studio, Eclipse oder Dreamweaver sind mit einfachen XML-Funktionen ausgestattet worden. Sobald es aber um anspruchsvollere Aufgaben wie etwa Schema-Design, XSLT-Transformation oder den Aufbau einer benutzerfreundlichen Authoring-Umgebung geht, werden spezialisierte Werkzeuge benötigt.
In unserem Vergleichstest haben wir den drei wichtigsten XML-Paketen auf den Zahn gefühlt. Neben den beiden auf Entwickler ausgerichteten XML-Suiten XML Spy 5 von Altova und Stylus Studio von Sonic Software haben wir auch das auf Authoring spezialisierte Paket XMetal 4 von Corel zum Wettkampf antreten lassen. Bevor wir uns die Produkte im Detail anschauen, nachfolgend ein Überblick über die wichtigsten XML-Disziplinen:
Editing und Authoring: Das Erstellen und Editieren von XML-Dokumenten gehört zum Pflichtprogramm eines jeden XML-Werkzeugs. Funktionen wie Überprüfung von korrekt formuliertem XML (well formed), Validierung mittels Schema (siehe unten) und intelligente Editierhilfen mit On-the-Fly-Syntaxcheck und kontextsensitiven Vokabularvorschlägen gehören bei allen Editoren in unserem Test zum Standard. Hilfreich ist zudem, wenn für Entwickler und Anwender unterschiedliche Ansichten auf das XML-Dokument geboten werden. WYSIWYG- oder Formular-Ansichts-Modi können den Endanwender von der kryptischen XML-Syntax abschirmen, so dass sich dieser auf das Bearbeiten der Daten konzentrieren kann und die Integrität des XML-Dokuments gewährleistet bleibt. Hier kann vor allem Corel punkten, dessen Produkt speziell für solche Authoring-Anwendungen zugeschnitten ist. XML Spy und Stylus Pro richten sich dagegen in erste Linie an Entwickler und warten mit entsprechend mächtigen Code-Editoren auf. Lediglich Altova bietet zu XML Spy ein kostenloses Browser-Plug-in an, das für End-User-Authoring verwendet werden kann.
Schema-Design: Schemata dienen dazu, das Vokabular und die Struktur eigener XML-Dokumente zu definieren. Anhand eines Schemas lässt sich ein XML-Konstrukt auf seine Korrektheit überprüfen. Schemata werden auch dann genutzt, wenn man sicherstellen will, dass zwei Anwendungen XML-Daten untereinander austauschen können. Für die Schema-Definition gibt es derzeit zwei verbreitete Standards: DTD (Document Type Definition) und das von der W3C im letzten Jahr ratifizierte XML Schema. DTD stammt noch aus der Anfangszeit von XML und ist wegen ihrer Einschränkungen und ihrer eigensinnigen Syntax ein Auslaufmodell. DTD-Schemata werden nach und nach von der wesentlich mächtigeren und in der XML-Syntax gehaltenen XML-Schema-Definition abgelöst. Da aber noch beide Standards geläufig sind, muss ein XML-Werkzeug mit beiden Technologien umgehen können. Sowohl XML Spy als auch Stylus Studio bieten Editoren zum Erstellen von DTDs sowie XML Schema und können sogar zwischen den beiden Standards konvertieren. XMetal 4 bietet keine Werkzeuge für das Schema Design, kann aber im Editor sowohl DTD als auch XML Schema für die Syntaxprüfung und Kontexthilfe nutzen.
Formatieren und Transferieren: Erst mit dem Einsatz von XSL/XSLT kann das Potential von XML so richtig ausgereizt werden. Während XSL (Extensible Stylesheet Language) ähnlich wie CSS für die Formatierung zuständig ist, können XML-Dokumente mit XSLT (XSL Transformation) in ein beliebig anderes XML-Format umgewandelt werden. Reines XML kann etwa in ein HTML- oder XHTML-Dokument transferiert werden. Auch ein Konvertieren von Dokumenten, die auf verschiedenen Schemata basieren, ist mit XSLT möglich. Leider hat XSLT einen Nachteil: Die Technologie leidet unter einem schlechten Ruf, weil die Syntax dieser deklarativen Sprache nicht ganz einfach zu erlernen und zu begreifen ist. Umso wichtiger ist es, dass XML-Werkzeuge dem Entwickler hier mit sinnvollen Hilfen wie visuellen Editoren und XSLT-Debuggern unter die Arme greifen. XML Spy und Stylus Studio bieten entsprechende Tools, die den Umgang mit XSLT erträglicher gestalten.
Web Services: Die jüngste Disziplin bei den XML-Tools ist die Unterstützung für die Entwicklung von Web Services. SOAP und WSDL sind die beiden wichtigen XML-Standards, wenn es um Web Services geht. Während SOAP sich um den eigentlichen Message-Transfer zwischen den Webdiensten kümmert, ist WSDL als Beschreibungssprache für die Definition der eigentlichen Web-Service-Schnittstelle zuständig. Moderne Entwicklungstools nehmen dem Programmierer bei der Erzeugung von WSDL- und SOAP-Dokumenten viel Arbeit ab und generieren den notwendigen Code praktisch im Alleingang. Trotzdem hat Altova ein paar Lücken bei den Bedürfnissen der Web-Service-Programmierer ausgemacht und liefert in der Enterprise-Version von XML Spy 5 einen WSDL-Editor und einen SOAP-Debugger mit.
Datenintegration: Im Endeffekt geht es bei XML-Anwendungen immer um die Verarbeitung von Daten. Umso wichtiger ist es, dass XML-Tools über solide Funktionen verfügen, um Datenbanken anzapfen und in die Anwendungen einzubinden zu können. XML Spy bietet mächtige Werkzeuge, wenn es um das Mapping zwischen Datenbankstrukturen und XML-Dokumenten geht. Das Produkt unterstützt hier die von Oracle und Microsoft angebotenen XML-Erweiterungen des Oracle- respektive SQL-Servers. Stylus Studio hingegen bietet als erstes Produkt umfassenden Support für XQuery, eine Abfragesprache, mit der sich Daten aus XML-Dokumenten extrahieren lassen. Corel XMetal kann via ODBC-Schnittstelle Daten aus einer beliebigen Datenquelle direkt in XML-Dokumente übertragen.
Die XML-Suite von Altova gilt seit einigen Jahren als der geheime Marktführer unter den XML-Werkzeugen. Erst im November letzten Jahres hat der österreichische Hersteller XML Spy in der fünften Version aufgelegt und erneut mit vielen interessanten Neuerungen wie Web-Service-Support, XSLT-Debugger und HTML-to-XML-Konverter ausgerüstet. XML Spy gibt es in drei verschiedenen Ausgaben mit unterschiedlichem Funktionsumfang: Home (in diesem Test nicht berücksichtigt), Professional und Enterprise.
XML Spy verfügt über eine eigene, gut durchdachte Entwicklungsumgebung, die alle Werkzeuge unter einem Dach zusammenfasst und sich punkto Fensteraufteilung beliebig den eigenen Wünschen anpassen lässt. Der XML-Dokument-Editor lässt kaum Wünsche offen und bietet allerlei Goodies, die von Code-Completion-Hilfen über Grid-Editing (erinnert an die Pivot-Tabellen in Excel) bis hin zu Drag&Drop-Support für Elemente und Attribute reichen. XML Spy richtet sich primär an Entwickler, bietet aber mit dem kostenlos mitgelieferten Authentic-Modul einen WYSIWYG-Editor, der stark an Corels XMetal erinnert. Authentic kann direkt in der XML Spy-Umgebung oder als Plug-in in einem Web-Browser genutzt werden. Authentic ist zusätzlich auch als ASP.Net-Server-Control verfügbar, so dass es sich auch in eigene .Net-Web-Anwendungen integrieren lässt.
Auch für die Schema-Erstellung bietet XML Spy erstklassige Werkzeuge: allen voran der visuelle Schema-Designer, dessen Stärke vor allem bei komplexen Schemata mit vielen Verschachtelungen, Einschränkungen und Regeln zum Tragen kommt. XML Spy kann beliebig zwischen verschiedenen Schemata-Formaten konvertieren. So lässt sich eine DTD etwa auf Knopfdruck in ein W3C-konformes XML-Schema umwandeln. Auch für ältere Nicht-W3C-Formate wie DCD, XML-Data und BizTalk wird bidirektionales Konvertieren unterstützt. Praktisch ist auch die Reverse-Engineering-Funktion, mit der sich zu einem bestehenden XML-Dokument ein passendes XML-Schema generieren lässt. Selbst wenn ein automatisch erzeugtes Schema in den meisten Fällen noch überarbeitet werden muss, dürfte gerade dieses Feature Firmen eine enorme Hilfe bieten, welche bereits mit XML-Dokumenten arbeiten, aber noch keine passenden Schemata erstellt haben.
Der Version 5.0 hat Altova einen Stylesheet-Designer verpasst, der die Erstellung von XSL-Formatiervorlagen auf rein visueller Basis möglich machen soll. Nach Öffnen einer DTD oder eines XML-Schemas werden alle vorhandenen Elemente und Attribute in einer Baumstruktur angezeigt. Jetzt braucht man lediglich die benötigten Objekte auf dem Designer-Fenster zu plazieren und die gewünschte Formatierung zuzuweisen. Anschliessend erzeugt XML Spy das entsprechende XSL-Stylesheet für den HTML-Output. Der Stylesheet Designer ist allerdings nur für die Formatierung von XML geeignet und bietet keine Unterstützung, wenn es um die Transformation von XML-Dokumenten geht.
Da das Programm im Gegensatz zu Stylus Studio über keinen Mapper verfügt, müssen XSLT-Anweisungen weiterhin von Hand codiert werden. Dies wird immerhin durch einen Debugger erheblich erleichtert. Ein fünfteiliges Interface zeigt gleichzeitig das Original-XML-File, das XSLT-Stylesheet, den Output sowie zwei Debugging-Fenster. Der Entwickler kann seinen Code Schritt für Schritt durchgehen und erhält synchron angezeigt, an welcher Stelle er sich im Programmablauf gerade befindet. Der Debugger ermöglicht auch den Einsatz von Breakpoints und erlaubt es, jederzeit die aktuellen Variablen und XPath-Expressions einzusehen.
Ein echtes Highlight von XML Spy ist der neu in die Enterprise-Edition integrierte WDSL-Editor, mit dem sich Web-Service-Schnittstellen grafisch visualisieren lassen.
Damit eignet sich der Editor nicht nur zum Erstellen eigener WSDL-Interfaces, sondern vor allem auch zum Analysieren bestehender Web Services. So kann man sich beispielsweise anzeigen lassen, welche Web-Service-Komponenten eines WSDL-Files untereinander korrespondieren.
Das zweite, nicht minder attraktive Werkzeug im Bereich Web Services ist der SOAP-Debugger, mit dem Web-Service-Transaktionen zwischen Client und Server inspiziert werden können. Zwei Fenster zeigen gleichzeitig die SOAP-Request- als auch -Response-Messages an, ein drittes Fenster liefert Informationen zu den Variablen und Operationen.
Ein weiteres interessantes Feature ist die Migrationshilfe von HTML nach XML (nur in der Enterprise Edition enthalten). Für bestehende HTML-Seiten kann man sich ein XML-File, in dem die eigentliche Web-Page definiert ist, und je ein passendes XSLT-Stylesheet und ein XML-Schema generieren lassen.
XML Spy bietet erstklassige Unterstützung bei der Datenbank-Integration. Zu einer Datenbank-Struktur kann beispielsweise automatisch ein passendes XML-Schema generiert werden. Auch der umgekehrte Weg von einem Schema in eine Datenbank-Struktur ist möglich. Um das Mapping zwischen Datenbank und XML fein abstimmen zu können, unterstützt XML Spy auch die genau für diesen Zweck geschaffenen proprietären XML-Tags von SQL Server, Oracle 9i und Tamino XML Server. Support für die Tags von IBMs DB2 fehlt leider.
Stylus Studio von Sonic Software (ehemals Excelon) hat in den vergangenen zwei Jahren punkto Funktionsumfang enorme Fortschritte und gegenüber dem Erzrivalen XML Spy einiges an Boden gutgemacht. In einigen Bereichen wie etwa beim XML-Mapping für XSLT-Transformationen oder XQuery-Support bietet Stylus Studio sogar einige Funktionen, die bei XML Spy nicht zu finden sind.
Auch Stylus Studio bietet alle XML-Editing-Funktionen, die von einem modernen Werkzeug erwartet werden. XML-Dokumente können wahlweise im Textmodus, in einem visuellen Grid oder in einer Baumansicht bearbeitet werden. Sowohl die Grid- als auch die Tree-Ansicht konnten uns allerdings nicht restlos überzeugen. Beide wirken nicht ganz ausgereift und sind längst nicht so komfortabel wie der Grid-Modus von XML Spy.
Das Sonic-Tool richtet sich ausschliesslich an Entwickler und bietet keinerlei WYSIWYG-Editierhilfen für die Datenerfassung. Dafür gibt es eine Reihe von praktischen Hilfen für Entwickler wie etwa die Kommandozeile, in der sich XPath-Abfragen formulieren und direkt auf das geladene Dokument anwenden lassen. Stylus Studio liefert die Treffer in Form eines neuen XML-Dokuments zurück. Diese Funktion ist sehr praktisch, wenn Daten aus bestehenden XML-Files extrahiert werden müssen oder man sich ganz einfach mit der XPath-Syntax vertraut machen möchte. Für umfangreichere Abfragen bietet Stylus Studio neben XPath auch Support für die von W3C im November 2002 verabschiedete XQuery-Spezifikation. Neben einem Editor, der leider über keinerlei Eingabehilfen verfügt, gibt es auch einen integrierten Debugger und einen XQuery-Processor.
Eines der besonderen Features von Stylus Studio ist der XML Mapper, mit dem sich XSL-Transformationen visuell erstellen lassen. Dazu werden je ein XML-Quell- und -Ziel-Dokument oder zwei XML-Schema-Dateien parallel geladen. Diese werden anschliessend vom Programm in zwei gegenüberliegenden Fenstern als Baumstruktur präsentiert. Der Entwickler kann durch Plazieren von Hilfslinien angeben, wie Elemente und Attribute von einem XML-Format in das andere umgewandelt werden müssen. Im Hintergrund generiert Stylus Studio das dafür notwendige XSLT-Dokument.
Für die manuelle Erstellung von XSLT-Dokumenten bietet das Programm ebenfalls einen Editor mit kontextsensitiven Hilfen, einen umfassenden Debugger mit Schritt-für-Schritt-Ausführung, Breakpoints sowie Variablen- und XPath-Expression-Überwachung. Praktisch ist die Back-Mapping-Funktion: Im erzeugten Dokument kann eine beliebige Stelle angeklickt werden, woraufhin der Debugger an exakt jene Stelle im XSLT-Dokument springt, die den entsprechenden Output erzeugt hat.
Auch Stylus Studio kommt mit einem integrierten Stylesheet-Editor, der nach demselben Muster wie jener von XML Spy funktioniert: Elemente und Attribute werden aus einem angezeigten XML-Dokument auf einer WYSIWYG-Oberfläche plaziert und formatiert. Das Programm erzeugt im Hintergrund automatisch den für die Formatierung notwendigen XSL-Code.
In Sachen Schema-Design kann Stylus Studio ebenfalls überzeugen. Für den Entwurf von komplexen Schemata gibt es wie bei XML Spy einen grafischen Editor. Beeindruckt hat uns die Dokumentationsfunktion für Schemata. So erzeugt das Programm automatisch eine übersichtliche und detaillierte Beschreibung des erstellten Schemas im HTML-Format.
Stylus Studio verfügt über eine Reihe von Konvertierungsassistenten, die beim Umformen zwischen verschiedenen XML-Standards behilflich sind. So kann beispielsweise die Formatierung eines HTML-Dokuments extrahiert und in ein XSLT-Stylesheet gewandelt werden. Ausserdem können DTDs in XML-Schema-Dateien konvertiert und aus vorhandenen DTD- und XML-Schema-Dateien leere XML-Dokument-Rümpfe erzeugt werden. Für die Datenbank-Integration lässt sich eine beliebige ADO-Datenquelle anzapfen und daraus ein passendes XML Schema generieren. Darüber hinaus verfügt das Programm über einen Projektmanager, in dem sich alle Files einer XML-Anwendung in eine Ordnerstruktur zusammenfassen lassen. Der Projektmanager kann mit gängigen Source-Control-Lösungen wie Visual Source Safe, Rational ClearCase oder CVS gekoppelt werden und ermöglicht so effizientes Arbeiten im Team.
Einen völlig anderen Ansatz als die beiden XML-Suiten von Altova und Sonic verfolgt Corel mit XMetal 4. Bei der Lösung der Kanadier handelt es sich nicht um eine Umgebung für Entwickler, sondern um ein Autorenwerkzeug, das für die Erstellung und Verarbeitung von XML-basiertem Content gedacht ist. XMetal setzt den Hebel sozusagen da an, wo die beiden anderen Produkte mit ihrem Latein am Ende sind - einmal abgesehen davon, dass Altova mit seinem Authentic-Plug-in XML Spy ebenfalls eine einfache Autorenlösung mitliefert.
Zentraler Baustein der Corel-Lösung ist XMetal Author, der WYSIWYG-XML-Editing bietet und schon eher einer Textverarbeitung à la Word als einem Code-Editor gleicht. Dabei konzentriert sich das Programm auf reines XML-Editing. Erstellte Dokumente können zwar anhand einer DTD oder eines XML-Schemas validiert und vorhandene Stylesheets auf das XML-Dokument angewendet werden, beim Design von eigenen Schemata oder XSL-Stylesheets muss das Programm aber passen.
Auf Wunsch kann direkt im XML-Code oder in einem hybriden Modus, der XML-Tags in Form von grafischen Elementen im WYSIWYG-Fenster anzeigt, gearbeitet werden. Die entsprechend dem zugeordneten Schema verfügbaren XML-Tags werden in einem separaten Fenster angezeigt und können per Mausklick ins Dokument übernommen werden. Zudem verfügt XMetal Author über einen Makrorekorder und einen Versionsmanager und kann XML-Dokumente direkt aus Word importieren oder im PDF-Format ablegen.
Ergänzt wird das Authoring-Modul durch den XMetal Developer, einem Plug-in für Visual Studio.Net, mit dem sich das Authoring-Modul weitgehend den eigenen Bedürfnissen entsprechend anpassen lässt. Entwickler können Menüs beliebig ein- und ausblenden, Formulare oder Dokumentvorlagen für die Datenerfassung kreieren oder den Zugriff auf bestimmte Funktionen unterbinden. So kann ein eigenes, benutzerfreundliches XML-Autorenwerkzeug massgeschneidert werden, das weitgehend auf die Anwendung und die Bedürfnisse der Benutzer optimiert ist. Entwickelt wird mit C#, C++, Java oder mit den Scripting-Sprachen JScript und VBscript. Als Programmierschnittstellen stehen das DOM (Document Object Model) sowie je eine API für COM oder Java zur Verfügung. Via ODBC-Schnittstelle kann Content aus Datenbanken direkt in die Anwendung importiert werden.
XMetal Developer bietet einen einfachen Editor für die Erstellung von DTDs sowie CSS-Stylesheets. Geht es um das Design von XML-Schema-Dokumenten, so bedient sich das Programm ganz einfach den bescheidenen Werkzeugen von Visual Studio.Net.
Ähnlich wie bei Altova gibt es auch von Corel mit XMetal ActiveX eine Komponente für WYSIWYG-Editing, die sich als Browser-Plug-in nutzen lässt oder in eigene Applikationen (nur Windows-Anwendungen) integriert werden kann. Zudem wird mit XMetal Central eine serverbasierte Management-Umgebung mitgeliefert, die als zentrales Repository für Multiuser-Umgebungen fungiert.