XSL-Beispiel

HTML ist ein wenig wie Papier. Hat man es erst ein mal bekritzelt, sind Änderungen mit Aufwand verbunden. Natürlich hat eine HTML-Datei den Vorteil, daß man darin ungestraft "herumraddieren" kann. Oft jedoch ändert man nicht den Text selbst, sondern das Layout - also Schriftarten, Hintergrundfarbe und diesen ganzen Kram. Oder aber man fügt Text hinzu, den man natürlich dann genauso formatiert wie den vorangehenden Text.
Müssen nun Änderungen an vielen Stellen eines solchen HTML-Dokumentes vorgenommen werden, bedeutet das Streß für den Web-Publisher.

Währe es nicht irgendwie cleverer, den Text und das Layout voneinander zu trennen?

Wenn sowieso alle Text-Abschnitte gleich formatiert sind, sollte doch der Computer in der Lage sein, die Formatierungs-Vorschrift irgendwo abzulegen und sie bei Bedarf auf alle Text-Abschnitte gleichermaßen anzuwenden.
Der Vorteil dieses Verfahrens läge auf der Hand. Erstens reduzierten sich die Formatierungs-Informationen und zweitens würde sich deren Änderung stets automatisch auf alle betreffenden Teile des Dokumentes auswirken. Und genau dafür gibt es XSL.

Nehmen wir das Beispiel der statischen(!) Wahnsinns-Seite. Jeder Abschnitt besteht aus Wahnsinns-Überschrift, -Urheber, -Text und einem Wahnsinns-Kommentar. Jeder dieser Abschnitte ist von einer extra Tabelle umschlossen, alle diese Tabellen besitzen identische Größenangaben, Ausrichtungen u.s.w. - das irgendwann einmal umschreiben zu müssen, währe pure Beschäftigungs-Therapie.

Was wir also brauchen, ist erstens so eine Art Datenbank für die Wahnsinns-Abschnitte und zweitens eine Möglichkeit, Formatierungs-Informationen zu speichern.
Mit anderen Worten: wir brauchen ein XML-Dokument und ein XSL-Stylesheet (daß ein Stylesheet selbst auch ein XML-Dokument ist, nehmen wir zur Kenntnis, ignorieren es aber geflissentlich ...)

Das XML-Dokument

... ist eine nach XML-Regeln strukturierte Text-Datei, die sich im wesentlichen folgendermaßen zusammensetzt:

root-Element
  Gesamt-Überschrift

    Wahnsinns-Abschnitt
      Überschrift
      Text
      Urheber
      Kommentar

    Wahnsinns-Abschnitt
      Überschrift
      Text
      Urheber
      Kommentar

...

Die entsprechende XML-Datei (wahnsinn_body.xml) läßt sich prima im Internet Explorer anschauen.

Das XSL-Stylesheet

... ist natürlich das eingentlich Interessante und leider nicht so leicht zu lesen, wie das XML-File. Was man mit XSL-Stylesheets tut ist folgendes:

Mit XSL-Stylesheets werden XML-Dokumente in Dokumente beliebigen Formats (XML, PDF, ...) umgeformt.

In dem Beispiel formt das Stylesheet (wahnsinn_body.xsl) die XML-Datei wahnsinn_body.xml in ein HTML-Dokument um. Die HTML-Seite liegt dabei nicht als Datei vor, sondern wird dynamisch durch den Browser erzeugt - existiert also nur im Hauptspeicher des Client-Rechners.

Und so sieht der Quelltext für die Ausführung des Stylesheets aus:

<script language="JavaScript">
<!-- top frame füllen -->
var xml = new ActiveXObject("MSXML2.DOMDocument.3.0");
var xsl = new ActiveXObject("MSXML2.DOMDocument.3.0");

xml.async = false;
xsl.async = false;

xml.load("wahnsinn_body.xml");
xsl.load("wahnsinn_body.xsl");

window.document.write(xml.transformNode(xsl));
</script>

Der entscheidende Befehl ist blau hervorgehoben und läßt sich in etwa lesen als: XML wird mit Hilfe von XSL in HTML transformiert und in das aktuelle Fenster des Browser geschrieben.

Und so sieht das Ergebnis aus.

Nebenbei bemerkt: Auch der Top-Frame dieser Seite wird dynamisch erzeugt und kann auf der Spielwiese sogar modifiziert werden - für die Farbe und den Sponsor bin ich also nicht verantwortlich :)

 

Copyright © J.Weingärtner, [Letzte Aktualisierung 14.05.2004]
i_n_f_o_@_d_s_c_h_e_n_s_k_y_._d_e