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!