XML/XSL

Aus SELFHTML-Wiki
< XML(Weitergeleitet von XSL)
Wechseln zu: Navigation, Suche

Dieser Abschnitt erläutert die Umwandlung von XML Dokumenten mittels Extensible Stylesheet Language Transformations (XSLT) der Version 1.0. Innerhalb von XSLT werden Knoten des umzuwandelnden Dokumentes anhand der XML Path Language (XPath) angesprochen. Daher wird diese in der Version 1.0 ebenfalls in diesem Abschnitt behandelt.

XPath

XSLT

XSL oder CSS - Formatierung für XML-Elemente

XML-basierte Dateien enthalten nichts anderes als logische Auszeichnungen (auch semantische Auszeichnungen genannt). Eine Auszeichnung wie <beschreibung>...</beschreibung> sagt nur etwas über die Bedeutung der an dieser Stelle gespeicherten Daten aus, aber nichts darüber, wie solche Daten darzustellen sind. Die so bezeichneten Daten sind völlig unabhängig vom Ausgabemedium (etwa Bildschirm, Display, Lautsprecher, Drucker), und sie enthalten keinerlei Angaben zur Formatierung (Schriftart, Schriftgröße, Farben usw.). Im Gegensatz zu HTML-Daten, für deren Darstellung ein Browser Default-Werte benutzt, hat er bei XML-Daten keine Anhaltspunkte, wie diese darzustellen sind. Bevor Sie solche Daten also präsentieren können, müssen Sie mit Hilfe einer Style-Sprache angeben, wie die Daten formatiert werden sollen.

Dazu stehen heute zwei Formatsprachen zur Verfügung: CSS und XSL. CSS (Cascading Stylesheets), auch für HTML eingesetzt, ist dabei die "Brot- und Buttersprache". Sie genügt, um etwa einem Web-Browser mitzuteilen, wie er die Elemente einer XML-Datei darstellen soll. XSL ist dagegen wesentlich mächtiger und enger an den Konzepten von XML orientiert. Ganz besonders wichtig ist die so genannte Transformations-Komponente XSLT. Mit Hilfe von XSLT können Sie beispielsweise XML-Daten in HTML transformieren – und zwar, bevor der Browser überhaupt etwas davon mitbekommt, also server-seitig! Das hat den Vorteil, dass XML in Verbindung mit XSL auch mit älteren Browsern funktioniert, die gar kein XML kennen. Der Nachteil ist, dass es nur in einer HTTP-Umgebung funktioniert, aber nicht, wenn die Daten etwa lokal auf einer CD-ROM präsentiert werden. Außerdem muss der Web-Server eine entsprechende Schnittstelle besitzen, die das Einbinden eines XSL/XSLT-verarbeitenden Software-Moduls erlaubt.

Daneben stehen in XSL Möglichkeiten zur Verfügung, die in CSS unbekannt sind, zum Beispiel bedingte Formatierung (wie if-Bedingungen in Programmiersprachen) oder Sortierung von Daten.

Ein entscheidender Vorteil von XSL ist außerdem, dass es keine eigene, vom Auszeichnungssprachenschema abweichende Syntax benutzt, so wie CSS. Stattdessen ist XSL selbst eine mit Hilfe von XML definierte Auszeichnungssprache! Eine Stylesheet-Datei, die mit XSL erstellt ist, ist also selber eine XML-gerechte Datei. So sind Software-Tools, die für XML entwickelt wurden, auch für XSL anwendbar.


Beispieldefinition mit CSS
kopfzeile { display:block; font-family:Helvetica; font-size:12px; font-weight:bold }
Beispieldefinition mit XSLT
<xsl:template match="kopfzeile">
    <div style="font-family:Helvetica; font-size:12px; font-weight:bold;">
      <xsl:value-of select="." />
    </div>
</xsl:template>


Auf den ersten Blick wirkt die CSS-Definition natürlich einfacher – zumindest, wenn Sie sich mit CSS bereits beschäftigt haben. Die XSL-Definition ist dagegen vertrauter, wenn man sie vom Blickwinkel der Auszeichnungssprachen her betrachtet. Auszeichnungen wie <xsl:template>...</xsl:template> (Schablonen-Definition) oder <xsl:value-of select="." /> (Inhalt des aktuellen Elements einfügen) gehören zu XSL. Im Beispiel fällt Ihnen möglicherweise auf, dass für die eigentlichen Format-Definitionen von kopfzeile plötzlich ein HTML-Element verwendet wird, nämlich div, und dass das einleitende <div>-Tag sogar die vertrauten CSS-Definitionen enthält. Dahinter steckt das Konzept von XSLT. Denn mit Hilfe dieser Sprache können Sie nicht einfach nur Formatierangaben für Elemente notieren, sondern Sie können die Elemente in eine andere Sprache transformieren. In der Praxis wird derzeit hauptsächlich die Transformation von eigenen XML-Daten in HTML (so wie im obigen Beispiel) oder PDF benutzt.

Im Abschnitt XML-Darstellung mit CSS-Stylesheets finden Sie detailliertere Erklärungen dazu, wie XML mit CSS dargestellt werden kann und im Abschnitt XSLT 1.0 / XPath 1.0 finden Sie weiterführende Erklärungen dazu, wie XSLT funktioniert.