Back To Top

Vorteile von XSLT


Vorteile von XSLT

Comelio-Blog XSLT VorteileSicherlich erschien bereits das DOM als eine besonders vorteilhafte Art und Weise, XML zu verarbeiten. Dies gilt insbesondere dann, wenn eine leichte Erlernbarkeit ein hohes Gewicht in einer Bewertung erhält. Welche Vorteile sind es dann, die für die Technik XSLT zu bemerken sind?

Auch XSLT offeriert eine sehr hohe Komplexität hinsichtlich von durchzuführenden Transformationen. Dies gilt sowohl für die Syntax selbst als auch für die Raffinesse des Algorithmus. Es lassen sich – wie in diesem Buch gezeigt werden wird – viele syntaktische Strukturen wahlweise nutzen, um zum gleichen Ergebnis zu kommen, sodass für eine Vielzahl an zusätzlichen Eigenschaften des Algorithmus (wie z.B. leichte Wartbarkeit, gute Wiederverwendungsmöglichkeiten innerhalb der betreffenden XSLT-Datei, knapper Quelltext oder natürlich die Wiederverwendung aus mehreren Sprachen gleichzeitig) geeignete Syntaxregeln bereitstehen.

Durch die umfangreiche Syntax entstehen leider hohe Lernkosten. Wenigstens die Dicke der vorliegenden Bücher spiegelt das zugehörige Fachwissen sehr gut wider. Dies übertrifft für gewöhnlich den Umfang der Seitenzahlen (sofern man dies als Bewertungskriterium verwenden will) an Literatur, die SAX, DOM und die Verwendung eines XSLT-Prozessors in einer anderen Programmiersprache darstellen, weil die dazugehörigen Sprachregeln nicht ganz so umfangreich sind wie die von XSLT. Die hohe Komplexität der möglichen Algorithmen übertrifft allerdings für gewöhnlich die damit verbundenen Lernkosten, sodass sich das Erlernen von XSLT stets auszahlt.

Dies gilt insbesondere auch, weil sich mit der Verwendung von XSLT ein Vorteil erschließt, der gegenüber allen anderen Alternativen (nur CSS könnte hier noch in Teilen mithalten, da sie nicht nur im Browser, sondern mittlerweile auch in einigen Textverarbeitungsprogrammen eingesetzt werden können) sehr schnell in kürzerer Entwicklungszeit und hoher Qualität zum Tragen kommt. Der Algorithmus, der für eine Transformation nötig ist, steckt in einer XSLT-Datei und gerade nicht in einer spezifischen Anwendung bzw. innerhalb der Syntax der Programmiersprache, in der die restliche Anwendung geschrieben ist. Man ruft aus dieser Sprache bzw. aus dieser Anwendung einen XSLT-Prozessor auf, übergibt den XML-Eingabestrom, weist den XSLT-Transformationsstrom und gegebenenfalls ergänzende Parameter oder Prozessoreigenschaften zu und erhält das Ergebnis wieder zurück. Der gesamte Vorgang erschöpft sich in einigen Programmiersprachen auf vielleicht gerade einmal zehn bis 20 Quelltextzeilen – und darin enthalten sind bereits Aufrufe für die Textdatei, die mögliche (natürlich praktisch nie auftretende) Fehlermeldungen enthalten soll.

Es lässt sich jetzt immer hervorragend und sehr ausgiebig diskutieren, inwieweit dieser Vorteil alle andere Mühsal, die eventuell mit dem Erlernen von XSLT verbunden sein mag (und mit diesem Buch ad acta gelegt werden kann), aufwiegt. Wir persönlich halten diesen Vorteil für derart wichtig, dass wir bei jedem Projekt versuchen, uns selbst oder die entsprechenden Programmierer davon zu überzeugen, XSLT zu verwenden.

