Metodi Java richiamati da un XSL

Vi è mai capitato di aver bisogno di richiamare un metodo di una classe Java in un XSL? E’ possibile ed ora vedremo come


Per farlo occorre usare il tag introdotto con la versione 1.1 degli XSL. Questo tag è un valido meccanismo di estensione delle funzionalità dell’XSL in un determinato namespace. Tramite la specifica dell’attributo language è possibile definire anche di che tipo di funzione si tratta, per cui si possono definire funzioni Java, Javascript ecc…

Esempio, dato un xml del tipo:

si compone l’XSL:

e la classe…

Nell’XSL si deve dichiarare il namespace che permetterà di utilizzare il comando, poichè corrispondente alla classe qualificata con il package di appartenneza, e poi il tag che specifica il linguaggio in cui è scritta la funzione esterna attraverso l’attributo language. L’attributo src indica l’implementazione della funzione richiesta. implements-prefix specifica il prefisso di namespace che a runtime verrà estesa con l’URI contenuta nel namespace dichiarato nel tag xsl:script stesso. Chiaramente il risultato della trasformazione sarà:

Sicuramente utile in tutte quelle situazioni in cui si voglia utilizzare gli XSL non solo per pura presentazione, ma anche per tutte le trasformazioni che richiedono operazioni custom di cui l’XSL non può disporre.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *