Начиная с Saxon 9.7, мы должны использовать другую процедуру s9api для «импорта» упакованной таблицы стилей. Здесь , Майкл говорит: «Пакеты таблиц стилей можно ... импортировать ... используя ... API-интерфейс s9api". Затем он сослался на эти подробности.
Пока я читал это, надеясь, что это будет просто, я остановился на этом:
Файл экспорта таблицы стилей ... принимается любым интерфейсом Saxon, который принимает исходную таблицу стилей.
Итак, я создал этот пример MCV:
import java.io.*;
import net.sf.saxon.Configuration;
import net.sf.saxon.s9api.Processor;
import net.sf.saxon.s9api.XsltCompiler;
import net.sf.saxon.s9api.XsltExecutable;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
public class test {
public static void main (String args[]) throws Exception {
Processor saxProc = new Processor(false);
Configuration saxCfg = saxProc.getUnderlyingConfiguration();
XsltCompiler saxComp = saxProc.newXsltCompiler();
File xslmain = new File(args[0]);
Source xsl = new StreamSource(xslmain);
XsltExecutable saxExe = saxComp.compile(xsl);
}
}
Выполнено так (с использованием 9.9.1.7J для ee, pe и he) не генерируется никаких исключений:
$ javac -classpath saxon9pe.jar test.java
$ java -classpath .:saxon9he.jar test something.xsl
Но если я упаковываю что-то. xsl (т. е. использую EE для экспорта в файл xml) и выполняю MCV следующим образом это, тогда исключение выдается:
$ java -classpath .:saxon9he.jar test something-exported.xml
Error
SXPK0002: Cannot load expression with tag indexedFilter2. The stylesheet uses Saxon-EE features
Exception in thread "main" net.sf.saxon.s9api.SaxonApiException: Cannot load expression with tag indexedFilter2. The stylesheet uses Saxon-EE features
Разве я не могу быть в состоянии упаковать файл xsl, используя EE, распределить HE, и прочитать упакованную таблицу стилей, используя HE для выполнения преобразований? Если да, то как?