Komplexe Anwendung

Vom Single-Source Publishing bis zur Generierung von Java Code aus Klassendiagrammen. Wo und wie wird XSLT eingesetzt?

Single Source Publishing

Gängige Formate in der Technischen Dokumentation sind elektronische Ausgabe-Formate wie: CHM, EclipseHelp, JavaHelp, ePub, ..., Print-Ausgabe Formate, wie PDF oder Adobe Framemaker,  oder XML Standard Austauschformate, wie DITA, S1000D, PI-MOD oder TEI.

Vorteile:

  • Bei einer Änderung in der XML Quelle werden auch automatisch alle anschließenden Formate aktualisiert.
  • Strikte Trennung von Content ( / Semantik) und Layout/Design.
  • Auf der XML Quelle sind XML Features möglich, wie:
    • Modularisierung: Erlaubt die fein-granulare Wiederverwendung von Content-Bausteinen, sowie das Verlinken, Filtern, Suchen und Exportieren derselben.
    • Generalisierung ist ein DITA Konzept, welches die Wiederverendung von angepassten Topics in anderen DITA Systemen ermöglicht.
    • Gültigkeiten erlauben die bedingte Anwendung von Content-Bestandteilen auf Satz und Wort-Ebene.
    • Versionierung und Diffing - Vergleich von Änderungen zwischen Versionen
    • Intelligente Querverweise: Ein Link zwischen einzelnen XML Topics  bleibt versionstreu.
    • Automatischer Satz, inkl. Zusamenhalte- und Trennregeln für Seiten, Absätze und Blöcke (Listen, Tabellen, etc).
  • Veraltete Formate können ausgetauscht werden, ohne dass der Content geändert werden muss oder verlorengeht.
  • Die XML Quelle kann ohne Aufbereitung in anderen Systemen wiederverwendet werden.
  • Es gibt weit verbreitete Standards zur Struktur der XML Quelle.
  • Nur das XML muss in der Datenhaltung persistiert werden
  • Es gibt spezialisierte XML Datenbanken, die besonders gut auf Baumstrukturen arbeiten. (Dokumente sind per se baum-strukturiert und sind eigentlich für eine relationale Datenbank ungeignet)

Die Redaktionssysteme in der Technischen Dokumentation der führenden Hersteller in Deutschland haben XML unter der Haube und setzen auf die Single-Source-Multi-Channel Strategie.

Java Code Generierung

Nachdem man bei XSLT im Format der Ausgabe frei ist, kann auch direkt Plain-Text mit  XSLT Regeln generiert werden. Daher liegt es nahe sich jegliche Form von Quelltext aus einer XML Repräsentation erzeugen zu lassen.

Beispielsweise speichern gängige CASE Tools (Computer Aided Software Engineering) UML Diagramme im XML Format ab, so z.B. ArgoUML.

Diese Klassendiagramme lassen sich mittels XSLT direkt in Java-Code transformieren, wie z.B. in einem kleinen Open Source Projekt (aus vergangenen Tagen) :

Butterfly Code Generator

Es gibt aber auch einen schönen Artikel dazu im Java World Journal.

Migrationen

Für jede erdenkliche Art der Migration eines XML Datenbestands oder eines Datenbank-Dumps / -Exports im XML Format, zwischen Produktversionen oder zwischen Dienstleister- und Dienstnutzer-Systemen bietet sich XSLT als Mittel der Wahl zur schnellen und komplexen Transformation an.

Dabei ist zu beachten, dass XSLT besonders schnell und gut auf verschachtelten Strukturen arbeitet. Entartet ein Baum zur Liste und/oder sind nur geringe Strukturanpassungen notwendig, wird man sich mit einem schnellen SAX Parser leichter tun. 

Mittels der XSLT3.0 Streaming Option können auch sehr große XML Quellen (Big Data) verarbeitet werden. Saxon bietet bspw. diese Streaming Option.