Se si hanno questo problema, verificare che non si utilizza 1.8.1 Ant, perché c'è un bug in 1.8.1 Ant che impedisce questo di lavorare. (Anche se questo non è il problema nel post originale, perché era antecedente alla pubblicazione di Ant 1.8.1).
Le opzioni disponibili sono:
- utilizza una versione di Ant che non ha il bug (ad esempio Ant 1.7.1).
- specificare esplicitamente saxon9.jar nel
CLASSPATH
per Ant prima del suo inizio, mediante:
- Impostazione della variabile d'ambiente
CLASSPATH
, o
- Utilizzare l'opzione della riga di comando per
-lib
ant
- Definire il tuo compito utilizzando SAXON Ant (come descritto da un'altra risposta su questo thread).
- Soluzione alternativa aggiungendo
processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison"
come attributo dell'elemento attività xslt
.
vorrei suggerimento usando l'opzione 1, seguita da l'opzione 4.
Opzione 2 funzionerà, ma pone la responsabilità sulla persona che esegue formica per configurare il loro ambiente ed eseguire ant correttamente. Presumo che tu non lo voglia, motivo per cui stai cercando di ottenere l'attributo classpath
nell'attività xslt
per funzionare.
L'opzione 3 presenta limitazioni, poiché SAXON Ant richiede il download e l'installazione del relativo file JAR. Inoltre, SAXON Ant non funziona con SAXON 9.2 o successivo (e SAXON Ant non è stato aggiornato da quando è stato creato nel giugno 2008). In teoria, specificare un sottoelemento factory
rende il processore XSLT che si desidera utilizzare esplicitamente, per impedire al caricatore di classi di trovare un processore XSLT diverso nella sua ricerca e utilizzarlo al posto del processore XSLT che è ulteriormente giù nel CLASSPATH. In pratica (almeno nella form 1.7.0, 1.7.1 e 1.8.0) se viene specificato il sottoelemento factory
, l'attività xslt
ignora l'attributo classpath
, il che significa che è necessario ricorrere alla specifica esplicita di CLASSPATH (opzione 2). Quindi non aiuta a risolvere il problema originale. Tuttavia, questo sembra essere stato risolto nel codice sorgente di Ant, quindi potrebbe funzionare nelle versioni successive alla 1.8.1.
Questo può essere interessante http://www.xml.com/pub/a/2002/12/11/ant-xml.html ma un po 'vecchio (l'ultimo aggiornamento di mtxslt è 2002 - http: //mtxslt.sf .net /) – paulgreg