XSLT

XSLT (Ausziehbare Stylesheet Sprachtransformationen) ist eine XML-basierte für die Transformation von XML Dokumenten verwendete Aussagesprache. Die Originalurkunde wird nicht geändert; eher wird ein neues Dokument gestützt auf dem Inhalt eines vorhandenen geschaffen. Das neue Dokument kann (Produktion) durch den Verarbeiter in der XML Standardsyntax oder in einem anderen Format, wie HTML oder Klartext in Fortsetzungen veröffentlicht werden. XSLT wird meistenteils verwendet, um Daten zwischen verschiedenen XML Diagrammen umzuwandeln oder XML Daten in Webseiten oder PDF Dokumente umzuwandeln.

Anwendung

Anwendungen verwenden häufig XSLT, um XML Daten ins HTML oder die XHTML Dokumente für die Anzeige als eine Webseite umzuwandeln. Die Transformation kann dynamisch entweder auf einem Kunden oder auf einem Server geschehen, oder sie kann als ein Teil des Veröffentlichen-Prozesses getan werden. Es wird auch verwendet, um Produktion für den Druck oder die direkte Videoanzeige, normalerweise durch das Umwandeln des ursprünglichen XML in XSL Formatierende Gegenstände zu schaffen, formatierte Produktion zu schaffen, die dann zu einer Vielfalt von Formaten, einschließlich PDF, PostScript und PNG umgewandelt werden kann. XSLT kann auch XML Nachrichten zwischen verschiedenen XML Diagrammen übersetzen, oder Änderungen mit Dokumenten im Rahmen eines einzelnen Diagramms, zum Beispiel durch das Entfernen der Teile einer Nachricht vornehmen, die nicht erforderlich sind.

Ursprünge

XSLT wird vom Konsortium des World Wide Web (W3C) entwickelt. Die neuste Version ist XSLT 2.0, der W3C Empfehlungsstatus am 23. Januar 2007 erreicht hat. Bezüglich 2010, jedoch, wird XSLT 1.0 noch weit verwendet, weil es keine Produkte gibt, die XSLT das 2.0 Laufen im Browser, noch auf einigen wichtigen Server-Umgebungen wie LAMPE unterstützen.

Ursprünglich war XSLT ein Teil der W3C's Ausziehbaren Stylesheet Sprache (XSL) Entwicklungsaufwand 1998-1999, ein Projekt, das auch XSL Formatierende Gegenstände und die XML Pfad-Sprache, XPath erzeugt hat. Der Redakteur der ersten Version war James Clark. XSLT 1.0 wurde als eine Empfehlung durch den W3C am 16. November 1999 veröffentlicht. Nach einem vorzeitigen Versuch, eine Version 1.1 2001 zu schaffen, hat sich die XSL Arbeitsgruppe Kräften mit der XQuery Arbeitsgruppe angeschlossen, um XPath 2.0, mit einem reicheren Datenmodell und auf dem XML Diagramm gestütztem Typ-System zu schaffen. Auf XSLT 2.0, entwickelt unter der Chefredaktion von Michael Kay, wurde auf diesem Fundament in 2002-2006 gebaut.

Als eine Sprache ist XSLT unter Einfluss funktioneller Sprachen, und durch das textbasierte Muster, das Sprachen in der Tradition von SNOBOL und awk vergleicht. Sein direktester Vorgänger war ISO DSSSL, eine Sprache, die dieselbe Funktion für vollen SGML durchgeführt hat, den XSLT für XML durchführt (Hatten einige Mitglieder des Standardkomitees, das XSLT einschließlich James Clarks entwickelt hat, vorher an DSSSL gearbeitet.) Verschieden von DSSSL, jedoch, verwendet XSLT Code die Syntax seiner Zielsprache, XML, was bedeutet, dass es auch als ein Turing-ganzer Schablone-Verarbeiter angesehen werden kann.

Der grösste Teil dieses Artikels ist auf beide XSLT Versionen anwendbar; irgendwelche Unterschiede werden im Text bemerkt.

Konzept

Übersicht

