Extensible Stylesheet Language (XSL)

XSL ist eine Familie von XML-basierten Sprachen zur Erzeugung von Layouts für XML-Dokumente. Diese Layouts (auch Stylesheets genannt) werden in die zu formatierenden XML-Dokumente eingebunden. Es ist möglich die Layouts den speziellen Medien zuordnen lassen. So ist es möglich, ein Layout zum Drucken und ein Layout für die Darstellung am Computer zu verwenden. XSLT ist ein Dialekt welches auch zur Übersetzung/Transformation eines XML-Dialektes in ein anderes Format (z.B. XHTML oder anderes XML dialekt) dienen kann.

Zu XSL gehören:

  • das XML-basierte eigentliche XSL (zur Unterscheidung genannt XSL-FO 1) ) für die Beschreibung eines Dokuments als Baum mit Formatierungsanweisungen und Stilangaben.
  • das XML-basierte XSLT (XSL Transformations) für die Transformation eines beliebigen XML-Dokuments in einen anderen Baum.
  • und indirekt auch XPath für die Adressierung von Baumbestandteilen.

Noch mal um die Begriffsverwechslungen zu umgehen. Die Recommendation zu XSL beschreibt in ihrem Abstract, dass XSL ausdrücklich aus zwei Teilen besteht:

  • Einer Sprache zur Transformation (XSLT)
  • und einem Vokabular zur Formatierung (XSL-FO).

In der korrekten Terminologie bezeichnet XSL also die Verwendung von XSLT und XSL-FO in Kombination.

XSL-FO

XSL-FO ist eine XMLbasierete Formatirungssprache, die beschreibt, wie Text, Bilder, Linien und andere grafische Elemente auf einer Seite angeordnet werden. Mit Hilfe von XSL-FO ist es möglich, qualitativ hochwertige Druckerzeugnisse entweder auf Papier oder auf dem Bildschirm zu erzeugen.

Für die Generierung von PDF, RTF, ASCII-Text und sonstigen Print-Medien stehen sogenannte FO-Prozessoren zur Verfügung (sihe FOP)

<?xml version="1.0"?>
 <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <fo:layout-master-set>
   <fo:simple-page-master  master-name="A4" 
                           page-width="210mm" page-height="290mm">
    <fo:region-body region-name="xsl-region-body"  margin="3cm"/>
   </fo:simple-page-master>
  </fo:layout-master-set>
 
  <fo:page-sequence  master-reference="A4">   <!-- (in Versionen <20 "master-name") -->
   <fo:flow flow-name="xsl-region-body">
    <fo:block>Hello World!</fo:block>
   </fo:flow>
  </fo:page-sequence>
 
 </fo:root>

XSLT

XSLT ist eine funktionale Programmiersprache zur Transformation von XML-Dokumenten. Es baut auf der logischen Baumstruktur eines XML-Dokumentes auf und erlaubt die Definition von Umwandlungsregeln. XSLT-Programme, sogenannte XSLT-Stylesheets, sind dabei ebenfalls nach den Regeln des XML-Standards aufgebaut. Die Sprache XSLT beschreibt die Umwandlung eines XML-Derivats (auch XML-Dialekt) in ein anderes Dokument. Diesen Vorgang nennt man Transformation. Das resultierende Dokument entspricht meist der XML-Syntax, es können aber auch Textdateien oder Binärdateien erstellt werden.

Eine Transformation besteht aus einer Reihe von einzelnen Transformationsregeln, die Templates (deutsch “Schablonen”) genannt werden. Ein Template besitzt ein auf XPath basiertes Pattern.

XSLT Syntax und kleiner Tutorial

Folgede Deklarationen sind gleichbedeutetnd

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

und

<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Conflict Resolution

Konfliktauflösung wird dann benötigt, wenn ein Knoten zu mehreren Template Rules gleichzeitig passt. In solchen Fällen gelten die folgenden Regeln.

  • Importierte Regeln haben niedrigere Priorität.
  • Wenn ein Attribut priority gegeben ist, wird es berücksichtigt.
  • Spezifischere Patterns haben höhere Priorität als weniger spezifische. So ist beispielsweise der Test, ob irgendein Knoten existiert, weniger spezifisch als ein Test für einen Knoten mit konkretem Namen.
  • Wenn es mehrere gleichberechtigte Regeln gibt, ist das ein Fehler, und wird vom XSLT-Parser als Meldung ausgegeben.

Links

Prozessoren

Spezifikationen und Tutorilals

1) XSL Formatting Objects
de/distributedsystems/xsl.txt · Last modified: %2008/%04/%26 %13:%Apr by aho
Translations of this page:
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0