Durch die dateibasierte Auslagerung eröffnet sich erstens die Chance, exakt die gleiche Transformation aus mehreren Programmiersprachen und aus mehreren Anwendungen heraus – auch gleichzeitig – aufzurufen. Damit verbunden sind solche Vorteile wie nur einmalige Aktualisierung der Datei, um in allen Anwendungen, die auf diese Datei zugreifen, die neue Transformation verwenden zu können. So löst man das unangenehme Problem, in Java für die Webseite und in C# für die Windows-Anwendung innerhalb der DOM-Verarbeitung die gleiche Änderung einzuarbeiten.

Zweitens lässt sich die Transformation auch von Sprachunkundigen durchführen. Zwar muss man XSLT beherrschen, doch man kann darauf verzichten, die Sprache zu beherrschen, in der die eigentliche Anwendung geschrieben wurde. Es genügt, XSLT und das gewünschte Zielformat zu kennen, sofern es eine bestimmte Syntax besitzt und nicht nur eine einfache Textdatei ist, um für Kollegen, die ganz andere Sprachen verwenden, eine passende Transformationsdatei zu erstellen. Dabei lassen sich sogar sehr geringe Lernkosten identifizieren, denn im klassischen Fall XML-zu-HTML genügen XSLT- und HTML-Kenntnisse. Man muss also nicht erst Java lernen, um aus einer XML-Datei eine einfache Webseite oder eine automatische Textform für eine E-Mail zu erstellen.

In Kombination mit dem zuvor vorgestellten Vorteil erschließt sich drittens der Vorteil, dass man auch sehr einfach im Team Transformationen für unterschiedliche Zwecke gleichzeitig vorbereiten kann, da nur Informationen über Quelldaten, mögliche Parameter (die eigentlich auch zu den Quelldaten zu zählen sind) und selbstverständlich die benötigten Zieldaten auszutauschen sind. In einer Gruppe von Programmierern kann also gleichzeitig an der eigentlichen Anwendung wie auch an zwei unterschiedlichen Transformationen wie z.B. für Ergebnisse in HTML und PDF gearbeitet werden. Die Software-Integration erfolgt dann ebenfalls viel einfacher als über das Testen und Integrieren von Klassen, da sich innerhalb der aufrufenden Software nur dann Änderungen ergeben, wenn z.B. neue oder andere Parameter an den Prozessor übergeben werden und umfangreiches Testen bereits bei der Erstellung der XSLT-Datei mit Hilfe des gleichen Prozessors und ohne die restliche Anwendung möglich ist. Dies wird über geeignete Entwicklungsumgebungen oder über die direkte Verwendung des eingesetzten Prozessors gewährleistet.

Zusammenfassend gelangt man zu einer Grafik, die mehr tendenziell ein zusammenfassendes Ergebnis liefert als eine absolute Wahrheit. Es wird – wie schon erwähnt – durchaus der Fall eintreten, dass eine andere Technologie als XSLT die geeignete für die Lösung eines Problems ist. Hierbei sollten dann die beschriebenen Vorteile genutzt werden, um einen gewünschten Algorithmus einzurichten.

Auch wenn es jetzt so scheint, als sei XSLT eine besonders gute Alternative, weil es auf allen drei Kriterienachsen die höchste Wertung erhält, so sind natürlich nicht alle Kriterien als per se sonderlich vorteilhaft zu sehen. Ein einfaches Problem, das nur wenige Prozent einer Anwendung ausmacht (Auslesen und Verarbeiten von Daten, die genauso gut als kommagetrennte Werte, nun aber als XML-Daten bereitgestellt werden), ist möglicherweise gerade nicht mit XSLT zu lösen, bei dem eine umfangreiche Einarbeitung anfällt. Hier ist zwar deutlich zu sehen, dass XSLT auch sehr komplexe Probleme lösen kann und man sich mit einer Technik, die mehr Lernkosten erfordert, zusätzliche Vorteile in der Zukunft verschafft. Allerdings fällt auch auf, dass durch die Auswahl dieser Technologie spezifische Extrakosten entstehen, die möglicherweise nicht zwangsläufig unabdingbar waren.