2016-08-07 13 views
0

ich XSLT lerne, und ich sehe einige Codes wie folgt aus:XSLT Java-Funktionen in geschweiften Klammern

<node id="{java:next($idgen)}:state" pred="should" mood="dcl"> 

wo next eine Java-Funktion ist. Wofür werden die geschweiften Klammern verwendet?

Außerdem bin ich ziemlich verwirrt, wie Java-Funktionen in XSLT aufgerufen werden. In meinem Beispielcode ruft XSLT nur Java-Funktionen wie oben auf, ohne den Speicherort der Java-Klassendatei anzugeben, selbst der Klassenname wird nicht angegeben.

+0

Dieses xslt-Codebeispiel funktioniert?. Außerdem zeigt Ihr Beispiel keine XSLT-Anweisungen. – davidxxx

+0

"* XSLT ruft nur Java-Funktionen wie oben auf, ohne den Speicherort der Java-Klassendatei anzugeben, selbst der Klassenname ist nicht angegeben. *" Sind Sie sich sicher? Sie zeigen uns nur einen Ausschnitt des Codes - ich vermute, da ist mehr. –

+0

Danke an alle, Problem gelöst! Und der obige Code ist natürlich nicht der ganze Code. Der ursprüngliche Code verwendet Xalan als Prozessor. – Zhao

Antwort

1

Wofür werden die geschweiften Klammern verwendet?

Die geschweiften Klammern haben nichts mit Java zu tun. Sie zeigen dem Prozessor, der Inhalt als Ausdruck ausgewertet werden - siehe: https://www.w3.org/TR/xslt/#attribute-value-templates

Außerdem bin ich ziemlich verwirrt, wie Java-Funktionen in XSLT aufgerufen werden.

Das hängt von Ihrem spezifischen Prozessor ab. Der Aufruf von Java-Funktionen gehört nicht zum XSLT-Standard und wird nur von einigen Prozessoren als Erweiterung unterstützt.