venerdì 18 aprile 2008

Invocazione di un metodo JAVA via XSLT

Talvolta, lavorando con il servizio di trasformazione XSLT di Progress, ho necessità di invocare funzioni esterne Java, ad esempio, per estrarre dati da un database da inserire nell'XML in output. Descrivo di seguito il metodo che ho trovato io.

1) Si definisce una nuova classe JAVA. L'ho chiamata classeProva, appartenente al package com.provaluke, e contiene il metodo statico metodoProva().

2) Si lega al servizio la jar che contiene la classe.

2) Nel file XSLT che definisce la trasformazione si definisce un nuovo namespace (nell'esempio successivo l'ho chiamato "luke") dove si dichiara la classe con il metodo che si vuole usare, anteponendo "java:".

Il file XSLT comincerà allora così.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:docns="C:\Progetto\workingArea\SchemaCanonical.xsd" xmlns:luke="java:com.provaluke.classeProva">

Dopodiché, al momento opportuno, si invoca il metodo anteponendo il namespace nel seguente modo:

<xsl:value-of select="luke:metodoProva('1')"/>


Ovviamente si possono passare anche argomenti, etc. etc.

Nessun commento: