XSLT, XPath und XQuery - Marco Skulschus, Jan Kozik, Marcus Wiederstein

XSLT, XPath und XQuery

Buch
600 Seiten
2007
Comelio (Verlag)
978-3-939701-18-7 (ISBN)
39,95 inkl. MwSt
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
XSLT (eXtensible Stylesheet Language for Transformations) ist eine W3C-Syntax, die speziell für die Transformation von XML-Dokumenten geschaffen wurde. Mit XSLT können XML-Dokumente in Formate wie HTML, Text und andere XML-Formate transformiert werden. Diese Technologie lässt sich in (fast) allen Programmiersprachen und in vielen Datenbanken nutzen und stellt die beste Möglichkeit dar, aus mehreren Anwendungen heraus die gleiche XML-Transformation aufzurufen. XPath setzt man als in XSLT eingebettete Pfadbeschreibungssprache für Lokalisierung, Filterung und Bearbeitung von XML-Knoten ein. XQuery teilt sich mit XPath die Funktionsbibliothek und bietet als „SQL für XML“ die Möglichkeit, im Rahmen einer Abfrage komplexe Ausgabeströme in XML anzugeben und stellt so eine verkürzte Technik für XSLT und XPath dar. Dieses Buch führt Einsteiger durch die genannten Umwandlungstechniken. Die Autoren setzen dabei langjährig genutzte Beispieldaten einer fiktiven Firma ein, stellen die wesentlichen Spezifikationsabschnitte vor und bieten wichtige Syntaxabschnitte in lernförderlichen Schema-Zeichnungen.

Als die Nützlichkeit des Werkzeugs XML erkannt wurde, drohten der Einsatz und die Ver-wendung des Begriffes vielleicht sogar inflationär zu werden. Alle möglichen Produkte mussten eine so genannte »XML-Fähigkeit« aufweisen, die meistens daraus bestand, dass XML-Dateien irgendwie farblich markiert angezeigt wurden oder Daten neben CSV auch in einem XML-Format dargestellt wurden. Neu zu entwickelnde Software benötigte eben-falls eine solche XML-Fähigkeit, die dann allerdings oft unter dem nicht weniger geheim-nisvollen Begriff einer »XML-Schnittstelle« in diversen Papieren zur Projektplanung ihren Niederschlag fand. Ob dies notwendigerweise der Verbreitung von XML und der Erkennt-nis, welche Vorzüge und nutzbaren Eigenschaften der Einsatz von XML bietet, Vorschub leistete, war lange Zeit nicht klar.


Themen:
XSLT 1.0: Vorlagen/Templates, Kontrollanweisungen, Variablen und Parameter, Sortierungen und Gruppierungen, Ausgaben in HTML, Text/CSV und XML
XSLT 2.0: Stylesheet-Funktionen, dynamisches XSLT, 2.0-Besonderheiten, Integration von XML Schema, strukturgetriebene Verarbeitung, reguläre Ausdrücke, SQL-ähnliche Abfragen
XPath 1.0: Grundlagen, Knoten lokalisieren und filtern, Funktionsbibliothek
XPath 2.0: Kontrollanweisungen, 2.0-Besonderheiten und –Funktionen
XQuery 1.0: Abfragen und Umwandlung als Ersatz von XSLT/XPath
Integration: Einsatz in .NET, Java, PHP und Datenbanken (Oracle PL/SQL, MS SQL Server T-SQL)

Das erste Kapitel stellt die Funktionsweise und den Einsatzbereich von XSLT dar. Es geht darauf ein, welche verschiedenen Alternativen zu XSLT existieren und zeigt, in welchen Fällen XSLT die bessere Wahl ist.
Das zweite Kapitel führt in die verschiedenen Vorlagenarten von XSLT ein. Da XSLT eine vorlagengetriebene Sprache ist, in denen die einzelnen Umwandlungsregeln in xsl:template-Elementen angegeben werden, kann man hier vier verschiedene Arten unterscheiden, die der Reihe nach mit Beispiel vorgestellt werden. Dies umfasst die Vorlagen-Regeln, wobei passende Umwandlungsangaben anhand eines XPath-Ausdrucks ausgewählt werden, die benannten Vorlagen, welche direkt über ihren Namen aufgerufen werden können und mit denen man wiederkehrende Routinen erstellen kann, Attributwervorlagen für die Erzeugung von Attributwerten im Ausgabestrom und schließlich Vorlagenmodi, mit denen man für das gleiche XPath-Muster verschiedene Vorlagen-Regeln erstellen kann.
Das dritte Kapitel führt dann umfassend in die XPath-Syntax ein. Mit Hilfe dieser so genannten Pfadbeschreibungssprache ist es überhaupt erst möglich, Knoten zu filtern und im Dokument zu lokalisieren. Man unterscheidet hierbei relative und absolute Ausdrücke, die in Fallunterscheidungen, bei der Formulierung von Vorlagen-Regeln sowie der Zuweisung von Werten für Parametern und Variablen zum Einsatz kommen. XPath besitzt eine Basis-Syntax, die entlang von Achsen im XML-Eingabestrom Knoten lokalisieren kann, und eine Funktionsbibliothek, die in diesem Kapitel für Version 1.0 vorgestellt wird.
Das vierte Kapitel stellt die Möglichkeiten dar, in XSLT Kontrollanweisungen für Fallunterscheidungen und Schleifen zu verwenden. Das Kapitel beginnt mit einer Darstellung, wie XPath für die Knotenauswahl und Filterung verwendet werden kann. Danach zeigt es die beiden Elemente für Kontrollstrukturen xsl:if und xsl:choose sowie die Anweisung xsl:for-each für Wiederholungen.
Das fünfte Kapitel stellt die Elemente für Sortierungen, Nummerierungen und Gruppierungen in den Vordergrund. Mit dem xsl:sort-Element kann man einstufig und mehrstufig in einer ermittelten Knotenmenge sortieren und die einzelnen Knoten in dieser Sortierung verarbeiten. Für die Nummerierung kommt das xsl:number-Element zum Einsatz, in dem nahezu beliebige Optionen für das Zahlenformat bereitstehen. Gruppierungen erklärt das Kapitel schließlich sowohl für die Version 1.0 mit Hilfe der hier gängigen Methoden und für die Version 2.0 mit dem xsl:for-each-group-Element, dessen Einstellungen die Möglichkeiten, die die 1.0-Techniken bieten, noch weit übersteigen.
Das sechste Kapitel zeigt, wie man in XSLT Variablen und Parameter verwenden kann, um Werte im Rahmen einer Transformation zwischenzuspeichern oder Werte an Vorlagen zu übergeben. Mit dem Element xsl:variable lassen sich globale und temporäre Werte speichern. Das Element xsl:param hingegen erlaubt, bei der lokalen Verwendung Vorlagen zu parametrisieren, während ein globaler Einsatz einen so genannten Stylesheet-Parameter festlegt, mit dem man Werte aus der aufrufenden Umgebung an die Transformation übergeben kann.
Das siebte Kapitel behandelt eine Reihe von speziellen Ausgabeanweisungen, mit denen für unterschiedliche Formatierungen und spezielle Einsatzbereiche Vorgaben für den Ausgabestrom getroffen werden können. Manchmal stellen diese Techniken Vereinfachungen von aus Basisfunktionalitäten zusammengesetzten Kombinationen dar. Man lernt hier, wie man mehrere XML-Dateien gleichzeitig verarbeiten und erzeugen kann, oder wie Formatierungsanweisungen global vorgegeben werden können.
Das achte Kapitel verlässt den Bereich der HTML-Erzeugung und konzentriert sich dagegen auf die Besonderheiten, die bei der Generierung von XML und Text zu beachten sind. In Beispielen wird hier gezeigt, wie man aus XML Schema dynamisch HTML-Formulare erstellt, XML-Strukturen ändert oder aus XML Text-Dateien wie bspw. CSV erzeugt. Dabei setzt man eine Reihe von anderen Techniken wie Variablen und Parametern aus früheren Kapiteln wieder ein.
Das neunte Kapitel erklärt die Elemente, mit denen Stylesheets in Module zerlegt und dann wieder zusammen gesetzt werden können. Hier sind in XSLT zwei Elemente mit feinen Unterschieden verfügbar. Für den so genannten Import verwendet man xsl:import, für die Einbindung xsl:include. Sie unterscheiden sich in ihrem Verhalten, wie sie lokale Vorlagen überschreiben.
Das zehnte Kapitel zeigt in verschiedenen Beispielen, wie man effektiv Fehler suchen und Nachrichten während der Transformation ausgeben kann.
Das elfte Kapitel diskutiert Möglichkeiten und Bedingungen, XML-Dateien anhand ihrer Struktur und nicht anhand der Namen von Elementen und Attributen zu verarbeiten. Dies schärft den Blick, besonders dynamische und wiederverwendbare Algorithmen in XSLT zu entwickeln.
Das zwölfte Kapitel ergänzt die verschiedenen Vorlagentechniken aus XSLT 1.0 um eine Neuerung in XSLT 2.0, die es erlaub, Stylesheet-Funktionen zu erstellen. Sie können in XPath-Ausdrücken für die Durchführung von Berechnungen oder Ausgaben zum Einsatz kommen und verkürzen die Snytax im Vergleich zu benannten Vorlagen erheblich. Diese Kapitel stellt die 1.0-Vorgehensweise, die benannte Vorlagen einsetzte, mit der 2.0-Technik über xsl:function gegenüber.
Das dreizehnte Kapitel bindet zusätzlich die XML Schema-Datei ein, welche die umzuwandelnde XML-Datei beschreibt. Durch diese neue 2.0-Technik ist es möglich, eigene in XML Schema erstellte Datenypen zu testen oder abzufragen und dabei eine Reihe von XPath 2.0-Operatoren zu verwenden. So kann man Umwandlungen einrichten, die struktur- und datentypgetrieben sind.
Das vierzehnte Kapitel arbeitet die Funktionsbibliothek von XPath 2.0 mit thematisch sortierten Beispielen durch, um so die vielen neuen nützlichen Funktionen und Vereinfachungen gegebenüber der Vorgängerversion zu zeigen.
Das fünfzehnte Kapitel arbeitet gleichermaßen eine Funktionsbibliothek durch, wobei dies in diesem Fall die in XSLT vorhandenen Funktionen sind, um Entitäten aus DTDs oder Textdateien zu verarbeiten oder Schlüssel zu erzeugen und abzufragen.
Das sechzehnte Kapitel behandelt XML-Dateien, die Daten enthält, welche wie in eine relationalen Datenbank aufgebaut sind und daher über entsprechende Abfragetechniken in XSLT oder XPath wieder zusammengeführt werden müssen. In einer Reihe von Beispielen lernt man, wie man innere, äußere und selbstbezügliche Verknüpfungen sowie Mengenuntersuchungen auf solchermaßen aus einer DB abgerufenen Strukturen durchführt.
Das siebzehnte Kapitel diskutiert fortgeschrittene Techniken und Möglichkeiten, wie man XSLT dynamisch aus XML Schema oder aufgrund von Annahmen erzeugen oder aus mehreren XSLT-Dateien zusammensetzen kann. Als weitere Möglichkeit geht es darauf ein, wie man eine Datenbank einsetzen kann, um XSLT, XML Schema und XML in Spalten zu speichern und dann bei Bedarf zusammenzusetzen.
Das achtzehnte Kapitel zeigt eine neue 2.0-Möglichkeit, in XSLT und XPath reguläre Ausdrücke zu verwenden, um Daten auszuwerten und bedingte Umwandlungen einzurichten.
Das neunzehnte Kapitel geht auf eine alternative Syntax ein, mit der XPath und XSLT vermieden und abfrageähliche Transformationen in XQuery, dem SQL für XML, umgesetzt werden können. Das Kapitel umfasst thematisch dabei die Darstellung der Syntax zur Abfrage, die Verwendung von Funktionen, die Formulierung von Variablen und ihre Auswertung sowie die verschiedenen Möglichkeiten, wie man das Ausgabeformat strukturieren kann.
Das zwanzigste Kapitel schließlich erklärt, wie man die verschiedenen XSLT-, XPath- und XQuery-Techniken in den Programmiersprachen Java, .NET, PHP sowie in den Datenbanken Oracle mit PL/SQL und in Microsoft SQL Server mit T-SQL nutzen kann. Dies umfasst die Aufgaben, eine Transformation durchzuführen, Parameter an das Stylesheet zu übergeben oder externe Funktionen/Methoden der Sprache in XSLT aufzurufen sowie Abfragen durchzuführen.

1 XSLT-Grundkonzept
1.1 XSLT und seine Alternativen
1.1.1 Kriterien zur Bewertung
1.1.2 CSS
1.1.3 SAX
1.1.4 DOM
1.1.5 Vorteile von XSLT
1.2 Grundstruktur einer XML-Anwendung
1.2.1 Modellierung
1.2.2 Validierung
1.2.3 Transformation
1.3 Beispiel
1.3.1 Verwendete Beispieldateien
1.3.2 Einfache Anwendung

2 Vorlagen
2.1 Arbeiten mit Vorlagen
2.1.1 Erzeugen von HTML
2.1.2 Element: Stylesheet und sein Inhalt
2.1.3 Wertübernahme aus XML
2.2 Vorlagen-Typen
2.2.1 Vorlagen-Automatik
2.2.2 Benannte Vorlagen
2.2.3 Vorlagen-Modi
2.3 Attributwerte
2.3.1 Attributwertvorlagen
2.3.2 Attributwerte zusammensetzen

3 XPath
3.1 Grundlagen
3.1.1 Allgemeine Konzepte
3.1.2 Knotentypen
3.2 Lokalisierung
3.2.1 Achsen
3.2.2 Beispiele zur Achsen-Verwendung
3.2.3 Abgekürzte Syntax
3.3 Knotentests
3.3.1 Lokalisierungsschritte
3.3.2 Arten-Test
3.3.3 Prädikate
3.4 Funktionen in XPath
3.4.1 Knotenmengenfunktionen
3.4.2 String-Funktionen
3.4.3 Logische Funktionen
3.4.4 Numerische Funktionen
3.4.5 Beispiele
3.5 Neuerungen in XPath 2.0
3.5.1 Kontrollstrukturen und Funktionen
3.5.2 Sequenzen

4 Kontrollstrukturen
4.1 Fallunterscheidungen
4.1.1 Einfacher Einsatz von XPath
4.1.2 Auswahl mit if
4.1.3 Auswahl mit choose
4.1.4 Fallunterscheidungen in XPath 2.0
4.2 Wiederholungen
4.2.1 Ping-Pong-Spiel
4.2.2 Einsatz von for-each
4.2.3 Schleifen in XPath 2.0

5 Sortierung, Nummerierung, Gruppierung
5.1 Sortierungen
5.1.1 Allgemeine Sortiermöglichkeiten
5.1.2 Einfache Sortierung
5.1.3 Mehrfache Sortierung
5.2 Nummerierung
5.2.1 Allgemeine Möglichkeiten der Nummerierung
5.2.2 Einfache Nummerierung
5.2.3 Erweiterte Nummerierung
5.3 Gruppierungen
5.3.1 Gruppierungen für XSLT 1.0
5.3.2 Gruppierungen für XSLT 2.0

6 Parameter und Variablen
6.1 Parameter
6.1.1 Lokale Parameter
6.1.2 Globale Parameter
6.2 Variablen
6.2.1 Lokale Variablen
6.2.2 Globale Variablen
6.2.3 Temporäre Bäume

7 Vorgaben für Ein- und Ausgabeformate
7.1 HTML
7.1.1 CSS erzeugen
7.1.2 Kommentar erzeugen
7.2 XML
7.2.1 Strukturen erzeugen
7.2.2 Besondere Knoten und Anweisungen
7.2.3 Strukturen kopieren.
7.3 Zeichenformatierungen
7.3.1 Allgemeine Ausgabeoptionen
7.3.2 Dezimalformat
7.3.3 Zeitformatierung
7.4 Verarbeitung von mehreren Dokumenten
7.4.1 Mehrere Dokumente laden
7.4.2 Mehrere Dokumente mit XSLT 2.0 erzeugen

