- 1 Intro
- 2 Anwendungsgebiete
- 2.1 XSLT - die Programmiersprache im XML Bereich
- 2.2 Aktuelle und vergangene Anwendungen
- 2.3 Professionelle XML Verarbeitung
- 2.4 Technische Dokumentation
- 3 Wichtige Konzepte
- 3.1 Push vs. Pull Stylesheets
- 3.2 Eindeutigkeit der Regelbasis
- 3.3 Namespaces
- 3.4 Schemata
- 3.5 Standards
- 3.5.1 DITA
- 3.5.2 DITA Inhaltsmodell
- 3.5.1 DITA
- 4 Ausgewählte Themen
- 4.1 Transformationen mit XSLT
- 4.1.1 Vortransformationen
- 4.1.2 Komplexe XML-2-XML Transformationen
- 4.1.2.8 Vererbung
- 4.1.2.8 Vererbung
- 4.1.3 XSLT Streaming
- 4.1.3.1 XSLT Akkumulator
- 4.1.3.2 XSLT Iterator
- 4.1.4 Reguläre Ausdrücke
- 4.1.5 Modus vs. Tunnel Lösung
- 4.1.6 Identifikation mit
generate-id()
- 4.1.6.4 XPath-Achsenbereich selektieren
- 4.1.6.4.1 Funktionen und Module
- 4.1.6.4.1 Funktionen und Module
- 4.1.6.4 XPath-Achsenbereich selektieren
- 4.1.7 Webservice Calls mit doc() und unparsed-text()
- 4.1.8 Stylesheet-Parameter auf der Kommandozeile
- 4.1.9 Leerzeichenbehandlung
- 4.1.10 Mit
translate
Zeichen ersetzen
- 4.1.10.1 Spass mit dem Sequenzvergleich
- 4.1.11 Character Mappings in der Ausgabe
- 4.1.12 JSON mit XSLT 1.0 und Python lxml
- 4.1.1 Vortransformationen
- 4.2 Abfragen mit XQuery
- 4.2.5 XQuery als Programmiersprache
- 4.2.5.3
if..then..else
Ausdrücke
- 4.2.5.3.2 SQL Views in MarkLogic
- 4.2.5.3
if..then..else
Ausdrücke
- 4.2.6 Hilfreiche XQuery Schippsel
- 4.2.5 XQuery als Programmiersprache
- 4.3 XML Datenbanken
- 4.3.1 Connector zu Marklogic in Oxygen
- 4.3.2 Bi-Temporale Dokumente
- 4.3.2.1 Anlegen des Testszenarios auf der ML Konsole
- 4.3.2.2 Ausführen einiger Beispiel-Queries
- 4.3.3 Webapps mit MarkLogic
- 4.3.3.5 Wikipedia Scrapper Applikation
- 4.3.3.5 Wikipedia Scrapper Applikation
- 4.3.4 Dokument-Rechte in MarkLogic
- 4.3.5 MarkLogic Tools
- 4.3.5.1 EXPath Konsole
- 4.3.5.2 mlcp - MarkLogic Content Pump
- 4.3.5.3 Deployment-Tools
- 4.4 XSL-FO mit XSLT1.x
- 4.5 Testing
- 4.5.1 Validierung mit Schematron
- 4.5.2 Erste Schritte mit XSpec
- 4.5.1 Validierung mit Schematron
- 4.6 Performanz-Optimierung
- 4.1 Transformationen mit XSLT
- 5 Zusätzliches Know-How
- 5.1 XML Editoren
- 5.2 Quellcode-Versionskontrolle
- 5.2.1 Kurze Geschichte zur Versionskontrolle Test
- 5.2.2 GIT Kommandos
- 5.2.1 Kurze Geschichte zur Versionskontrolle Test
- 5.1 XML Editoren
- 6 Glossary
- 7 Tektur CCMS
2.1 XSLT - die Programmiersprache im XML Bereich
XSLT ist im Bereich XML ganz gross. Ausserhalb kennt man sie allerdings kaum. Im TIOBE Index ↗ von 2003 rangierte XSLT einmal auf Platz 60 an letzter Stelle der Liste ↗.
Im Bereich XML wäre aber ohne XSLT nicht viel möglich. Es gibt einige exotische Anwendungsgebiete in denen XML effizient
mit LISP Dialekten verarbeitet wird, bspw. die Verarbeitung von - nach XML konvertierten - EDI X12 ↗ Nachrichten.
SGML, der Vorreiter von XML, hat sich als S1000D Standard ↗ im Bereich Luftfahrt wacker gehalten. Hier wird teilweise noch mit proprietären Programmiersprachen, wie Metamorphosis, gearbeitet.
Alternativen zu XSLT finden sich im entsprechendem Wikipedia-Artikel ↗.
Wir konzentrieren uns im Rahmen dieser Lektüre auf XSLT und XSL Stylesheets - damit wird i.A. die Verbindung von XSLT, XSL-FO und XPath gemeint, um damit XML Daten in andere Formate zu überführen, bspw. PDF.
Beispielsweise werden die Autohandbücher führender Hersteller mittels XSL gesetzt, deren Eingabedaten aufbereitet und zur Weiterverarbeitung transformiert.
Ein paar interessante Stichpunkte:
-
XSLT hat gerade noch den Status "Programmiersprache", weil man damit eine Turing Maschine ↗ programmieren kann.
-
Mit HTML oder einer Templater Sprache (z.B. JSP) würde das nicht funktionieren.
-
XSLT ist keine imperative Sprache, d.h es werden keine Anweisungen der Reihe nach abgearbeitet, sondern eine deklarative Sprache, d.h für jedes Ereignis - besser gesagt - für jeden durchlaufenen DOM Knoten wird eine gefundene und vom Programmierer deklarierte Regel angewendet.
-
Ausserdem gibt es funktionale Anteile, um bspw. die deklarierten Regeln rekursiv anwenden zu können. So können auch größere Programme sinnvoll strukturiert werden.
-
T wird oft mit gleichgesetzt. Aber XSL ↗ ist mehr:
-
Zum einen kommt noch XPath hinzu: XPath erlaubt komplizierte Berechnungen und Selektionen auf den DOM ↗ Knoten eines XML Dokuments.
-
Zum anderen ist auch XSL-FO Bestandteil der XSL Spezifikation ↗. XSL-FO Tags sind Anweisungen für einen XSL-FO Prozessor, der aus einem XSL-FO Dokument ein PDF Dokument generiert. Es sind auch andere Ausgabe-Formate, wie bspw. RTF möglich.
-