Keine Verbesserung ist zu klein oder geringfügig, als dass man sie nicht durchführen sollteAus den
Minima Moralia..Theodor W. Adorno
It is time to unmask the computing community as a Secret Society for the Creation and Preservation of Artificial ComplexityAus dem Aufsatz
The Tide, Not the Waves[deme97] [deme97]Beyond Calculation - The Next Fifty Years of Computing- The Next Fifty Years of Computing, Peter J. Denning, Robert M. Metcalfe, New York, 1997, Copernicus (Springer)..Edsger W. Dijkstra
Wer sich mit Publishing im weiteren Sinne des Wortes beschäftigt, weiß, dass die Gestaltung von Dokumenten ihrem Inhalt an Bedeutung nicht viel nachsteht, wenn man das Ergebnis auch verkaufen will. Zyniker werden nicht müde zu behaupten, sie sei das einzig Wichtige.
Display ist Wahrheit. Alles, was Anwender (nicht nur im Web) sehen, ist das Zusammenspiel des Inhalts und seiner Formatierung. Ob eine mittelgroße Überschrift zentriert oder rechts ausgerichtet dargestellt wird, hat zwar mit dem Inhalt nur bedingt zu tun, beeinflusst aber die ästhetische Wahrnehmung — die des Inhalts.
Über die Stilsprache für XML zu schreiben,
heißt momentan gleich dreierlei thematisieren zu müssen, weil
die Festlegung der entsprechenden Sprache noch im Fluss ist.
Die Extensible Stylesheet Language
(XSL) ist zur Zeit ein Entwurf
im Last Call
, der am 30. April 2000 endet. Wenn nicht
dazwischen kommt, wird XSL später in diesem Jahr
verabschiedet. Gleichzeitig gibt es Alternativen für diese
Sprache: die aus HTML bekannten
Cascading Style Sheets und
DSSSL. Alle drei werden in
diesem Kapitel behandelt.
Glücklicherweise müssen diejenigen, die nicht ein Jahr oder länger auf die Verabschiedung eines Standards warten wollen, dies auch nicht tun. Denn mit der Document Style Semantics and Specification Language (DSSSL) ist schon länger eine Sprache vorhanden, die zwei Vorteile hat:
Diese beiden Vorteile waren für uns der Grund, DSSSL etwas ausführlicher zu behandeln; aber die beiden anderen Sprachen kommen natürlich auch zu ihrem Recht. Zur Reihenfolge: Zunächst sollen die Möglichkeiten von CSS, XML-Daten anzuzeigen, vorgestellt werden. Anschließend behandeln wir DSSSL, und kommen zum Schluss zu XSL, der designierten Stilsprache für XML.
Spätestens seit es Cascading Style Sheets (CSS) für HTML gibt (Herbst 1996), war überdeutlich klar, dass das Web derlei braucht — eigentlich viel früher. Designer wie David Siegel hatten sich längst Gedanken darüber gemacht, wie die Gestaltung von Web-Dokumenten ohne zusätzliche Hilfe wie CSS zu verbessern sei. Die Erfindung des transparenten 1-Pixel-GIF, das in Höhe und Breite fast beliebig dehnbar ist, dürfte ihm zuzuschreiben sein. Ebenso hatte wohl er die Idee, Grafiken zu laden, ohne sie zu zeigen (gewissermaßen ein Vorwegladen), damit für den Anwender bei der nächsten Seite kein Gefühl des Wartens aufkommt. Aber all dies hieß, Inhalt und Formatierung zu vermengen respektive nicht vollständig auseinanderzuhalten.
CSS waren für HTML ein
deutlicher Fortschritt: Schließlich war es mit ihrer Hilfe
erstmals möglich, das Basisdokument und die Art und Weise, wie es
formatiert werden soll, voneinander getrennt zu halten und zu
pflegen. Außerdem erlauben
CSS Web-Autoren, ein
Style Sheet für eine
beliebige Menge von HTML-Dokumenten zu nutzen
— und so für ein einheitliches Aussehen der Website
(Corporate Identity
) zu sorgen.
Im SGML-Umfeld hatte man sich über die grundsätzliche Trennung von Struktur und Formatierung des Inhalts von Dokumenten längst Gedanken gemacht; das eigentliche (= inhalts- beziehungsweise strukturbezogene) Markup sollte im Dokument enthalten sein, Formatierungsanweisungen nicht. Mit der Document Style Semantics and Specification Language (DSSSL) ist 1996 eine Sprache als ISO/IEC-Standard 10179 verabschiedet worden, die diese Formatierung für SGML-Dokumente leisten soll.
Um diese Trennung von Inhalt und Formatierung nach HTML zu übertragen, reicht es im Web-Dokument völlig aus, <h1>...</h1> zu schreiben und das Style Sheet (im HTML-Fall Cascading Style Sheets) darüber befinden zu lassen, welche Farbe Text und Links haben. Gleiches gilt natürlich auch für alle anderen Elemente: Welcher Schrifttyp, welche Schriftgröße etc. für einen Absatz oder ein Zitat vorgesehen sind, muss keineswegs im eigentlichen Dokument stehen. Im Gegenteil: Ist einmal ein Style Sheet fertig gestellt, kann es für beliebig viele Dokumente gelten, die wiederum Einzelheiten durch eigene Festlegungen überschreiben dürfen.
Für XML benötigt man — anders als im Falle von HTML — auf jeden Fall Style Sheets. Sonst lässt sich schließlich nichts darstellen. Wem das nicht ganz einleuchtet, der möge sich vor Augen halten, dass die Ausgaben, die gängige Web-Browser vornehmen, darauf beruhen, dass sie die Strukturbeschreibung von HTML verinnerlicht (einkompiliert) haben. Für jeden der Elementtypen in der HTML-DTD haben Netscape und Microsoft — und andere — festgelegt, wie Instanzen einzelner Elementtypen darzustellen sind. Das ist mit XML-Anwendungen nicht mehr möglich, denn woher soll ein Browser wissen, wie
<author ID="Aue" firstentry="1998/01/17" lastmod="1998/01/17" gender="m"> <name> <fname>Hartmann von</fname> <lname>Aue</lname> </name> <vita> <born> <year>1165</year> </born> <died> <year>1215</year> </died> </vita> </author>
aussehen soll oder auch nur kann. An komplexere Daten
sei hier lieber nicht gedacht. Kein Browser kann ahnen, von
welcher Art die Elemente author oder
vita sind respektive ob sie die Darstellung ihrer
Kindelemente auf irgendeine Weise beeinflussen. Damit
zukünftig Browser mit XML umgehen können, müssen
die Hersteller ihnen zunächst beibringen
, dass neben
HTML auch XML über das Web kommen kann und dass es
möglicherweise notwendig sein kann, zusätzliche Daten zu
laden. Das mindestens ist schon bei CSS der Fall
und muss mit XML nicht komplizierter sein. Nur ist
dazu eine Sprache erforderlich, in der die
XML-Style-Sheets geschrieben sein können/müssen.
Eventuell fragen Sie sich, warum Sie nicht CSS auch für XML benutzen sollten? Zwei Gründe — eigentlich nur einer, der aber zwei Aspekte hat — sprechen dagegen:
Ganz so unberechtigt ist die Frage übrigens nicht: CSS wird schon für die Formatierung von XML-Dokumenten verwendet. Bereits die von Anfang April 1998 stammende Version des im Quellcode ausgelieferten Mozilla, Netscapes frei erhältlichem Browser, konnte XML-Dateien ohne den Umweg einer Konvertierung nach HTML anzeigen.
Für SGML existiert, wie gesagt, bereits seit 1996 eine Sprache, die eine solche Formatierung vornimmt: DSSSL, die (um den Begriff noch einmal auf der Zunge zergehen zu lassen) Document Style Semantics and Specification Language. Als DSSSL-O ist eine reduzierte Variante bekannt (http://sunsite.unc.edu/pub/sun-info/standards/dsssl/dssslo/), auf der wiederum die XML-Stilkomponente basieren sollte.
Zunächst — Mitte 1997 — lagen zwei Vorschläge vor: Eine Überarbeitung der Online-Version von DSSSL (DSSSL-O), die von Jon Bosak stammt, war seit langem als XS bekannt. Mitte August 1997 hatten Vertreter von Microsoft, Inso und Arbortext — unter Mithilfe einiger Einzelpersonen — beim W3C einen anders gearteten Vorschlag eingereicht, den das Konsortium offenbar positiv aufgenommen hat. Unter dem Namen XSL ist diese Extensible Stylesheet Language bekannt geworden, und das W3C hatte ihr bald eine Web-Seite gewidmet (http://www.w3.org/Style/XSL/).
Im Folgenden geht es — der Reihe nach — um drei Dinge: Zunächst zeigen wir, was mit CSS und XML möglich ist. Anschließend sollen ein paar Details zu DSSSL klären, was die Sprache eigentlich ist, gefolgt von ein paar Beispielen zum möglichen Web-Alltag, die erklären, wie man DSSSL für HTML-Ausgaben nutzen kann. Und natürlich kommen als Schwerpunkt die XSL-Sprachen (XSLT und XSL-FO) hier zu ihrem Recht, inklusive praktischer Beispiele in späteren Kapiteln.