XSL:Script und Namespace
Steffi
- xsl
Hallo
Ich möchte in meiner XSL-Datei den Befehl XSL:Script einfügen. Wenn ich das gemacht habe, kommt immer der Fehler "Keyword xsl:script may not be used in namespace ".
Dann wechsle ich mein Stylesheet von
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
zu
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
Jetzt motzt der IE 6.0 nicht mehr über den Scriptbefehl, sondern über einen XSL:IF-Befehl, den ich auch im XSL-Dokument habe:
Expected token 'eof' found '='. Dokument -->=<-- 'Test'
(Der Befehl sieht so aus: <xsl:if test ="Dokument = 'Test' ">)
Wie kann ich das geradebiegen?
Danke
Steffi
Hallo,
Ich möchte in meiner XSL-Datei den Befehl XSL:Script einfügen. Wenn ich das gemacht habe, kommt immer der Fehler "Keyword xsl:script may not be used in namespace ".
Weil xsl:script ist nicht Bestandteil des Standards.
Dann wechsle ich mein Stylesheet von
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
Das ist ein sehr alte Syntax als von XSLT erst die Working Draft existierte und der MSXML nur dies unterstütze.
Jetzt motzt der IE 6.0 nicht mehr über den Scriptbefehl, sondern über einen XSL:IF-Befehl,
Ja, bei der WD war noch einiges anders und der IE hatte zusätzlich seine eigene Sachen dabei.
Was möchtest du mit/im xsl:script erreichen? Geht das nicht mit den "üblichen" extensions?
Grüße
Thomas
Danke Jungs, ist mir zwar teilweise zu hoch, aber habe den Sinn begriffen..
Mir ist jetzt auch klar, das WD nicht mehr gebraucht werden sollte. Aber mich nimmt jetzt zu diesem Standard gleichwohl noch 2 Dinge wunder (sonst muss ich alles umschreiben und dafür lohnt sich die Zeit nicht).
Ich kriege aus einer Javascriptfunktion einen Wert zurück, welcher ich in einer IF-Abfrage mit einem Feld vergleichen möchte. Die If-Anfrage sieht jetzt so aus:
<xsl:if test=".[Farbe = 'blau']">
der JScript-Befehl so:
xsl:evalFarbe()</xsl:eval>
Wie stelle ich es jetzt an, dass ich die Funktion in die If-Abfrage kriege? Ich probierte die Funktion zuerst in einen Parameter abzufüllen, aber das kennt der WD-Standard auch nicht.
{und falls ich jemals wieder XSL benötige, werde ich alles nach neu machen, versprochen:-) )
Hallo,
xsl:evalFarbe()</xsl:eval>
Wie stelle ich es jetzt an, dass ich die Funktion in die If-Abfrage kriege? Ich probierte die Funktion zuerst in einen Parameter abzufüllen, aber das kennt der WD-Standard auch nicht.
Dann probiere es mal mit einer Variable:
<xsl:variable name="bla">
xsl:evalFarbe()</xsl:eval>
</xsl:variable>
und dann weiter mit $bla.
{und falls ich jemals wieder XSL benötige, werde ich alles nach neu machen, versprochen:-) )
Gute Idee, zumal auch meine "WD-xsl"-Kenntnisse immer mehr einrosten ;-).
MfG, Thomas
Hallo,
(Der Befehl sieht so aus: <xsl:if test ="Dokument = 'Test' ">)
Wie kann ich das geradebiegen?
In der WD-Implementierung (WD=Working Draft) ist der Abfrageoperator fuer Gleichheit $eq$. Vermeide also entweder das proprietaere xsl:script oder schreibe nach WD-Regeln und arbeite dann aber nicht mit XSLT/XPath-konformen Tools (sondern z. B. mit dem IE 5.5 und MSXML 2.x).
Der IE 6 bringt MSXML 3 mit und ist in Sachen XSLT/XPath 1.0 tatsaechlich W3C-kompatibel.
MfG, Thomas