I'm using the Oxygen XML Editor to learn Xquery, and I've opened one of their sample files:
xquery version "3.1";
(:The Saxon EE processor must be set in the XQuery transformation scenario for this example. :)
declare base-uri 'file:/Applications/Oxygen XML Editor/samples/xquery/Update/';
(: How to insert a node in an XML document. :)
insert node
<product id="p7">
<name>papa</name>
<price>2100</price>
<stock>4</stock>
<country>China</country>
</product>
as last into doc("products.xml")/products
I would use this to transform the appropriate file, but the file doesn't pass validation. The validation error I get is
F [Saxon-EE XQuery 10.6] Unexpected token "insert nodes" at start of expression
I tried to modify the code to match other examples and I still get the same error. I added the xquery version and base-uri to the sample to eliminate them as possible problems. Why is this happening, how do I fix it.
CodePudding user response:
In Oxygen, go to Preferences / XML / XSLT-XQuery / XQuery / Saxon HE/PE/EE, and tick the option "Enable XQuery Update". Also ensure that the transformation scenario for executing the query has "Saxon-EE" and "Enable XQuery Update" set.
You may need to restart Oxygen for the setting to take effect.
CodePudding user response:
I am using BaseX v.9.7.3
I had to issue set writeback true
command first.
Here is how to specify file system directory for the "products.xml" file:
declare base-uri 'e:\Temp\';
XQuery
xquery version "3.1";
(: set writeback true :)
declare base-uri 'e:\Temp\';
(: How to insert a node in an XML document. :)
insert node
<product id="p7">
<name>papa</name>
<price>2100</price>
<stock>4</stock>
<country>China</country>
</product>
as last into doc("products.xml")/products