Mit XSL-Transformation werden XML-Dateien verarbeitet, im einfachsten Fall (aber durchaus nicht immer!) wird wieder eine XML-Datei erzeugt. Der Vorgang lässt sich so beschreiben:
XML + XSL → Output (XML, HTML, Text, …)
Ohne ein XSL-Stylesheet läuft es nicht! Und ein minimales Stylesheet sieht so aus:
Bei dieser minimalen Transformation erhält man als Ergebnis nur die Texte aus den Elementen des XML-Input; nützlich dabei ist lediglich, dass geprüft wird, ob der XML-Input well-formed ist.
Der nächste Schritt ist die Durchführung einer identischen Transformation, das heißt der Output entspricht dem XML-Input unter XML-Gesichtspunkten. Die am weitesten verbreitete Identity Transform sieht folgendermaßen aus:
XSL-Profi Andrew Welch stellte nun in der XSL-Liste (und auf seinem Blog) die Frage, ob es nicht besser ginge, denn die Anweisung xsl:apply-templates sei ja bei der Verarbeitung von Attributen (@*) überflüssig und koste vielleicht unnötig Rechenzeit.
Darauf meldete sich Michael Kay zu Wort und optimierte Andrew Welchs Idee zu einer übersichtlicheren Lösung:
Hier wird klarer erkennbar, dass es neben Element-Knoten noch Attribut-, Text-, Kommentar- und PI-Knoten gibt. Letztere sind wie die Blätter am XML-Baum, sie haben keine weiteren Verzweigungen, sondern nur einen Wert und manchmal auch einen Namen (Attribut, PI). Die Verzweigung in Kinder bleibt den Elementen vorbehalten, weshalb nur dort die Anweisung xsl:apply-templates benötigt wird.
Achtung: Wenn Sie nicht XSLT 2.0 verwenden, müssen Sie `
PS: Andrew Welch ist der Programmierer von Kernow, einem Frontend zum XSL-Transformator Saxon, der wiederum von Michael Kay programmiert wird.
Any chance you could run a parallel blog in English? 🙂
Hi Cathy,
I would love to, but I cannot pay my bills from publishing 🙂
If you are interested in XML/XSL, you may want to have a look at the blogs of Andrew Welch and Jeni Tennison. Regarding Technical Communications I follow the blog of Scriptorium Publishing.
I am well aware there are hundreds of other interesting blogs out there, but as I mentioned above, you have to…, well, have the time to read and/or write all this.
Thanks a lot for your interest in my opinions.
– Michael