[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Re: [saxon] How to make a simple running example using packages?


Subject: Re: [xsl] Re: [saxon] How to make a simple running example using packages?
From: "John Lumley john@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 19 Oct 2014 09:26:35 -0000

As Mike said, this area is definitely 'work in progress'. In particular this problem arises from inter-package dependencies conflicting with the compiling order of the stylesheet/packages presented in the current 9.6.

For the moment, depending upon your situation, one of the following actions may help:

1. Ensure that *every* package is required, i.e. the stylesheet can be compiled only if every one of the supplied packages will be used. (If you're trying using different package-version alternates, only the first will be used and any subsequent ones will be compiled as 'separate stylesheets' and may cause this NPE)

2. Try putting the principal stylesheet as the *last* in the semi-colon separated list. Currently it will then be compiled last when essentially every other package has already been compiled into the library.

Personally I'd try the second option as it's the easiest. As I said, we're looking into this area, but the implementation is still experimental.

John

On 19/10/2014 01:37, Dimitre Novatchev dnovatchev@xxxxxxxxx wrote:
It almost worked from the command line, but this time I got:

C:\xml\XSLT3.0>"C:\Program Files\Java\jre7\bin\java.exe" -Xms1024M
-Xmx1024M  -jar C:\xml\Parsers\Saxon\Ver.9.6\saxon9ee.jar  -t
-repeat:1  t.xml  using-package.xsl;complex-arithmetic.xsl

Saxon-EE 9.6.0.1J from Saxonica
Java version 1.7.0_51
Using license serial number Vxxxxxxxxxxxxxx
Generating byte code...
java.lang.NullPointerException
         at net.sf.saxon.trans.PackageLibrary.getPackage(PackageLibrary.java:75)
         at com.saxonica.ee.packages.StylesheetPackageEE.spliceUsedPackage(StylesheetPackageEE.java:61)
         at com.saxonica.ee.packages.StylesheetPackageEE.spliceUsePackages(StylesheetPackageEE.java:43)
         at net.sf.saxon.style.StylesheetPackage.preprocess(StylesheetPackage.java:371)
         at net.sf.saxon.style.Compilation.compilePackage(Compilation.java:180)
         at net.sf.saxon.s9api.XsltCompiler.compilePackage(XsltCompiler.java:394)
         at net.sf.saxon.s9api.XsltCompiler.compilePackages(XsltCompiler.java:447)
         at net.sf.saxon.Transform.doTransform(Transform.java:582)
         at net.sf.saxon.Transform.main(Transform.java:80)
Fatal error during transformation: java.lang.NullPointerException:  (no message)

Cheers,
Dimitre

On Sat, Oct 18, 2014 at 4:58 PM, Michael Kay<mike@xxxxxxxxxxxx> wrote:
>If you are running from the command line, it is possible to load multiple packages by providing a semicolon-separated list of filenames in the -xsl parameter. However, I don't think this is well documented or tested and it may have restrictions concerning the order of packages.
>
>What is documented and tested is using packages via the s9api XsltCompiler interface; essentially you can compile a package into a CompiledPackage object, and then make this available to an XsltCompiler using an importPackage method.
>
>This is a bit of a stopgap; packages are work in progress. We're thinking about "classpath-like" mechanisms for the longer term.
>


--
*John Lumley* MA PhD CEng FIEE
john@xxxxxxxxxxxx <mailto:john@xxxxxxxxxxxx>
on behalf of Saxonica Ltd


Current Thread