xdmp:unqote and cts:query($qNode/*) from the generated node

Issues related to W3C XQuery.
vkdev
Posts: 21
Joined: Sat Jan 07, 2017 12:54 am

xdmp:unqote and cts:query($qNode/*) from the generated node

Post by vkdev » Wed Apr 26, 2017 1:11 pm

let $query:=<cts:path-range-query xmlns:cts="http://marklogic.com/cts" operator="&le;"><cts:path-expression>processInstance/tasks/task/auditTask/createdOn </cts:path-expression> <cts:value xsi:type="xs:dateTime" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan ... /cts:value> </cts:path-range-query>


This xml got generated when I serialized my xquery. I am having problem with the operator="&le;". when I do xdmp:unquote, and then do a let $colQuery as cts:query :=cts:query($qNode/*)

it gives error about invalid operation. since the expected string is "<=" and not ascii version of it.

how does one deal with doing xdmp:unquote of a string that has less than or greater than chars and the use the resulting node to create a cts:query?

Please any help would be greatly appreciated.

alex_jitianu
Posts: 662
Joined: Wed Nov 16, 2005 11:11 am

Re: xdmp:unqote and cts:query($qNode/*) from the generated node

Post by alex_jitianu » Wed Apr 26, 2017 2:49 pm

Hi,

If I understand it correctly, you have a query like this:

Code: Select all

let $query:=
'<cts:path-range-query xmlns:cts="http://marklogic.com/cts" operator="&le;">
<cts:path-expression>processInstance/tasks/task/auditTask/createdOn </cts:path-expression>
<cts:value
xsi:type="xs:dateTime"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2017-04-25T23:59:59</cts:value>
</cts:path-range-query>'

let $contents := xdmp:unquote($query, "", "repair-full")

return cts:query($contents/*)
and you get an error like this:

Code: Select all

XDMP-ARG: cts:query(<cts:path-range-query operator="&#x2264;" xmlns:cts="http://marklogic.com/cts">...</cts:path-range-query>) -- op is invalid
I managed to reproduce this behavior myself but unfortunately I don't know how to fix it. I think a better place to ask this question is on the MarkLogic list (general@developer.marklogic.com) because the people there have more experience with MarkLogic. If you get an answer it might be good to post it here as well to help those that bump into it in the future.

Best regards,
Alex

Post Reply