Home
Über mich
Veröffentlichungen

XML XML-Schema XPath XSL-T XSL-FO XQuery XProc SVG

XSL-T

XSL-T

XSL-T

➪ XSL-T ist eine leistungsfähige Sprache zur Konvertierung vorrangig von XML-Input-Daten (aber z.B. auch Textformaten wie CSV), die in unterschiedlichem Kontext für unterschiedliche Zielformate (XML, HTML, Text sowie Formatting Object) zum Einsatz kommt.

Auf dieser Seite:

Allgemeininfo zu XML

XML ist eine Sprache, die weitestgehend ohne Vokabular im engeren Sinn auskommt und wesentlich auf der strikten Einhaltung klar definierter Regeln basiert. Hier werden hochkomplexe Datenstrukturen nach einem einfachen und flexiblen Prinzip in spitze Klammern gesteckt. Auch die Strukturdefinition dieser Daten (z.B. XML-Schema) sowie Techniken zu ihrer Auswertung (z. B. XSL, XQuery, XProc) folgen großteils demselben Prinzip.

Komplexe Programmsteuerdateien (ANT, NANT) finden sich ebenso wie komplette System- und Serverkonfigurationen oder hochauflösende Grafiken mit leistungsfähigen Animationen (SVG , WPF): Sämtlich XML-basiert. Namespaces ermöglichen Differenzierungen für etliche Spezialstandards. Auch sie stecken in spitzen Klammern.

Unterschiedliche XSL-Versionen

In der Praxis ist die XSL-Version 1.0 für zahlreiche Standard-Transformationen völlig hinreichend, sofern keine spezielleren Effekte wie Ausgabe mehrerer Zieldokumente, benutzerdefinierte Funktionen, kompliziertere Gruppierungen oder spezielle Type-Castings erforderlich sind.

Für anspruchsvollere Anwendungen empfiehlt sich XSL 2.0, XSL 3.0 bzw. XSL 3.1. Beide überragen mit der Spannweite ihrer technischen Möglichkeiten die jeweilige Vorgängerversion um ein Vielfaches.

XSL 2.0 und XSL 3.0 halten zwar die Elemente und Attribute für XSL 1.0 ebenfalls vor, sie erweitern diese jedoch sehr stark. Auch ist das gedankliche Konzept ist ein anderes. In der Konsequenz bieten die höheren Versionen keine hinreichende Abwärtskompatibilität gegenüber XSL 1.0: Dieselben XSL-Prozessoren zeigen in XSL 1.0/XPath 1.0 bei verschiedenen Funktionen ein anderes Verhalten, wie das Beispiel contains zeigt.

In vielen Implementierungen ist es beliebt, die Typkontrolle von Variablen bzw. Parametern sehr weitgehend dem System zu überlassen. Da viele Annahmen, die der implementierten Programmlogik zugrunde liegen, möglicherweise nicht zutreffen, liegt hier ein bedeutendes Risiko für

Wie im Abschnitt über Logische Operatoren angedeutet, ist es von zentraler Bedeutung, sich über den Datentyp von

in der Programmierlogik vollständig im Klaren zu sein. Ab der Version 2.0 steht eine effiziente, automatisierte Typkontrolle auf der Basis von XML-Schema zur Verfügung.

wg / 1. September 2021



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.




XPath

Die XSLT - Struktur

xsl:accept

xsl:accumulator

xsl:accumulator

xsl:accumulator-rule

xsl:analyze-string

xsl:analyze-string

xsl:apply-imports

XSL 2.0: xsl:apply-imports

XSL 1.0 : xsl:apply-imports

xsl:apply-templates, xsl:next-match

xsl:apply-templates

XSL 2.0: xsl:apply-templates

XSL 1.0 : xsl:apply-templates

xsl:apply-templates bei Referenzierungen

xsl:apply-templates bei mixed content

xsl:apply-templates: Teilkonvertierung

xsl:assert

xsl:assert

xsl:attribute

xsl:attribute

XSL 2.0: xsl:attribute

XSL 1.0 : xsl:attribute

attributesets

xsl:attribute-set

XSL 2.0: xsl:attribute-set

XSL 1.0 : xsl:attribute-set

xsl:break

xsl:call-template

xsl:call-template

XSL 2.0: xsl:call-template

XSL 1.0 : xsl:call-template

xsl:character-map

xsl:character-map

XSL 2.0: xsl:character-map

Liste der Sonderzeichen selbst erstellen

xsl:choose

xsl:choose

XSL 2.0: xsl:choose

XSL 1.0 : xsl:choose

comment()

xsl:comment

XSL 2.0: xsl:comment

XSL 1.0 : xsl:comment

xsl:context-item

xsl:copy, xsl:copy-of

xsl:copy

XSL 2.0: xsl:copy

XSL 1.0 : xsl:copy

xsl:copy-of

XSL 2.0: xsl:copy-of

XSL 1.0 : xsl:copy-of

xsl:decimal-format

xsl:decimal-format

XSL 2.0: xsl:decimal-format

XSL 1.0 : xsl:decimal-format

xsl:document

XSL 2.0: xsl:document

xsl:element

