Direkt zur Navigation | Direkt zum Inhalt



Linkwerk: XSLT-Erweiterung

Mit der document()-Funktion (XSLT 1) bzw. doc()-Funktion (XPath 2) steht in XSLT eine Möglichkeit zur Verfügung, ein externes Dokument per URI in die Verarbeitung des laufenden Programms einzubeziehen. Sofern es sich bei dem URI um einen HTTP-URL handelt, entspricht document() damit einem Aufruf der HTTPMethode GET. Es fehlt jedoch an einem Äquivalent für HTTP-HEAD.

Ziel dieses Projektes war es, eine entsprechende Funktion als Erweiterung für XSLT in Java zu schreiben, lauffähig mit XSLT-Prozessoren Xalan und Saxon. Dazu wurde im ersten Schritt für den Kopf einer HTTP-Response ein XML-Schema entworfen. Worin die in HTTP/1.1 definierten Header-Zeilen abbildbar sind, und möglichst geeignete Daten bzw. Elementtypen gewählt bzw. definiert wurden.

Im zweiten Schritt ging es um die Entwicklung einer XSLT-Funktion, die für einen gegebenen URL einen HTTP-HEAD-Request absendet und die erhaltenen Daten in einer XML-Struktur gemäß dem in Schritt 1 entwickelten Schema als Node-Set an das aufrufende XSLT-Programm zurück gibt. So könnte z.B. die letzte Änderung einer Datei anhand des „Last-Modified“ Headerfeldes überprüft werden oder mit Hilfe des „Content-Type“ Headerfeldes der MIME-Typ einer Datei kontrolliert werden.