Drei beteiligte Dokumente

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 1.)

Bei jeder Transformation sind drei Dokumente beteiligt – zunächst das Quell­dokument, bei dem es sich um ein XML-Dokument handelt und das die zu verarbeitenden Infor­mationen beinhaltet. Zweitens das XSLT-Stylesheet: In diesem stehen die Anweisungen, wie mit den Informationen aus dem Quelldokument zu verfah­ren ist. Drittens das nach Abschluss der Transformation erzeugte Ergebnisdoku­ment – sein Aufbau ergibt sich aus den Anweisungen des Style­sheets und aus der Struktur und dem Inhalt des Quelldokuments.

Das Quelldokument

Ein Quelldokument muss für die Durchführung einer Transformation zwin­gend vorliegen – hier wird eine möglichst einfache XML-Datei verwendet, um den Blick nicht durch nebensächliche Aspekte abzulenken. Zwar würde bereits ein leeres Wurzel­element genügen, aber ein wenig Inhalt sollte für die folgenden Demonstrationen schon zur Verfügung stehen:

Code-Beispiel: kap01/1.02.1/dummy.xml.

<?xml version="1.0" encoding="ISO-8859-1"?>
<wurzelelement>Das ist ein Testinhalt aus 'dummy.xml'.</wurzelelement>

Anmerkung: An dieser Stelle soll kurz erwähnt werden, dass der einlesende XML-Parser, der der Transformation stets vorgeschaltet ist, das Dokument intern in eine Baumstruktur überführt. Zu diesem Zeitpunkt ist dies nicht wichtig, erleichtert aber später das Verständnis des Ablaufs.

Das Stylesheet

Das Dokument dummy.xml soll mittels eines XSLT-Stylesheets verarbeitet werden. Auch dieses Dokument ist für das Einstiegsbeispiel so einfach wie möglich gehalten – siehe die folgende Abbildung:

Das erste Stylesheet stylesheet1.xsl

Abbildung: Das erste Stylesheet »stylesheet1.xsl«.

Deutlich ist zu sehen, dass einige Elementnamen mit xsl: beginnen. Hier sind dies die Elemente xsl:stylesheet (hellgrau) und xsl:template (mittelgrau) – diese bilden das funktionale Gerüst des Stylesheets. Darüber hinaus ist im Inneren von xsl:template auch noch »normales« HTML enthalten (dunkelgrau). Der vorausgehende XML-Prolog kennzeichnet das Stylesheet als XML-Dokument. Das encoding-Attribut bezeichnet den Zeichensatz des Dokuments.

Das Ergebnisdokument

Folgendes Ergebnisdokument wird erzeugt – in diesem Fall handelt es sich um ein simples HTML-Dokument:

Code-Beispiel: kap01/1.02.1/ergebnis.html.

<html>    
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
    <title>Ergebnisdokument</title>
  </head>
  <body>
    <h1>Die erste XSLT-Transformation</h1>
    <p>Ein Textabsatz. Später mehr.</p>
  </body>
</html>

Vergleicht man Ergebnisdokument und Stylesheet miteinander, so bemerkt man, dass das Ergebnisdokument (fast) als Ganzes – wenn auch in weitere Elemente verkapselt – bereits im Stylesheet enthalten ist (dort im Quellcode dunkelgrau hinterlegt). Offensichtlich also ist dieser Bereich im Wesentlichen kopiert worden, wobei allerdings ein <meta>-Tag hinzugefügt wurde, der im Stylesheet nicht enthalten war.

In der hier dargestellten Absolutheit ist ein solcher Kopiervorgang natürlich ein Extremfall. Ebenso extrem an diesem Beispiel ist, dass das XML-Quelldo­kument im Prinzip gar nicht verwendet zu werden scheint (nun, es steht ja auch fast nichts drin). Eine gewisse Rolle spielt das Quelldokument dennoch, wie später zu sehen sein wird.

Zunächst soll nur einfach vermerkt werden, dass ein Stylesheet Bereiche ent­hält, die »wie sie sind« im Ergebnisdokument wieder auftauchen. Weil sie dabei nicht verändert werden, also »literal« übernommen werden, bezeichnet man sie auch als Literal Result Elements (auf Deutsch: Literale Ergebniselemente).

Kopieren von Literal Result Elements

Abbildung: Kopieren von Literal Result Elements.

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Galileo Press, Rheinwerkallee 4, 53227 Bonn