Konzepte Content-Repräsentation & Markup-Sprachen

14.3 Extensible Stylesheet Language (XSL)

Mit DSSSL stand bereits vor der Fertigstellung von XML eine sehr mächtige und vielseitig verwendbare Sprache zur Beschreibung von Dokumenttransformationen und der resultierenden Layout-Objekte zur Verfügung. Die geringe Verbreitung dieser Technologie sowie die vergleichsweise mäßige Akzeptanz bei Entwicklern von Web-Servern und Backends zur dynamischen Erzeugung von Web-Seiten führte dazu, daß eine neue, speziell auf die Anforderungen an XML als universelle Auszeichnungssprache für das WWW ausgerichtete Sprache entwickelt wurde, die sich auf den real verwendeten Kern von DSSSL beschränkte. So wurde insbesondere auf die komplexen Bestandteile der DSSSL Transformation Language verzichtet. Statt der Scheme-basierten Expression Language wurde eine sehr schlanke funktionale Programmiersprache eingeführt, die in XML notiert wird, um die Parserentwicklung zu vereinfachen.

Während des Standardisierungsprozesses der Nachfolgersprache wurde deutlich, daß die in DSSSL verfolgte strikte Trennung von Transformation und Layout-Beschreibung zahlreiche Vorzüge hat, die auch für die neue Sprache beibehalten werden sollten. Als Ergebnis liegen nun zwei W3C-Empfehlungen vor, die jeweils einen dieser Aspekte abdecken. Bei der ersten handelt es sich um die Sprachmittel zur abstrakten Beschreibung des Dokumentlayouts für eine ästhetisch anspruchsvolle Druck- oder Bildschirmausgabe. Das Layout wird unter Verwendung sogenannter Formatting Objects beschrieben, die als Sprachmittel einer abstrakten Formatierersprache aufgefaßt werden können. Zur Abgrenzung von dem zweiten Bestandteil von XSL, der Transformationssprache, wird dieser Standard häufig als XSLFO bezeichnet. Da die sich Sprache allerdings nicht besonders gut zur Beschreibung des Layouts von Web-Seiten eignet, wird XSLFO in diesem Abschnitt nur sehr oberflächlich vorgestellt. Zur Präsentation von Inhaltsinformationen im WWW sind die in Lerneinheit 13 vorgestellten Technologien SVG und SMIL wesentlich besser geeignet. An dieser Stelle ist daher nur der konzeptuelle Verarbeitungsprozeß von Bedeutung, in den die später noch erläuterte Transformationssprache XSLT eingeordnet wird.

Typischerweise wird ein XSLFO-Dokument aus einem beliebigen XML-Dokument erzeugt, indem die Elementstruktur des Quelldokuments mit XSLT in eine für die nachfolgende Formatierung geeignete Darstellung umgewandelt wird. Da für diese Transformation eine vollständige Programmiersprache zur Verfügung steht, können beliebige Formatting Objects aus einem Knoten in der Baumdarstellung des Quelldokuments erzeugt werden. Die Menge der Formatting Objects bildet wiederum eine Baumstruktur, die allerdings deutlich von der Struktur des Quelldokuments abweichen kann.

Als abstrakte Layout-Beschreibung sind die erzeugten Objekte noch immer weitgehend unabhängig von den konkreten Eigenschaften des Ausgabemediums. So enthält beispielsweise ein Formatting Object zur Repräsentation eines Absatzes keine Informationen darüber, an welcher Stelle es auf dem Ausgabemedium plaziert werden soll oder in welchem Tonfall es von einem Sprach-Browser vorgetragen wird. Statt dessen verfügt ein Formatting Object über Eigenschaften (properties), die Geräte-unabhängige Angaben über die gewünschte Darstellung des jeweiligen Objekts enthalten. In einem anschließenden Formatierprozeß werden die Formatting Objects unter Beachtung dieser Eigenschaften in einen oder mehrere Bereiche (areas) zur Darstellung auf einem konkreten Ausgabegerät eingeteilt.

Der schematische Aufbau des gesamten Verarbeitungsprozesses ist in Abbildung 2 zu sehen. In der Praxis werden oft unterschiedliche Werkzeuge für die beiden Arbeitsschritte eingesetzt. In diesem Fall wird das Ergebnis der Transformation als XML-Dokument (unter Verwendung der in XSLFO definierten Elementtypen) ausgegeben und anschließend vom XSL-Formatierer wieder eingelesen. So lassen sich spezialisierte Formatierer für beliebige Ausgabegeräte bzw. -formate entwickeln, die auf bereits bestehende Werkzeuge zur Dokumenttransformation zurückgreifen können. Die bekanntesten Werkzeuge dieser Art lassen sich in den Rubriken XSL Engines und XSLT Engines auf der Web-Seite von Lars Marius Garshol über frei verfügbare XML-Software finden.

Abbildung 2. Zweistufiger Verarbeitungsprozeß in XSL (schematisch)

Kommentare (0)

Ihr Kommentar

Name