Der XSLT in einer Prozession gehendes Modell schließt ein:

  • ein oder mehr XML Quelldokumente;
  • ein oder mehr XSLT stylesheet Module;
  • der XSLT Schablone-Verarbeitungsmotor (der Verarbeiter); und
  • ein oder mehr Ergebnis-Dokumente.

Der XSLT Verarbeiter nimmt normalerweise zwei Eingangsdokumente — ein XML Quelldokument und einen XSLT stylesheet — und erzeugt ein Produktionsdokument. Der XSLT stylesheet enthält eine Sammlung von Schablone-Regeln: Instruktionen und andere Direktiven, die den Verarbeiter in der Produktion des Produktionsdokumentes führen.

Schablone-Regel-Verarbeitung

Die XSLT Sprache ist Aussage-: Anstatt eine befehlende Folge von Handlungen zu verzeichnen, um in einer stateful Umgebung zu leisten, herrscht Schablone nur definieren, wie man einen Knoten behandelt, der ein besonderes XPath ähnliches Muster vergleicht, wenn sich der Verarbeiter zufällig ein begegnen sollte, und der Inhalt der Schablonen effektiv funktionelle Ausdrücke umfasst, die direkt ihre bewertete Form vertreten: Der Ergebnis-Baum, der die Basis der Produktion des Verarbeiters ist.

Der Verarbeiter folgt einem festen Algorithmus: Das Annehmen eines stylesheet ist bereits gelesen und bereit worden, der Verarbeiter baut einen Quellbaum vom Eingang XML Dokument. Es fängt dann durch die Verarbeitung des Quellbaumwurzelknotens, die Entdeckung im stylesheet der am besten zusammenpassenden Schablone für diesen Knoten und das Auswerten des Inhalts der Schablone an. Instruktionen in jeder Schablone leiten allgemein den Verarbeiter, um Knoten im Ergebnis-Baum entweder zu schaffen, oder mehr Knoten im Quellbaum ebenso als der Wurzelknoten zu bearbeiten. Produktion wird aus dem Ergebnis-Baum abgeleitet.

Verarbeiter-Durchführungen

XSLT Verarbeiter-Durchführungen fallen in zwei Hauptkategorien: Kundenseite und Server-Seite.