8 XML- und Text-Ausgabe
8.1 XML
8.1.1 Attributorientierte Dokumente
8.1.2 XML Schema
8.2 Text
8.2.1 SQL
8.2.2 CSV-Werte
8.2.3 Textausgabe

9 Dateibasierte Auslagerung
9.1 XSLT-Dateien einbinden
9.1.1 Einfaches Beispiel
9.1.2 Prioritätsregeln
9.2 XSLT-Dateien importieren
9.2.1 Standardfall
9.2.2 Priorisierung im Importbaum
9.2.3 Überschreibung umgehen
9.2.4 Eingebaute Vorlagen
9.3 XML Schema in XSLT 2.0

10 Fehlersuche
10.1 Nachrichten
10.1.1 Grundprinzip
10.1.2 Sinnvolle Benutzung
10.2 Testfunktionen
10.2.1 Verfügbare Syntax testen
10.2.2 Standardverhalten
11 Vorlagen und Strukturen
11.1 Vorlagentypen
11.1.1 Grundlagen
11.1.2 Konkrete Vorlagen
11.1.3 Allgemeine Vorlagen
11.1.4 Bedeutung von XPath
11.2 Voraussetzungen auf Strukturseite
11.2.2 Benennung
11.2.3 Eltern-Kind-Strukturen
11.2.4 Attribute vs. Elemente

12 Eigene XSLT-Funktionen
12.1 Benannte Vorlagen in XSLT 1.0
12.1.1 Grundlagen
12.1.2 Verwendung
12.2 Komplexer Aufbau von Vorlagen
12.2.1 Variantenauswahl über Vorlagennamen.
12.2.2 Variantenauswahl über Parameter
12.2.3 Überladen von Vorlagen
12.2.4 Generische Programmierung
12.3 Stylesheet-Funktionen in XSLT 2.0
12.3.1 Grundlagen
12.3.2 Ersatz von benannten Vorlagen
12.3.3 Verkürzungen in XPath/XSLT 2.0

13 XML Schema-Einsatz
13.1 Verwendung
13.1.1 Grundlagen
13.1.2 Beispiel
13.2 Mögliche XML Schema-Strukturen
13.2.1 Vordefinierte Datentypen
13.2.2 Benutzerdefinierte Datentypen
13.2.3 Komplexe Datentypen
13.2.4 Globale Elemente und Attribute
13.3 Verwendung eingebundener Strukturen
13.3.1 Datentyp-Ausdrücke
13.3.2 Attribut-Tests

14 XPath- und XQuery-Funktionen
14.1 Arbeiten mit Zahlen
14.1.1 Berechnungen
14.1.2 Aggregate
14.2 Arbeiten mit Zeichenketten
14.2.1 Zeichenkettenwerte
14.2.2 Unterzeichenketten
14.3 Arbeiten mit Knoten
14.3.1 Knotenfunktionen
14.3.2 Sequenzfunktionen
14.3.3 Kardinalität von Sequenzen
14.4 Arbeiten mit der Zeit
14.4.1 Zeitbestandteile auslesen
14.4.2 Angleichung von Zeitzonen
14.4.3 Berechnung von Zeitdauern
14.4.4 Kontextfunktionen
14.4.5 Formatierung von Zeit

