Hallo XML/XSL-Welt,
ich hänge seit zwei Tagen am folgenden Problem und mir gehen langsam die Ideen aus ***mayday***
Sachlage:
Per Servlet werden Daten aus einer Datenbank als XML-Dokument aufbereitet und für eine Schnittstelle (Programm-zu-Programm-Kommunikation) bereitgestellt.
Für unsere Testgruppe habe ich nun per XSL eine Testumgebung gebastelt, damit sie die fachliche Funktionalität der XML-Schnittstelle prüfen können (kommen die richtigen Daten raus…). Benutzt wird der XML-fähige IE5.
Prinzip: Per HTML-Formular Testdaten an Servlet schicken, dieses baut das XML zusammen und gibt noch eine XSL-Datei zur Präsentation der Daten mit. Soweit auch gut.
Nun meine Problem:
Ich benutze für die Präsentation ein XSL-Stylesheet, das mehrfach benutzt wird.
- Einmal in einem Frameset
- Einmal als einzelnes Window
Abhängig davon soll nun ein Button „Schließen“ (beim einzelnen Fenster) oder „Zurück“ (bei der Framesetseite) eingebaut werden.
Ich kann nur über die Anzahl der Frames feststellen, welcher Button eingeblendet werden soll. (parent.frames.length)
Wie bekomme ich es hin, dass nach der Script-Prüfung der entsprechende Button angezeigt wird.
Ich würde im XSL gern einen Code wie folgt einbinden:
<?xml version="1.0" encoding="ISO-8859-1"?>…
if(parent.frames.length != 0) {
document.write("");
}
else {
document.write("");
}
Das mag der IE aber nicht und schmettert meinen Versuch mit „Keyword xsl:script may not be used here.“ ab.
Ich könnte mir alternativ vorstellen, dass ich per JavaSript die Anzahl der Frames feststelle, und das Ergebnis in eine XSL-Variable schreibe. Dann mach ich ein xsl:if auf diese Variable (bzw. ein xsl:when oder xsl:otherwise) und gebe davon abhängig die Buttons aus.
Aber da fehlt mir die Vorstellungskraft, wie ich sowas umsetzen könnte (Kommunikation JavaScript/XSL per „gemeinsamer“ Variablen).
Kann mir jemand helfen???
Vielen Dank für das Lesen und für Impulse/Ideen…
Jürgen Kneller
