Sto usando Apache FOP 1.1. Voglio cambiare il processore Xalan XSLT di apache corrente ad altri per supportare XSLT 2.0. Attualmente non supporta XSLT 2.0. Per favore aiutami come risolvere questo problema. grazie.Come modificare il processore Apache FOP Xalan XSLT?
risposta
Ho ricevuto la mia risposta. TransformerFactory ha uno strato plug-in. JAXP fornisce un'interfaccia Java comune che consente la flessibilità di aggiungere varie implementazioni dei processori XSLT degli standard supportati.
TransformerFactory tFactory = TransformerFactory.newInstance();
questo ha avuto procedura di look-up per individuare processors.AS XSLT che non definito alcun, ci vorrà a disposizione o di default.
Ora, sto aggiungendo il processore XSLT SAXON. Ho aggiunto che è file .jar nel mio progetto e appena aggiunto
TransformerFactory tFactory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",null);
Questo è tutto. ora utilizzerà il processore Saxon XSLT
Un altro modo più flessibile è avviare l'applicazione con un parametro VM come questo -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl
che determina quale implementazione Factory creare (cioè il processore XSLT predefinito).
In questo modo, non è necessario modificare una singola riga del codice stesso.
Questo va bene, se si incorpora FOP nel codice (come apparentemente fatto). Se si desidera eseguire FOP la distribuzione standalone da linea di comando, tuttavia, è possibile
copia i file jar richiesti con il processore XSLT (come ad esempio Saxon.jar) alla
lib
directory della distribuzione ($LOCAL_FOP_HOME/lib
su Linux,%LOCAL_FOP_HOME%lib
su Windows)e aggiungere il paramater allo script di avvio (
fop
su Linux,fop.bat
su Windows) alla linea doveorg.apache.fop.cli.Main
si chiama.