<xsl:output
method="html"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html401/loose.dtd"
encoding="ISO-8859-1"
version="1.0"
indent="yes"
/>
Das muss schon version = '4.01' heissen, vgl. http://www.w3.org/TR/xslt#section-HTML-Output-Method
Normalerweise sollte aber eine solche Template-uebergreifende Variablenuebergabe scheitern, weil die Variablen nur in ihrem jeweiligen Template gelten (oder global bei Definition auf oberster Ebene sind, dann aber auch nicht mehr aenderbar).
Du übergibst keine Variablen, du deklarierst Variablen, die plötzlich global funktionieren, das ist natürlich ein Bug.
Eigentlich ein Bug, aber auch ein gar nicht so uebles Feature ...
Bugs sind immer ganz üble Features.
Der Hintergrund ist das Beispiel zu diesem Artikel: http://www.styleassistant.de/tips/tip94.htm. In der winamp.xsl wollte ich die Zeitumrechnung nach mm:ss fuer die Einzeltitel und die Gesamtlaenge in ein Template auslagern und dann nur die Variable $tmp uebergeben (also wie oben beschrieben). Eigentlich hatte ich erwartet, dass es nicht funktionieren sollte.
xsl:call-template mit xsl:with-param gefällt dir nicht?
Hier mal ein Testdokument fuer Mozilla (Fehlermeldung im IE): http://www.styleassistant.de/test/beispiel94moz.xml.
Ich hoffe, du hast das bereits gemeldet.