Digitale Edition

Weißbuch

XSLT TEI Download PDF Download

Lordick, Harald; lordick@steinheim-institut.org

Dieser Artikel basiert auf der älteren Version von N.N.

XSLT (Extensible Stylesheet Language Transformations) ist mit XPath und XSL-FO Teil der in XML notierten Extensible Stylesheet Language (XSL) und gehört zu den Web-Standards des W3C. Die Turing-vollständige und dokumentenorientierte Programmiersprache dient insbesondere der Transformation von XML-Daten und findet häufig als Verarbeitungskomponente digitaler Workflows von Editionen Verwendung, etwa in Frameworks wie Apache Cocoon, Kiln, TEI-Publisher, TEI Boilerplate oder Versioning Machine (siehe auch Web-Architektur für DSE ).

XSLT benutzt die Abfragesprache XPath, um durch XML-Dokumente zu navigieren und Teile davon zu adressieren, und XSLT-Elemente- (Programmieranweisungen) eröffnen die Möglichkeit, XML-Eingabedokumente in eine andere Struktur bzw. ein anderes Ausgabeformat zu überführen: Text (Plain Text, Markdown, JSON, CSV, CSS, MIF, Programm / Script-Code ...), XML (XML, XSLT, SVG, PDF via XSL-Fo ...) sowie HTML.

Eine originäre Eigenschaft von XSLT-Skripten ist die Dokumententransformation durch Templates. Das folgende Beispiel adressiert alle <div>-Elemente eines XML-Eingabedokuments und erzeugt dafür jeweils ein <p>-Element im Ausgabedokument. Die Anweisung <xsl:apply-templates/> stößt dann die Verarbeitung gegebenenfalls enthaltener Kind-Knoten des <div>-Elements an, soweit dafür entsprechende (weitere) Templates vorliegen.

<xsl:template match="div">

<p>

	<xsl:apply-templates/>

</p>

</xsl:template>

Im mächtigen Deep-Copy- bzw. Shallow-Copy-Modus werden dabei seit XSLT 3.0 Dokumentstrukturen, für die kein Template formuliert ist, unverändert übernommen. Dies erlaubt die gezielte Überarbeitung von Details komplexer XML-Dokumente bei nur geringem Programmieraufwand.

Die Dokumentenzentrierung von XSLT – und damit auch die besondere Eignung für Editionsdaten – zeigt sich nicht nur in diesem Template-Ansatz, sondern auch etwa in der Konzeption der For-Each-Schleife, die anders als in anderen Programmiersprachen üblich, ausschließlich auf (durch XPath oder XSLT-Funktionen adressierte) Dokumentstrukturen iteriert.

Die Entwicklung des XSLT-Sprachumfangs bis hin zu Version 3 hat aber auch Eigenschaften gestärkt, die eine allgemeinere Anwendung von XSLT ermöglichen: erweiterte Unterstützung von Datentypen, Verarbeitung des verbreiteten JSON-Datenformats, Funktionen zur String-Manipulation (einschließlich regulärer Ausdrücke), Funktionen und Operatoren für Datum, Zeit, Zeitverlauf sowie erweiterte Möglichkeiten der Sortierung, Filterung und Gruppierung von Dokumentstrukturen. Die direkte Einbindung (d. h. die clientseitige Ausführung) in Webbrowsern blieb allerdings auf Version 1 beschränkt.

XSLT unterstützt konzeptbedingt die klare Trennung von Editionsdaten von ihrer Präsentation und hat über XML-strukturierte Dokumente hinaus mittlerweile breite Einsatzmöglichkeiten im Editionsworkflow: Bereinigung, Strukturierung und Anreicherung von Daten, Splitten und Zusammenführen von Dokumenten, Aufbereitung für Datenaustausch sowie Transformation in Darstellungs- und Publikationsformate.

Literatur:

Zitiervorschlag:

Lordick, Harald 2024. XSLT. In: KONDE Weißbuch. Hrsg. v. Selina Galka und Helmut W. Klug unter Mitarbeit von Susanne Höfer im Projekt "Enlarging 'Weißbuch Digitale Edition'". Aufgerufen am: . Handle: hdl.handle.net/11471/562.50.86. PID: o:konde.86

Metadata:

Hier finden Sie umfangreiche Metadaten; außerdem auch ältere Versionen der Weißbucheinträge: Metadaten

Für diesen Artikel existiert eine ältere Version, die Sie hier einsehen können.