Apache FOP 1.1 kullanıyorum. Geçerli apache Xalan XSLT işlemcisini XSLT 2.0'ı desteklemek için diğerine değiştirmek istiyorum. Şu anda XSLT 2.0'ı desteklemiyor. Lütfen bu sorunun nasıl çözüleceğine bana yardımcı olun. Teşekkürler.Apache FOP Xalan XSLT İşlemcisi nasıl değiştirilir?
cevap
Cevabım var. TransformerFactory, bir eklentisi katmanına sahiptir. JAXP, esnek standartların desteklenen standart XSLT işlemcilerin çeşitli uygulamalarını eklemesine izin veren ortak bir Java arabirimi sağlar.
TransformerFactory tFactory = TransformerFactory.newInstance();
Bu
biz mevcut veya varsayılan alacak herhangi tanımlı değil XSLT processors.AS bulmak için look-up prosedürü vardı.Şimdi SAXON XSLT işlemci ekliyorum. Bunun .jar projemde dosya ve sadece var
TransformerFactory tFactory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",null);
eklendi bulunuyor ekledik. şimdi Diğer bir daha çok esnek bir şekilde oluşturmak için olan fabrika uygulama belirleyen bu -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl
(yani varsayılan XSLT işlemci) gibi VM parametresiyle uygulamayı başlatmak için Saxon XSLT işlemciye
kullanır.
Bu şekilde, kodunuzun kendisini tek bir satır değiştirmek gerekmez. (Eğer görünüşte yaptığı gibi) kodunuzda ödeme şeklinizi katıştırıyorsanız
Bu, gayet iyi. Eğer bununla birlikte, komut satırından başına dağıtıma olarak ödeme şekli çalıştırmak istiyorsanız, aşağıdakileri yapabilirsiniz
kopyası dağıtımın
lib
dizinine (örneğin Saxon.jar gibi) XSLT işlemcisi ile gerekli kavanoz dosyalar (Linux üzerinde$LOCAL_FOP_HOME/lib
,%LOCAL_FOP_HOME%lib
Windows üzerinde)ve
org.apache.fop.cli.Main
denir çizgisinde başlangıç komut dosyası (Linux üzerindefop
, Windows üzerindefop.bat
) için parametrenin yeni ekleyin.