Kundenseite XSLT Adoption ist wegen der weit verbreiteten Aufstellung von älteren (oder Alternative) Browser ohne XSLT-Unterstützung langsam gewesen. Aus ähnlichen Gründen bleibt die Adoption von XSLT 2.0 in solchen Umgebungen beschränkt. (Sieh Vergleich von Lay-Out-Motoren (XML) #XSL Technologien).

Dennoch haben frühe Adoptierende Microsoft Internet Explorer 6 (seit 2001) und Netscape 7 (seit 2002) eingeschlossen. Früher noch, Internet Explorer die Draftspezifizierung von 5 unterstütztem XSLT seit 1999 oder früher, obwohl es mit der W3C Endspezifizierung unvereinbar war. Netscape 6 hat teilweise Unterstützung seit 2000 eingeschlossen.

XSLT Verarbeiter der Server-Seite (ein etwas irreführender Begriff, weil sie nicht verlangen, dass ein Server fungiert; der Name ist beabsichtigt, um sich von "der Kundenseite" abzuheben), bestehen sowohl als eigenständige Produkte als auch als Bestandteile anderer Software. Das schließt WWW-Browser, Anwendungsserver, Fachwerk (wie Java und.NET), oder sogar Betriebssysteme ein. Zum Beispiel schließt die MSXML3 Bibliothek von XP des Windows einen XSLT 1.0 Verarbeiter ein. Die ZWERG-Tischumgebung 2 schließt libxslt, eine offene Quelldurchführung mit der ganzen Unterstützung für den XSLT 1.0 Spezifizierung ein. Die libxslt Bibliothek wird auch durch andere Software wie WebKit verwendet. Andere Beispiele schließen den Xalan des Apachen und sächsischen XSLT ein (der XSLT 2.0 ebenso unterstützt).

Leistung

Frühste XSLT Verarbeiter waren Dolmetscher. Mehr kürzlich ist Codegeneration, mit tragbaren Zwischensprachen (wie Java bytecode oder.NET Allgemeine Zwischensprache) als das Ziel immer üblicher. Jedoch bieten sogar die interpretierenden Produkte allgemein getrennte Analyse- und Ausführungsphasen an, einem optimierten Ausdruck-Baum erlaubend, im Gedächtnis geschaffen und wiederverwendet zu werden, um vielfache Transformationen durchzuführen. Das gibt wesentliche Leistungsvorteile in Online-Veröffentlichen-Anwendungen, wo dieselbe Transformation oft pro Sekunde auf verschiedene Quelldokumente angewandt wird. Diese Trennung wird im Design von XSLT widerspiegelt, der APIs (wie JAXP) bearbeitet.

Frühe XSLT Verarbeiter hatten sehr wenige Optimierungen. Dokumente von Stylesheet wurden in Dokumentengegenstand-Modelle gelesen, und der Verarbeiter würde ihnen direkt folgen. XPath Motoren wurden auch nicht optimiert. Zunehmend, jedoch, verwenden XSLT Verarbeiter Optimierungstechniken, die auf funktionellen Programmiersprachen und Datenbankanfragensprachen, wie das statische Neuschreiben eines Ausdruck-Baums (z.B gefunden sind, um Berechnungen aus Schleifen zu bewegen), und faule pipelined Einschätzung, um den Speicherfußabdruck von Zwischenergebnissen zu reduzieren (und "frühen Ausgang" zu erlauben, wenn der Verarbeiter einen Ausdruck solcher als ohne eine ganze Einschätzung aller Subausdrücke bewerten kann). Viele Verarbeiter verwenden auch Baumdarstellungen, die (in beider Zeit und Raum) bedeutsam effizienter sind als DOM Mehrzweckdurchführungen.

XSLT und Einteilung

XSLT 1.0 und XSLT 2.0 wurden nicht entworfen, um XML-Einteilung des Eingangs zur Produktion zu erlauben. Das ganze Eingangsdokument musste ins Gedächtnis gelesen werden, bevor es bearbeitet werden konnte.

Zukünftige Durchführungen, wie XSLT 3.0, können XML-Einteilung erlauben, um Latenz zwischen dem Eingang und der Produktion zu reduzieren. Es ist besonders wichtig, wenn Transformationen zusammen in XML Rohrleitungen zum Beispiel in XProc gekettet werden.

XSLT und XPath

XSLT verlässt sich auf den W3C's XPath Sprache, um Teilmengen des Quelldokumentenbaums zu identifizieren, sowie um Berechnungen durchzuführen. XPath stellt auch eine Reihe von Funktionen, der XSLT selbst weitere Augmente zur Verfügung. Dieses Vertrauen auf XPath fügt sehr viel Macht und Flexibilität zu XSLT hinzu.

XSLT 1.0 Gebrauch XPath 1.0. Ähnlich verlässt sich XSLT 2.0 auf XPath 2.0; beide Spezifizierungen wurden an demselben Datum veröffentlicht.

XSLT und XQuery haben sich verglichen

XSLT Fähigkeiten überlappen mit XQuery, der als eine Anfragensprache für große Sammlungen von XML Dokumenten am Anfang konzipiert wurde.

Die XSLT 2.0 und XQuery 1.0 Standards wurden von getrennten Arbeitsgruppen innerhalb von W3C entwickelt, zusammenarbeitend, um eine einheitliche Methode, wo passend, zu sichern. Sie teilen dasselbe Datenmodell, Typ-System und Funktionsbibliothek, und beide schließen XPath 2.0 als eine Subsprache ein.

Die zwei Sprachen werden jedoch in verschiedenen Traditionen eingewurzelt und dienen den Bedürfnissen nach verschiedenen Gemeinschaften. XSLT wurde in erster Linie als eine stylesheet Sprache konzipiert, deren primäre Absicht war, XML für den menschlichen Leser auf dem Schirm, im Web (als Webschablone-Sprache), oder auf Papier zu machen. XQuery wurde in erster Linie als eine Datenbankanfragensprache in der Tradition von SQL konzipiert.

Weil die zwei Sprachen in verschiedenen Gemeinschaften entstehen, ist XSLT in seinem Berühren stärker

Bericht-Dokumente mit der flexibleren Struktur, während XQuery in seinem Datenberühren zum Beispiel stärker ist, wenn er Verwandtschaftsverbindungslinien durchführt.

XSLT Sektorformate

Bezüglich 2009 gibt es kein für XSLT eingeschriebenes Sektorformat der PANTOMIME/INTERNETS.

Der XSLT sagt 1.0 Empfehlung (1999) "Die PANTOMIME-Sektorformate und sollte für XSLT stylesheets verwendet werden. Es ist möglich, dass ein Sektorformat spezifisch für XSLT stylesheets eingeschrieben wird; wenn und wenn es ist, kann dieses Sektorformat auch verwendet werden." Es setzt fort, in einem Beispiel dessen zu verwenden, wie man einen stylesheet mit der in einer Prozession gehenden Instruktion einbettet.

RFC 3023 weist auf potenzielle technische Probleme mit Typen im Allgemeinen hin, und hat als ein ideales Sektorformat für XSLT vor. Der XSLT 2.0 Empfehlung (Januar 2007) schließt eine formelle Anwendung ein, um dieses Sektorformat einzuschreiben. Jedoch zur Zeit des Schreibens (des Januars 2009) ist der Prozess der Registrierung noch nicht vollendet worden, und RFC 3023 warnt, dass "... dieses Sektorformat nicht verwendet werden sollte, bis solche Registrierung vollendet worden ist."

Vor1.0 Arbeitsentwürfe von XSLT, der in ihren Einbetten-Beispielen und diesem Typ verwendet ist, wurden durchgeführt und setzen fort, von Microsoft in Internet Explorer und MSXML gefördert zu werden. Es wird auch in der in einer Prozession gehenden Instruktion durch andere Browser weit anerkannt. In der Praxis, deshalb, sind Benutzer, die wollen Transformation im Browser mit dieser in einer Prozession gehenden Instruktion kontrollieren, verpflichtet, dieses nicht registrierte Sektorformat zu verwenden.

XSLT Beispiele

Probe des eingehenden XML Dokumentes

</Person>

</Person>

</Personen>

</Quelle>

Beispiel 1 (XML in XML umgestaltend)

Dieser XSLT stylesheet stellt Schablonen zur Verfügung, um das XML Dokument umzugestalten:

</Wurzel>

</xsl:template>

</Name>

</xsl:template>

</xsl:stylesheet>

</Quelle>

Seine Einschätzung läuft auf ein neues XML Dokument hinaus, eine andere Struktur habend:

</Wurzel>

</Quelle>

Beispiel 2 (XML in XHTML umgestaltend)

Die Verarbeitung des folgenden Beispiels XSLT Datei

</xsl:apply-templates>

</ul>

</Körper>

</HTML>

</xsl:template>

</li>

</xsl:template></xsl:stylesheet></Quelle>

mit der XML-Eingangsdatei, die oben gezeigt ist, läuft auf den folgenden XHTML hinaus (whitespace ist hier für die Klarheit angepasst worden):

</ul>

</Körper>

</HTML>

</Quelle>

Dieser XHTML erzeugt die Produktion unten, wenn gemacht, in einem WWW-Browser.

In der Größenordnung von einem WWW-Browser, um automatisch im Stande zu sein, eine XSL Transformation auf ein XML Dokument auf der Anzeige anzuwenden, kann ein XML stylesheet in einer Prozession gehende Instruktion in XML eingefügt werden. Also, zum Beispiel, wenn die stylesheet im Beispiel 2 oben als "example2.xsl" verfügbar waren, konnte die folgende Instruktion zum ursprünglichen eingehenden XML hinzugefügt werden:

</Quelle>

(In diesem Beispiel, ist gemäß den W3C Spezifizierungen technisch falsch, aber es ist das einzige Sektorformat, das über den Strom (2009) Browser weit unterstützt wird.)

Siehe auch

  • XProc - eine W3C Standardrohrleitungssprache, die verwendet werden kann, um XSLT Transformationen zusammen mit anderen Operationen wie XQuery, XInclude oder HTTP zu verbinden, bittet
um
  • XSLT Elemente - eine Liste von einigen hat allgemein XSLT Strukturen verwendet
  • XML Transformationssprache - jede Computersprache hat spezifisch vorgehabt, einen Eingang XML Dokument in eine Produktion XML Dokument umzugestalten, das eine spezifische Absicht befriedigt
  • Ausziehbare Stylesheet Sprache - dessen Sprachfamilie XSLT ein Mitglied ist
  • XQuery und XSLT haben verglichen
  • XSL formatierende Gegenstände oder XSL-FO - Eine XML-basierte Sprache für Dokumente, die gewöhnlich durch das Umwandeln von Quelldokumenten mit XSLT erzeugt sind, aus Gegenständen bestehend, hat gepflegt, formatierte Produktion zu schaffen
  • Identität verwandelt sich - ein Startpunkt für Filterketten, die hinzufügen oder Datenelemente von XML Bäumen in einer Transformationsrohrleitung entfernen
  • Apachen-Kokon - ein javanisches Fachwerk, um Daten mit XSLT und anderen Transformatoren zu bearbeiten.
  • Zusammenhang-Fachwerk - ein javanisches Webfachwerk mit XSLT als alleinige templating Sprache.
  • Omnimark - ein anderer strukturierter Text, der Sprache (und eine Eigentumssoftware) bearbeitet
  • Xs3p - ist ein XSLT stylesheet, der XHTML Dokumentation aus der XML Diagramm-Definitionssprache (XSD) Diagramm erzeugt.

Weiterführende Literatur

  • XSLT durch Doug Tidwell, der von O'Reilly (internationale Standardbuchnummer 0-596-00053-7) veröffentlicht ist
  • XSLT Kochbuch von Sal Mangano, der von O'Reilly (internationale Standardbuchnummer 0-596-00974-7) veröffentlicht ist
  • XSLT die Verweisung von 2.0 Programmierer durch Michael Kay (internationale Standardbuchnummer 0-764-56909-0)
  • XSLT 2.0 und XPath die Verweisung von 2.0 Programmierer durch Michael Kay (internationale Standardbuchnummer 978-0-470-19274-0)
  • XSLT 2.0 Webentwicklung durch Dmitry Kirsanov (internationale Standardbuchnummer 0-13-140635-3)
  • XSL Begleiter, 2. Ausgabe von Neil Bradley, der von Addison-Wesley (internationale Standardbuchnummer 0-201-77083-0) veröffentlicht ist
  • XSLT und XPath am Rand (Unbegrenzte Ausgabe) durch Jeni Tennison, der von Hungry Minds Inc, die Vereinigten Staaten (internationale Standardbuchnummer 0-7645-4776-3) veröffentlicht ist
  • XSLT & XPath, Ein Handbuch zu XML Transformationen durch John Robert Gardner und Zarella Rendon, der durch den Prentice-Saal (internationale Standardbuchnummer 0-13-040446-2) veröffentlicht ist
  • XSL-FO durch Dave Pawson, der von O'Reilly (internationale Standardbuchnummer 978-0-596-00355-5) veröffentlicht ist

Links

Dokumentation

Tutorenkurse

Adressenlisten

XSLT codieren Bibliotheken

  • EXSLT ist eine weit verbreitete Gemeinschaftsinitiative, Erweiterungen auf XSLT zur Verfügung zu stellen.
  • FXSL ist eine Bibliothek, die Unterstützung für Höherwertige Funktionen in XSLT durchführt. FXSL wird in XSLT selbst geschrieben.
  • Die XSLT Standardbibliothek xsltsl, versorgt den XSLT Entwickler mit einer Reihe von XSLT Schablonen für allgemein verwendete Funktionen. Diese werden rein in XSLT durchgeführt, der ist, verwenden sie keine Erweiterungen. xsltsl ist ein Projekt von SourceForge.
  • Kernow A GUI für den Sachsen, der einen Punkt und Klick-Schnittstelle für das Laufen zur Verfügung stellt, verwandelt sich.
  • xslt.js - Gestalten XML mit der XSLT Bibliothek von JavaScript Um, die XML mit XSLT im Browser umgestaltet.

Weitere Beispiele


XXX / Xena: Krieger-Prinzessin
Impressum & Datenschutz