Transformation und Präsentation

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

Das Markup in einem typischen XML-Dokument beschreibt die Struktur eines Dokuments, nicht seine Darstellung. Das heißt, das Markup sagt, wie das Dokument aufgebaut ist, aber nicht, wie es aussieht. Obwohl XML-Dokumente Text sind und man sie bei Bedarf einfach so lesen könnte, wird ein XML-Dokument weit öfter in ein anderes Format umgewandelt, bevor es dem menschlichen Publikum präsentiert wird. Einer der Schlüsselgedanken hinter Markup-Sprachen im Allgemeinen und XML im Besonderen ist, dass das Eingabeformat nicht identisch mit dem Ausgabeformat sein muss. Mit anderen Worten: Was Sie sehen, ist nicht das Gleiche wie das, was Sie erhalten, noch ist es das Gleiche wie das, was Sie erhalten wollen. Die Eingabe-Markup-Sprache dient der Bequemlichkeit des Schreibers. Die Ausgabesprache dient der Bequemlichkeit des Lesers.

Selbstverständlich erfordert das eine Methode, um das Eingabeformat in das Ausgabeformat zu transformieren. Die meisten XML-Dokumente werden irgendeiner Transformation unterzogen, bevor sie dem Leser präsentiert werden. Die Umwandlung kann in einen anderen XML-Wortschatz wie XHTML oder XSL-FO oder auch in ein Nicht-XML-Format wie PostScript oder RTF erfolgen.

XMLs halb offizielle Transformationssprache ist Extensible Stylesheet Language Transformations (XSLT). Ein XSLT-Dokument enthält eine Liste mit Template-Regeln. Jede Template-Regel hat ein Muster, das festhält, welchen Elementen und anderen Knoten es entspricht. Ein XSLT-Prozessor liest das Eingabedokument. Wenn er in dem Eingabedokument etwas bemerkt, was auf die Template-Regel in dem Stylesheet passt, gibt er das Template der Template-Regel aus. Das Template kann dem Prozessor sagen, welchen Inhalt der Eingabe er in die Ausgabe einfügen soll. Das erlaubt es zum Beispiel, den Text im Ausgabedokument beizubehalten, während das Markup geändert wird. So könnten Sie etwa ein Stylesheet schreiben, das DocBook-Dokumente in TEI-Dokumente umwandelt.

Allerdings ist XSLT nicht die einzige Transformationssprache, die Sie mit Ihren XML-Dokumenten verwenden können. Es stehen andere Stylesheet-Sprachen wie die Document Style Sheet and Semantics Language (DSSSL) zur Verfügung. Dann gibt es zudem noch eine Vielzahl proprietärer Werkzeuge wie OmniMark. Die meisten dieser Tools haben bestimmte Stärken und Schwächen für besondere Arten von Dokumenten. Eigene Programme, die in vielerlei verschiedenen Programmiersprachen geschrieben sein können, wie Java, C++, Perl und Python, können eine Fülle von APIs wie SAX, StAX, DOM, JDOM und XOM benutzen, um Dokumente zu transformieren. Das ist manchmal nützlich, wenn Sie mehr als eine reine Transformation durchführen wollen – etwa bestimmte Elemente als Datenbankanfragen interpretieren und die Ergebnisse dieser Anfragen dann in das eigentliche Ausgabedokument einfügen oder den Benutzer mitten in der Transformation Fragen beantworten lassen. Wenn Sie sich jedoch für ein Werkzeug entscheiden, sollten Sie sich vor allem danach richten, mit welcher Sprache und Syntax Sie am besten vertraut sind. De linguis non disputandum est.

Es gibt für das Ausgabeformat einer Transformation viele unterschiedliche Möglichkeiten. Eine PostScript-Datei kann auf Papier, Folien, Dias oder sogar T-Shirts gedruckt werden. Ein PDF-Dokument kann auf all diesen Medien und außerdem auf dem Bildschirm betrachtet werden. Für die Bildschirmanzeige jedoch ist schlichtes HTML einem PDF vorzuziehen, da es den Vorteil hat, auf außerordentlich vielen Plattformen zur Verfügung zu stehen und sich über XSLT sehr leicht aus XML-Dokumenten erzeugen lässt. Die Erstellung einer PDF- oder PostScript-Datei erfordert normalerweise einen zusätzlichen Umwandlungsschritt, in dem spezielle Software irgendein XML-Ausgabeformat wie XSL-FO in das umwandelt, was Sie eigentlich haben wollen.

Eine Alternative zu transformationsbasierten Präsentationen ist der Einsatz eines beschreibenden Stylesheets, das angibt, wie die Elemente des Originaldokuments zu formatieren sind. Dies ist das Reich der Cascading Stylesheets (CSS). CSS funktioniert besonders gut bei erzählenden Dokumenten, bei denen nichts weiter erforderlich ist als eine Liste der Schriften, Styles oder Größen, die auf den Inhalt der jeweiligen Elemente angewandt werden müssen. Entscheidend ist, dass man, entfernt man das Markup aus dem Dokument, mehr oder weniger die blanke Textversion dessen erhält, was man sehen möchte. Keine Änderung der Reihenfolge oder der Anordnung ist notwendig. Dieser Ansatz funktioniert in datensatzähnlichen Dokumenten nicht ganz so gut, in denen der reine Inhalt möglicherweise nicht mehr als ein undifferenzierter Haufen Zahlen, Daten oder anderer Informationen ist, die ohne den Kontext und die Annotationen des Markups unverständlich bleiben. In diesem Fall ist dagegen ein kombinierter Ansatz praktikabler. Erst könnte eine Transformation ein neues Dokument erzeugen, das neu angeordnete und annotierte Informationen enthält. Dann kann ein CSS-Stylesheet Style-Regeln auf die Elemente dieses transformierten Dokuments anwenden.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" 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.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de