Subject: [xsl] Re: [saxon] How to make a simple running example using packages? From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sun, 19 Oct 2014 00:37:05 -0000 |
Thank you, Dr. Kay, 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(StylesheetPack ageEE.java:61) at com.saxonica.ee.packages.StylesheetPackageEE.spliceUsePackages(StylesheetPack ageEE.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. > > Michael Kay > Saxonica > mike@xxxxxxxxxxxx > +44 (0) 118 946 5893 > > > > > On 19 Oct 2014, at 00:46, Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote: > >> Hi, >> >> Using the trial version of Saxon 9.6EE and the example package from >> the latest XSLT 3.0 Last Call, I am trying to produce a simple, >> running example: >> >> using-package.xsl: >> ============== >> <xsl:package name="http://example.org/complex-arithmetic.xsl" >> package-version="1.0" version="3.0" >> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >> xmlns:xs="http://www.w3.org/2001/XMLSchema" >> xmlns:f="http://example.org/complex-arithmetic.xsl"> >> <xsl:use-package name="complex-arithmetic"/> >> >> <xsl:template match="/"> >> <xsl:variable name="vComplex1" select="f:complex-number(1, 0)" >> as="map(xs:integer, xs:double)"/> >> Real: <xsl:sequence select="$vComplex1(0)"/> >> Imaginary: <xsl:sequence select="$vComplex1(1)"/> >> </xsl:template> >> </xsl:package> >> >> >> >> complex-arithmetic.xsl: >> ================= >> <xsl:package name="complex-arithmetic" >> package-version="1.0" version="3.0" >> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >> xmlns:xs="http://www.w3.org/2001/XMLSchema" >> xmlns:f="http://example.org/complex-arithmetic.xsl"> >> >> <xsl:function name="f:complex-number" >> as="map(xs:integer, xs:double)" visibility="public"> >> <xsl:param name="real" as="xs:double"/> >> <xsl:param name="imaginary" as="xs:double"/> >> <xsl:sequence select="map{ 0:$real, 1:$imaginary }"/> >> </xsl:function> >> >> <xsl:function name="f:real" >> as="xs:double" visibility="public"> >> <xsl:param name="complex" as="map(xs:integer, xs:double)"/> >> <xsl:sequence select="$complex(0)"/> >> </xsl:function> >> >> <xsl:function name="f:imag" >> as="xs:double" visibility="public"> >> <xsl:param name="complex" as="map(xs:integer, xs:double)"/> >> <xsl:sequence select="$complex(1)"/> >> </xsl:function> >> >> <xsl:function name="f:add" >> as="map(xs:integer, xs:double)" visibility="public"> >> <xsl:param name="x" as="map(xs:integer, xs:double)"/> >> <xsl:param name="y" as="map(xs:integer, xs:double)"/> >> <xsl:sequence select=" >> f:complex-number( >> f:real($x) + f:real($y), >> f:imag($x) + f:imag($y)"/> >> </xsl:function> >> >> <xsl:function name="f:multiply" >> as="map(xs:integer, xs:double)" visibility="public"> >> <xsl:param name="x" as="map(xs:integer, xs:double)"/> >> <xsl:param name="y" as="map(xs:integer, xs:double)"/> >> <xsl:sequence select=" >> f:complex-number( >> f:real($x)*f:real($y) - f:imag($x)*f:imag($y), >> f:real($x)*f:imag($y) + f:imag($x)*f:real($y))"/> >> </xsl:function> >> >> <!-- etc. --> >> </xsl:package> >> >> When I run Saxon 9.6 on using-package.xsl, I get these error messages: >> >> Saxon-EE 9.6.0.1J from Saxonica >> Java version 1.7.0_51 >> Using license serial number Vxxxxxxxxxxxxxxx >> >> Error at xsl:use-package on line 6 column 47 of marrowtr.xsl: >> XTSE3000: Package complex-arithmetic was not found >> >> Error at xsl:variable on line 9 column 101 of marrowtr.xsl: >> XPST0017 XPath syntax error at char 0 on line 9 in {f:complex-number(1, 0)}: >> Cannot find a matching 2-argument function named >> {http://example.org/complex-arithmetic.xsl}complex-number() >> >> Stylesheet compilation failed: 2 errors reported >> >> >> What should I do in order to make this simple example run as expected? >> >> It is not clear to me how finding a package given its name works -- I >> also tried importing complex-arithmetic.xsl into using-package.xsl, >> but got this error: >> >> "Error at xsl:import on line 8 column 46 of marrowtr.xsl: >> XTSE0165: Included document complex-arithmetic.xsl is not a stylesheet" >> >> >> Any guidance how to produce a running example is enormously appreciated. >> >> >> -- >> Cheers, >> Dimitre Novatchev >> >> ----------------------------------------------------------------------------- - >> Comprehensive Server Monitoring with Site24x7. >> Monitor 10 servers for $9/Month. >> Get alerted through email, SMS, voice calls or mobile push notifications. >> Take corrective actions from your mobile device. >> http://p.sf.net/sfu/Zoho >> _______________________________________________ >> saxon-help mailing list archived at http://saxon.markmail.org/ >> saxon-help@xxxxxxxxxxxxxxxxxxxxx >> https://lists.sourceforge.net/lists/listinfo/saxon-help
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: [saxon] How to make a sim, Michael Kay mike@xxx | Thread | Re: [xsl] Re: [saxon] How to make a, John Lumley john@xxx |
[xsl] Re: [saxon] How to make a sim, Michael Kay mike@xxx | Date | Re: [xsl] Re: [saxon] How to make a, John Lumley john@xxx |
Month |