Da viele Anwender unter Windows 9x/NT mit dem Internet Explorer arbeiten, wollen wir am Anfang dieses Kapitels kurz auf die Möglichkeiten und Besonderheiten des Umgangs mit XML und XSLT eingehen. Wir haben dazu, wie im später folgenden Abschnitt 11.3, eine abgespeckte Version der in Kapitel 15 verwendeten Literaturgeschichte genutzt: nur die Lebensdaten der Autoren, damit die Verarbeitung schneller ist ;-).
Internet Explorer 5 kann XML-Dateien
mit zugehörigem XSLT-Stylesheet und ohne
jegliches Stylesheet darstellen. Die nackte
XML-Datei (ohne Verweis auf ein
XSLT-Stylesheet) zeigt der Browser als
Strukturbaum an, mit den unter Windows üblichen Plus- und
Minuszeichen zum Expandieren und Schrumpfen von
XML-Datenstrukturen. Eine Abbildung lohnt hier
nicht, weil die unterschiedlichen Farben im Druck nicht
erschienen. Wenn das Dokument ein XSLT-Stylesheet
referenziert, musste man allerdings bis um März 2000 ein paar
Microsoft-spezifische Details beachten, ohne die es nicht
ging (siehe auch Kapitel 4). Zunächst
eine darzustellende XML-Datei im Auszug:
<?xml version='1.0'?> <?xml-stylesheet type="text/xsl" href="lit.xsl" ?> <lithist> <author ID="Aue"> <name> <fname>Hartmann von</fname> <lname>Aue</lname> </name> <vita> <born><year>1165</year></born> <died><year>1215</year></died> </vita> </author> <!-- weitere Autoren --> </lithist>
Ausgegeben werden sollen die Namen und die
Geburtsjahre, wie sie für alle AutorenDamit wir
nicht ständig
Autoren und Autorinnen
schreiben müssen, sei an dieser
Stelle noch einmal erwähnt, dass in der Liste eine Reihe von
Autorinnen vorkommen. vorliegen. Auffallend ist
zunächst, dass Microsoft fordert: der Typ des Stylesheet muss
text/xsl sein. In der
W3C-Spezifikation taucht lediglich
text/xml auf. Wenn das alle Eigenheiten wären,
reichte es schon, denn das hieße, einen weiteren
MIME-Typ einzuführen. Aber wenn man sich das dazu
erforderliche Stylesheet ansieht, geht es munter
weiter ...
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional"> <xsl:template> <xsl:apply-templates/> </xsl:template> <xsl:template match="text()"> <xsl:value-of/> </xsl:template> <xsl:template match="/"> <HTML> <HEAD> <TITLE>LitHist</TITLE> <STYLE> BODY { margin:0px; background-color: #FFFFDD; width: 30em; font-family: Arial, Helvetica, sans-serif; font-size: small; } H1 { color: #333366; text-align: center; } HR { color: #333366; } TH { background: #336633; color: #ffffff; } TD { background: #333366; color: #ffffff; } </STYLE> </HEAD> <BODY> <H1>Literaturgeschichte im Kleinen</H1> <TABLE BORDER="2" ALIGN="center"> <TR><TH>Vorname</TH><TH>Nachname</TH> <TH>Geburtsjahr</TH><TH>Todesjahr</TH></TR> <xsl:for-each select="lithist/author"> <TR><TD><xsl:value-of select="name/fname"/></TD> <TD><xsl:value-of select="name/lname"/></TD> <TD><xsl:value-of select="vita/born/year"/></TD> <TD><xsl:value-of select="vita/died/year"/></TD> </TR> </xsl:for-each> </TABLE> <HR WIDTH="80%"/> </BODY> </HTML> </xsl:template> <xsl:template match="author | name"> <xsl:apply-templates/> </xsl:template> <xsl:template match="fname | lname"> <xsl:value-of select="."/> </xsl:template> </xsl:stylesheet>
Schon die ersten Zeilen überraschen durch ihre
Widersprüchlichkeit. Auf der einen Seite nutzt das Stylesheet
noch einen Entwurf für XSL (WD-xsl),
obwohl die Empfehlung seit November 1999 verabschiedet
ist. Andererseits verweist die Datei auf die noch in
Entwicklung befindlichen Profiles von XHTML. Ohne
die Zuweisungen stellt der Internet Explorer Seiten zumindest
nicht dar. Dasselbe gilt für die beiden ersten Templates, das
erste, ohne jedes match-Attribut, sowie das zweite,
auf alle Textknoten bezogene. Erst danach kann es mit den
üblichen Templates losgehenÜblich
heißt hier,
dass es sich um strikt nach der Spezifikation geschriebene
Templates handelt., hier angefangen mit
<xsl:template
match="/">...</xsl:template>
Abbildung 34: Ausgabe der Geburtsjahre von Autoren nach dem Alphabet, wie im Quell-Dokument. Wie das Sortieren nach Jahren funktioniert, zeigt Abschnitt 11.3.1.
Aber genug vom Proprietären: Der Rest dieses Kapitels ist Anwendungen gewidmet, in denen es darum geht, XML in statisches HTML zu wandeln, das neben dem Internet Explorer auch andere Browser darstellen können.