15 XSLT 2.0-Funktionen
15.1 Entitäten
15.1.1 Einsatz in XML
15.1.2 Einsatz in XSLT
15.1.3 Funktionen für Entitäten
15.2 Arbeiten mit Dateien
15.2.1 Statischer Dateiname
15.2.2 Dynamischer Dateiname
15.2.3 Array-Strukturen als Parameter übergeben
15.2.4 Textdateien einlesen
15.3 Schlüssel und Verweise
15.3.1 Einsatz von XSLT-Funktionen
15.3.2 Einsatz von IDs

16 SQL-ähnliche Abfragen mit XSLT
16.1 Bedingungen
16.1.1 Grundlagen
16.1.2 Beispiel
16.1.3 Mehrstufige Gleichheit
16.2 Verknüpfungen
16.2.1 Innere Verknüpfung
16.2.2 Äußere Verknüpfung
16.2.3 Selbstverknüpfung
16.3 Mengen
16.3.1 Mengen verarbeiten
16.3.2 Mengentests

17 Dynamisches XSLT
17.1 Grundlagen
17.1.1 Besonderheiten von XSLT
17.1.2 Besonderheiten von XML-Technologien
17.2 XSLT erzeugen
17.2.1 Neu-Erzeugung aus XML Schema
17.2.2 Allgemeiner Programmaufbau
17.3 XSLT zusammensetzen
17.3.1 Grundlagen
17.3.2 Dateien verbinden
17.3.3 Datenbank-Einsatz

18 Reguläre Ausdrücke
18.1 Einfache Ausdrücke
18.1.1 Meta-Zeichen
18.1.2 Flucht-Zeichen
18.1.3 Unicode-Zeichenklassen (Kategorien)
18.2 XPath-Unterstützung
18.3 XSLT-Unterstützung
18.3.1 Grundlagen
18.3.2 Beispiel

19 XQuery
19.1 Grundsyntax und einfache Umwandlungen
19.1.1 Einführung
19.1.2 FLOWR
19.1.3 XML-Erzeugung
19.1.4 Fallunterscheidungen
19.1.5 Eigene Funktionen
19.2 Anwendungsfälle von XQuery
19.2.1 Hierarchien und flexible Dokumente
19.2.2 Sequenzen und Reihenfolgen
19.2.3 Relationale Daten
19.2.4 Berechnungen

20 XSLT in Programmiersprachen
20.1 PHP 5
20.1.1 Vorhandene Syntax
20.1.2 Beispiel
20.2 Oracle 10g/9i und PL/SQL
20.2.1 Vorhandene Syntax
20.2.2 Beispiel
20.3 C#.NET
20.3.1 Vorhandene Syntax
20.3.2 Beispiel
20.4 MS SQL Server 2005 und T-SQL
20.4.1 XSLT-Einsatz
20.4.2 XQuery

Ebenfalls erhältlich: XSL-FO, 978-3-939701-17-0

Marco Skulschus, Jan Kozik und Marcus Wiederstein arbeiten im Bereich Softwareentwicklung und Weiterbildung bei der Comelio GmbH. Zum Themengebiet XML haben sie als Gruppe und als Alleinautoren schon sechs Bücher zum Einsatz von XML veröffentlicht, die in vier Jahren mehr als 10.000-mal verkauft wurden. Sie beschäftigen sich auch mit Datenmodellierung für XML und Datenbanken, Ontologien und Berichts-/ Expertensystemen mit XML-Einsatz.

Sprache deutsch
Maße 170 x 220 mm
Gewicht 200 g
Einbandart Paperback
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Schlagworte Adobe • PDF • W3C • WebService • XPath • XQuery • XSLT
ISBN-10 3-939701-18-1 / 3939701181
ISBN-13 978-3-939701-18-7 / 9783939701187
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Das Handbuch für Webentwickler

von Philip Ackermann

Buch | Hardcover (2023)
Rheinwerk (Verlag)
49,90
Grundlagen und praktische Anwendungen von Transpondern, kontaktlosen …

von Klaus Finkenzeller

Buch (2023)
Hanser (Verlag)
89,99
das umfassende Handbuch

von Marc Marburger

Buch | Hardcover (2024)
Rheinwerk (Verlag)
49,90