user3657755
user3657755

Reputation: 13

calling XQuery Update from the command line after update to oXygen 17.1

We have for the past year been running a batch script I wrote to call a series of XQuery Updates from the Windows command line using Saxon. It worked fine while we were on oXygen 16, but after all the machines in our department were upgraded to oXygen 17.1, the script is now throwing an error that I can't seem to fix. Any thoughts would be greatly appreciated.

This used to work when oXygen 16 was installed:

java -cp "C:\Program Files\Oxygen XML Editor 16\lib\saxon9ee.jar" net.sf.saxon.Query -update:on -t -q:"C:\Users\%USERNAME%\Documents\SVN Working Copies\trunk\rbscXSL\Locations2015\AbID2dsc-items.xq"

I have confirmed that the .jar file is in the same relative location (with the oXygen version number being the only change to the path) and has the same name as before. Nevertheless, after updating the class path to "C:\Program Files\Oxygen XML Editor 17\lib\saxon9ee.jar" the script throws the following error:

Saxon-EE 9.6.0.7J from Saxonica

Java version 1.8.0_92

java.lang.UnsupportedOperationException: XQuery Update is not supported in this Saxon Configuration

at net.sf.saxon.s9api.XQueryCompiler.setUpdatingEnabled(XQueryCompiler.java:212)

at net.sf.saxon.Query.doQuery(Query.java:281)

at net.sf.saxon.Query.main(Query.java:111)

Fatal error during query: java.lang.UnsupportedOperationException: XQuery Update is not supported in this Saxon Configuration

The filename, directory name, or volume label syntax is incorrect.

Java 8 is installed on my machine. I have also ensured that the XQuery Update still works when called from within the oXygen editor.

After reading up on http://www.saxonica.com/documentation9.6/index.html#!using-xquery/commandline and http://www.saxonica.com/documentation9.6/index.html#!conformance/update, I added the -tree:linked flag and the -qversion:1.0 flag (they result in the same error message):

java -cp "C:\Program Files\Oxygen XML Editor 17\lib\saxon9ee.jar" net.sf.saxon.Query -qversion:1.0 -tree:linked -update:on -t -q:"C:\Users\%USERNAME%\Documents\SVN Working Copies\trunk\rbscXSL\Locations2015\AbID2dsc-items.xq"

According to the documentation, XQuery Update should run if the -update:on flag is set, which it is, and the XML is read in using the doc() or collection() function, which is also the case--these are the variables from my XQuery file:

declare variable $EAD as document-node()* := doc("sample_input.xml");
declare variable $ITEMS as document-node()* := doc("sample_input.AbID.xml");

I'm at a loss what else to try. If anyone can see what's going wrong here, I'd greatly appreciate any pointers!

Upvotes: 0

Views: 261

Answers (1)

Michael Kay
Michael Kay

Reputation: 163595

Do you have your own Saxon-EE license, or are you relying on the license that comes with oXygen? The oXygen license does not cover use of Saxon-EE outside of oXygen itself (so it doesn't cover the way you are running Saxon from the command line). Perhaps you found a loophole in the way oXygen handles the Saxon activation that worked in earlier releases but has since been fixed, either in oXygen or in Saxon.

Upvotes: 0

Related Questions