XSLT erweitern und einbetten

(Auszug aus "XSLT Kochbuch" von Sal Mangano)

"Ich denke, alle sollten einen großen Wonderbra haben. Man kann sie auf so viele Arten vergrößern, alle tun es."
Christina Aguilera

Einleitung

Wirklich ehrgeizige Programmierer sind nie mit dem zufrieden, was man ihnen gibt, und sind besessen davon, das zu verbessern, was sie bereits haben. Ich sage »ehrgeizig« statt »großartig«, weil zu Größe meiner Meinung nach gehört, dass man weiß, wann es besser ist, innerhalb des Systems zu arbeiten, und wann es besser ist, das System zu erweitern. Unabhängig davon widmet sich dieses Kapitel der Erweiterung des Systems, sowohl aus der Perspektive einer in XSLT benötigten Funktionalität, die am besten in einer anderen Sprache implementiert wird, als auch aus der Perspektive anderer Programmiersprachen, die XSLT benutzen müssen.

Die Erweiterung von XSLT ist per definitionem ein Unterfangen am Rande der Spezifikation. Erweiterungen reduzieren die Portabilität eines XSLT-Stylesheets. Das ist definitiv ein Risiko, wenn Sie Erweiterungen benutzen, die in Ihrem XSLT-Prozessor eingebaut sind, oder wenn Sie Ihre eigene Erweiterung implementieren. Das gilt sogar dann, wenn Sie Ihre Erweiterungen in einer so portablen Sprache wie Java implementieren. Der offensichtlichste Grund ist der, dass einige XSLT-Prozessoren nicht in Java geschrieben sind, und es ist sehr unwahrscheinlich, dass sie jemals Erweiterungen in Java unterstützen werden. Aber Sie können trotzdem auch dann Probleme bekommen, wenn Ihre Erweiterungen nur in Java-basierten XSLT-Prozessoren funktionieren sollen, weil der Erweiterungsmechanismus von XSLT in Version 1.0 nicht vollständig standardisiert war. Dieser Zustand hat sich in Version 1.1 gebessert, aber 1.1 ist kein offizielles XSLT-Release mehr und wird von vielen Prozessoren nicht unterstützt. Und XSLT 2.0 hat überraschenderweise einen Schritt von 1.1 rückwärts gemacht, indem es die Methode für die Anbindung von Erweiterungsfunktionen undefiniert gelassen hat.

EXSLT.org ist ein Portal, dessen Anhänger sich um die Erstellung von Standards bemühen, die von XSLT-Programmierern befolgt werden können, wenn sie häufig genutzte Erweiterungen implementieren. Unter Strings und Zahlen und Berechnungen wurde EXSLT im Zusammenhang mit mathematischen und datumsbezogenen Erweiterungen erwähnt. EXSLT.org hat auch andere Kategorien von Erweiterungen organisiert, von denen einige in diesem Kapitel am Rande vorkommen. Es ist ganz bestimmt eine Site, die es sich lohnt zu besuchen, bevor Sie damit loslegen, Ihre eigene Erweiterung zu implementieren. Die Chancen stehen recht gut, dass jemand eine solche Erweiterung schon entwickelt hat oder zumindest schon einmal darüber nachgedacht hat, wie diese Erweiterung funktionieren sollte.

Im Gegensatz zur Erweiterung von XSLT geht es bei der Einbettung von XSLT um die Ausführung von XSLT-Transformationen aus einer anderen Sprache, ohne dass dabei Ihr XSLT-Prozessor in einem separaten (geforkten) Prozess laufen müsste. Weiter unten werden Sie sehen, wie Sie aus Java- und Perl-Programmen auf XSLT zugreifen können.

Beim Schreiben dieses Kapitels wurde es schnell deutlich, dass man leicht ein ganzes Buch über die Erweiterung und Einbettung schreiben könnte, besonders dann, wenn Sie verschiedene Kombinationen von Implementierungen, Erweiterungssprachen und interessanten Beispielen betrachten. Um dieses Kapitel übersichtlich zu halten, habe ich einen Kompromiss gemacht, indem ich zwischen Xalan-Java 2 und Saxon wechsle und mich überwiegend auf Java und JavaScript konzentriere. Außerdem erörtert dieses Kapitel auch MSXML.

Um Wiederholungen zu vermeiden erklärt dieser Abschnitt, wie man Erweiterungen in Saxon, Xalan-Java 2 und MSXML benutzt.

  

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2006 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT Kochbuch" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O'Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de