XSL: Aufruf Java-class

lam_tr

Top Contributor
Hallo zusammen,

wenn ich eine test.class Java-Datei habe und ich will über XSL eine Methode dieser Klasse aufrufen möchte, wie kann man das machen?

Gruss lam
 
Zuletzt bearbeitet von einem Moderator:
Stimmt 🙂 ich meine bei der XML Transformation kann man doch Java einbinden und ggfs Methoden aufrufen, aber wie

[XML]<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wb3="xalan://de.test"
extension-element-prefixes="wb3" version="1.0">
[/XML]

Test.class beinhaltet Beispiel Test#print(). Wie binde ich es ein?
 
Hallo zusammen,

ich hab dieses Beispiel immer noch nicht genau hinbekommen, könnt ihr mir da mal weiterhelfen.

ich habe eine data.xml mit den Inhalt
[XML]
<input>
<inputNode>10</inputNode>
<inputNode>-4</inputNode>
</input>
[/XML]

und eine compilierte Java-Klasse Taschenrechner.class.

Und die will ich in eine XSLT-Dokument einbinden.
Was ist hier falsch?

[XML]
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wb3="xalan://de.wb3"
extension-element-prefixes="XXX" version="1.0">
<xsl:template name="YYY">
<value-of select="Taschenrechner:addiere()"/>
</xsl:template>
[/XML]

Was muss ich in den extension-element-prefixes eingeben und bei template-name?
Und wie kriege ich die InputDaten in die XSLT als parameter eingebunden? es soll in die Methode addiere(parmeter1, parameter2)?

Vielen Dank im voraus.

Gruss lam
 
'extension' kann ich in dem von mir angegebenen Link nicht finden, wie kommst du darauf?
wie man Parameter übergibt ist im Link doch ziemlich deutlich, Variablen definieren?
sicher kann es dabei Schwierigkeiten geben, aber solange du es anscheinend überhaupt nicht versuchst, was soll man dann dazu sagen?

ich poste noch ein Beispiel, welches ich selber verwende/ irgendwo gefunden habe, die Imports sehen da bisschen anders aus:

[xml]
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:date="http://exslt.org/dates-and-times" version="1.0"
xmlns:locale="java.util.Locale"
xmlns:javadate="java.util.Date"
xmlns:javaformat="java.text.SimpleDateFormat">


<xsl:variable name="pattern">dd-MMM-yyyy kk:mm:ss</xsl:variable>
<xsl:variable name="Locale" select="locale:new('en')"/>
<xsl:variable name="SimpleDateFormat"
select="javaformat:new($pattern,$Locale)"/>
<xsl:variable name="Date" select="javadate:new()"/>
<xsl:value-of select="javaformat:format($SimpleDateFormat, $Date)"/>
[/xml]
SimpleDateFormat großgeschrieben und Name der Klasse ist als Variablenname sicher nicht empfehlenswert,
zeigt hier wie man Objekte anlegen und später verwenden kann,

bei xsl:variable-Deklaration kann man sicherlich auch xsl:value-of-Werte eintragen, also deine inputNode-Daten, bekannt?
xsl:variable kannst du ganz unabhängig von Java-Klassen testen
 
Hi zusammen und SlaterB,

wo muss die Java-Class Datei liegen damit ich die XSLT ausführen kann?
Relativ zu der XSLT-Datei?

Gruss lam
 
wenn man den Import der Standard-Klassen bedenkt hat man nicht viel zu positionieren,
meiner Ansicht nach muss es nur im ClassPath sein,
sollte sich also z.B. von der Klasse, die das XSL dann ausführt, auch per import-Befehle ganz normal importieren und dann zur Laufzeit nutzen lassen

ich habe es allerdings in der Tat noch nicht mit eigenen Klassen versucht,
hast du schon API wie java.util.Date getestet?
 
nein, das meine ich nicht, sondern dass alles ganz normal sein soll,
die Klassen gehören in den ClassPath des Java-Programms bzw. ganz normal ins Projekt (sofern die Transformation von Java aus durchgeführt wird),
hast du eine bestimmte Fehlermeldung?
 
ja die sache ist halt, ich exportiere nicht das Projekt und bind das in die XSLT, sondern kompiliere nur eine Java-Klasse und binde es ein. Und wie gebe ich diese Datei in der XSLT an? Und kann die auch relativ zu der XSLT liegen?
 
also ich persönlich kann mit Wiederholung von Fragen nichts anfangen,
das Einbinden ist besprochen, die Nichtwichtigkeit der Relativität ist besprochen,

sofern du ernste Gegenargumente wie Fehlermeldungen hast, am besten zusammen mit vielen Informationen zur Durchführung der Transformation,
könnte ich versuchen weiter nachzudenken, auch wenn ich dabei vielleicht nicht weiterhelfen kann

soweit keine Postings mehr von mir
 

Zurück
Oben