xsl:element

XSL 2.0: xsl:element

XSL 1.0 : xsl:element

xsl:evaluate

xsl:evaluate

xsl:expose

xsl:fallback

xsl:fallback

XSL 2.0: xsl:fallback

XSL 1.0 : xsl:fallback

xsl:for-each select

xsl:for-each

XSL 2.0: xsl:for-each

XSL 1.0 : xsl:for-each

xsl:for-each vs. xsl:apply-templates

xsl:for-each-group

xsl:for-each-group

XSL 2.0: xsl:for-each-group

Zusammengesetzte Schlüssel

Gruppieren mit group-adjacent

Gruppieren mit group-starting-with und group-ending-with

xsl:fork

xsl:fork

xsl:function

xsl:function

XSL 2.0: xsl:function

xsl:global-context-item

xsl:if

xsl:if

XSL 2.0: xsl:if

XSL 1.0 : xsl:if

xsl:include, xsl:import, xsl:apply-imports

xsl:import

XSL 2.0: xsl:import

XSL 1.0 : xsl:import

xsl:include

XSL 2.0: xsl:include

XSL 1.0 : xsl:include

xsl:import-schema

xsl:import-schema

XSL 2.0: xsl:import-schema

XML-Schema-Validation in XSLT 2.0

xsl:iterate, xsl:break

xsl:iterate

xsl:key

xsl:key

XSL 2.0: xsl:key

XSL 1.0 : xsl:key

xsl:merge

xsl:merge

xsl:merge-action

xsl:merge-key

xsl:merge-source

xsl:message

xsl:message

XSL 2.0: xsl:message

XSL 1.0 : xsl:message

xsl:mode

xsl:namespace

xsl:namespace

XSL 2.0: xsl:namespace

xsl:namespace-alias

XSL 2.0: xsl:namespace-alias

XSL 1.0 : xsl:namespace-alias

xsl:next-iteration

xsl:next-match

XSL 2.0: xsl:next-match

xsl:number

xsl:number

XSL 2.0: xsl:number

XSL 1.0 : xsl:number

xsl:on-completion

xsl:on-empty

xsl:on-non-empty

xsl:otherwise

XSL 2.0: xsl:otherwise

XSL 1.0 : xsl:otherwise

xsl:output

xsl:output

XSL 2.0: xsl:output

XSL 1.0 : xsl:output

xsl:output-character

XSL 2.0: xsl:output-character

xsl:override

xsl:package

xsl:param

xsl:param

XSL 2.0: xsl:param

XSL 1.0 : xsl:param

xsl:perform-sort

XSL 2.0: xsl:perform-sort

xsl:preserve-space, xsl:strip-space

xsl:preserve-space

XSL 2.0: xsl:preserve-space

XSL 1.0 : xsl:preserve-space

xsl:strip-space

XSL 2.0: xsl:strip-space

XSL 1.0 : xsl:strip-space

XML: Processing-Instruction

xsl:processing-instruction

XSL 2.0: xsl:processing-instruction

XSL 1.0 : xsl:processing-instruction

xsl:result-document

xsl:result-document

XSL 2.0: xsl:result-document

xsl:sequence

XSL 2.0: xsl:sequence

xsl:sort, xsl:perform-sort, fn:sort

xsl:sort

XSL 2.0: xsl:sort

XSL 1.0 : xsl:sort

Sortieren und Filtern

xsl:source-document

xsl:stylesheet, xsl:transform

xsl:stylesheet

XSL 2.0: xsl:stylesheet

XSL 1.0 : xsl:stylesheet

xsl:transform

XSL 2.0: xsl:transform

XSL 1.0 : xsl:transform

xsl:template

xsl:template

XSL 2.0: xsl:template

XSL 1.0 : xsl:template

xsl:text

xsl:text

XSL 2.0: xsl:text

XSL 1.0 : xsl:text

xsl:try / xsl:catch

xsl:try

xsl:catch

xsl:use-package

xsl:value-of

xsl:value-of

XSL 2.0: xsl:value-of

XSL 1.0 : xsl:value-of

xsl:variable

xsl:variable

XSL 2.0: xsl:variable

XSL 1.0 : xsl:variable

xsl:when

XSL 2.0: xsl:when

XSL 1.0 : xsl:when

xsl:where-populated

xsl:with-param

XSL 2.0: xsl:with-param

XSL 1.0 : xsl:with-param

XSLT-Tipps

XSL-Prozessoren

XSLT 2.0: Erweiterte Syntax

XSLT 3.0, XPath 3.0

Schattenkabinett

sitemap.xml mit XSLT 3.0 generieren

Arbeiten mit optionalen Elementen

XSLT-Konvertierung von XML nach HTML

Arbeiten mit xsl:for-each

Einbindung externer XML-Dokumente

Arbeiten mit xsl:apply-templates

Arbeiten mit xsl:template name/xsl:call-template

Konvertierung von XML nach XML

Konvertierung von Elementen in Attribute

Erzeugen von skalierbaren Vektor-Grafiken (SVG)

XSL-FO



Vielen Dank für Ihr Interesse an meiner Arbeit.



V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/Basics_XSL2.html