Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenDienstag, 15. Oktober 2019 

XSL Transformation


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
XSLT ist die Abkürzung für XSL Transformation ; XSL wiederum bedeutet Extensible Stylesheet Language .

XSLT ist eine u.a. aus DSSSL hervorgegangene deklarative funktional-applikative XML -basierte Programmiersprache zur Transformation von XML -Dokumenten im Kontext ihrer logischen Baumstruktur. Entwickelt XSLT ursprünglich von James Clark (XSLT 1.0 1.1) für die derzeitige Weiterentwicklung ist Michael verantwortlich (XSLT 2.0).

Ein in XSLT verfasstes Programm heißt oder Transformation. Ein Programm das XSLT-Stylesheets verarbeiten heißt XSLT-Prozessor. XSLT-Prozessoren sind auch in den Web-Browsern (Internet Explorer ab Version 5 (?) integriert.

XML-Namespace für XSLT: http://www.w3.org/1999/XSL/Transform
Übliches Namespace-Prefix für XSLT: xsl

XSLT ist nicht mit XSL-FO zu verwechseln.

Inhaltsverzeichnis

Geschichte

Ursprünglich sollte mit XSL eine DSSSL -artige Sprache in XML-Syntax entstehen. Schnell war klar dass eine solche Sprache eigentlich aus interagierenden aber unabhängig voneinander einsetzbaren Bestandteilen besteht:

  • Einer Sprache für die Beschreibung eines als Baum mit Formatierungsanweisungen und Stilangaben: XSL Objects
  • Einer Sprache für die Transformation eines XML-Dokuments in einen anderen Baum z.B. einen XSL FO: XSLT
  • Einer Sprache für die Adressierung von XPath

Funktionsweise

Die Sprache XSLT beschreibt Programme genannt oder Stylesheet die Daten aus XML -Dokumenten in andere (meist) XML -Dokumente zu verwandeln.

Dazu werden die XML-Dokumente als logischer (Baumstruktur die kleinsten Bestandteile des Baums heißen betrachtet: Die Quell-Bäume der zu transformierenden Dokumente durch die Transformation die entstehenden Ziel-Bäume der erzeugenden Dokumente (in XSLT vor 2.0 kann ein Dokument erzeugt werden ab XSLT 2.0

Eine Transformation besteht dazu aus einer von einzelnen Transformationsregeln genannt Templates. Eine Template eine auf XPath basierende Pattern die beschreibt für welche sie gilt und einen Inhalt der bestimmt die Template ihren Teil des Zielbaums erzeugt.

In einem XSLT-Dokument kommen also an und XML-basierten Technologien mindestens vor:

  • XML als Basis für XSLT die des Quell-Dokuments (XHTML) und meist auch die des Ziel-Dokuments.
  • XSLT selbst (XML-basiert)
  • XPath / XSLT Patterns
  • Die Sprache(n) des Quell-Dokuments (XML-basiert z.B.
  • Die Sprache(n) des Ziel-Dokuments (in der XML-basiert z.B. XHTML)
  • XML Namespaces zur Unterscheidung der einzelnen Sprachen
Sowie ab XSLT 2.0:
  • XML Schema Datentypen

Anwendungsgebiet

Die Sprache XSLT beschreibt Programme genannt oder XSLT-Stylesheet um Daten aus XML -Dokumenten in andere (meist) XML -Dokumente zu verwandeln.

Dafür gibt es zwei Hauptanwendungsgebiete.

POP (Presentation Oriented Publishing) bezeichnet die zum Zwecke der Darstellung. Mit unterschiedlichen Stylesheets die Daten in XHTML Formatting Objects SVG SMIL DocBook und viele andere Formate umgewandelt werden. ursprüngliche semantische Markup wird dabei durch ein Stil-bezogenes Markup

MOM (Message Oriented Middleware) bezeichnet die zum Zwecke des Datenaustausches. Da XML lediglich Sprachkonzept zur Entwicklung von Sprachen bildet genügt nicht dass zwei Systeme (z.B. Programme) XML um gegenseitig Daten austauschen zu können. Sie die gleiche XML-basierte Sprache verwenden. In dem Fall wo die Systeme nicht die gleiche Sprache verwenden wird gerne XSLT eingesetzt um Hilfe von Transformationen Übersetzer von der einen in die andere zu entwickeln.

Anwendungsbeispiele

  • Statistische Daten liegen als XML vor aus der Datenbank) und werden mit Hilfe Transformationen unter anderem aufbereitet als Vektorgrafik in als Tabelle in XHTML und als PDF (über den Zwischenschritt XSL-FO ).
  • Für eine Website werden die XHTML-Dateien ohne Layout geschrieben und erhalten anschließend das mit Hilfe einer Transformation. Der Vorteil ist ähnlich dem eines klassischen CMS: Um das zu ändern ist es nicht notwendig alle zu ändern; stattdessen ändert man das Stylesheet transformiert neu.

Derzeit wird XSLT wohl am häufigsten verwendet einfach XML-Dokumente durch Transformation nach mit versehenem XHTML in Webbrowsern darstellbar zu machen.

Alternativen zu XSLT

DSSSL

Eine mögliche Alternative zu XSLT ist das man auch als Vorläufer von XSLT kann. Der wohl größte Vorteil von XSLT DSSSL ist seine XML-basierte Syntax. Somit kann XML-Editor automatisch auch für XSLT eingesetzt werden gelten die Syntax-Regeln von XML (Wohl-geformtheit Gültigkeit) auch für XSLT.

Generische Programmiersprachen

Eine grundsätzliche Alternative zu XSLT besteht der Möglichkeit solche Transformationen in jeder beliebigen (z.B. Java C++ oder Perl) abzufassen. XSLT dabei jedoch bei Einhaltung bestimmter Voraussetzungen ein gewisses Garant für wohl-geformte und unter umständen gültige Zieldokumente gewähren außerdem ist die Entwicklung Transformation in XSLT in der Regel mit weniger Aufwand verbunden als die Entwicklung einer in einer Programmiersprache.

CSS

Häufig wird CSS als Alternative zu genannt. CSS ist jedoch nicht wirklich eine zu XSLT. CSS beschreibt lediglich wie die eines Baums (akustisch oder visuell) zu formatieren während XSLT den Baum radikal ändern kann. kann man mit XSLT z.B. automatisch Inhaltsverzeichnisse Link-Listen und ähnliches erstellen nicht jedoch mit

Beispiele

Inhaltsverzeichnis erzeugen

Folgendes XSLT erzeugt ein einfaches Inhaltsverzeichnis eine XHTML-Seite mit Überschriften:

<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="html" > method="xml" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" doctype-public="-//W3C//DTD XHTML 1.1//EN" /> <xsl:template <xsl:copy> <xsl:apply-templates select="@*"/> <h1><xsl:apply-templates select="//html:title//text()" /></h1> <h2 <ul> <li><a href="#toc">Inhaltsverzeichnis</a></li> <xsl:for-each select=".//html:h2"> <li> <xsl:if <xsl:message>Achtung: Kann ohne Id keinen Link erzeugen</xsl:message> <a href="#{@id}"><xsl:apply-templates/></a> </li> </xsl:for-each> </ul> <xsl:apply-templates/> </xsl:copy> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:transform> 

Siehe auch: XML XSL-FO XPath

XSLT-Prozessoren

Weblinks

  • XML in der Praxis Ein Online-Buch das Einführungen in Stylesheet-Sprachen XSLT enthält



Bücher zum Thema XSL Transformation

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/XSLT.html">XSL Transformation </a>