Hi Anton,
also erst mal: die Funktion schreibst Du in Deinem Template dort, wo Du sie in einer HTML-Datei auch unterbringen würdest (vermutlich also im Head). Falls es damit zu Ärger kommt (hab's selber noch nicht probiert), könntest Du 'nen CDATA-Bereich draus machen müssen.
An Deinem Code fällt mir aber besonders auf:
<input type="hidden" name="xx" value="{return();}"/>
^^^^^^^^^^^
Was soll'n das sein? Das ist entweder ne JS-Syntax, die mir bislang völlig unbekannt blieb, oder aber eben einfach falsch.
Vorschlag: Schreib erst 'ne HTML-Seite, wenn die funktioniert, kannst Du einfach dort, wo Daten aus 'ner XML-Datei sein sollen, Deine XSL-Anweisungen notieren und so daraus 'ne XSL-Datei machen.
Grüße,
Utz