I am using MarkLogic release 8.0-4 and I get a problem with fn:replace if the second argument exceeds a certain length. I use the following script in XQuery. This is just a simple query with the only goal to show the error.
let $string1 := "aaaa" let $string2 := "bbbb" let $length-1 := 1463 let $length-2 := 1464 let $piece-of-xml := '<change when="2015-01-21" status="created"/><change when="2015-09-16" who="9999999999999999999">ABCD EF G</change><change when="2015-09-17" who="9999999999999999999">ABCD EF G</change><change when="2015-09-22" who="999999999999999999">ABCD EF GH</change><change when="2015-10-09" who="9999999999999999999">ABCD EF G</change><change when="2016-04-01" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-04-02" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-04-06" who="999999999999999999">ABCD EF GH</change><change when="2016-04-09" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-04-10" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-04-18" who="9999999999999999999">Abcd Abcdef</change><change when="2016-04-22" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-04-23" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-06-26" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-06-27" who="9999999999999999999">Abcdef Abcdefghijk</change><change when="2016-06-28" who="9999999999999999999">Abcdef Abcdefghijk</change><change when="2016-07-01" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-07-02" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-07-02" who="9999999999999999999">Abcdef Abcdefghijk</change><change when="2016-07-03" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-07-03" who="9999999999999999999">Abcdef Abcdefghijk</change></listChange>' let $test1 := fn:substring($piece-of-xml,1,$length-1) return fn:replace($string1,$test1,$string2) This returns the expected value 'aaaa'. But when I increase the selected length by 1 by replacing: let $test1 := fn:substring($piece-of-xml,1,$length-1) by let $test1 := fn:substring($piece-of-xml,1,$length-2) I get the error: XDMP-REGEX: (err:FORX0002) fn:replace("aaaa", "<change when="2015-01-21" status="created"/>...", "bbbb") -- Invalid regular expression The value of $test1 at that point is: <change when="2015-01-21" status="created"/><change when="2015-09-16" who="9999999999999999999">ABCD EF G</change><change when="2015-09-17" who="9999999999999999999">ABCD EF G</change><change when="2015-09-22" who="999999999999999999">ABCD EF GH</change><change when="2015-10-09" who="9999999999999999999">ABCD EF G</change><change when="2016-04-01" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-04-02" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-04-06" who="999999999999999999">ABCD EF GH</change><change when="2016-04-09" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-04-10" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-04-18" who="9999999999999999999">Abcd Abcdef</change><change when="2016-04-22" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-04-23" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-06-26" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-06-27" who="9999999999999999999">Abcdef Abcdefghijk</change><change when="2016-06-28" who="9999999999999999999">Abcdef Abcdefghijk</change><change when="2016-07-01" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-07-02" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-07-02" who="9999999999999999999">Abcdef Abcdefghijk</change><change when="2016-07-03" who="9999999999999999999">Abcd Abcdefgh</change><change when="2016-07 Why do I get this error in MarkLogic? Johan de Boer Developer Java / Developer MarkLogic P: 0031 88 268 2500 | M: 0031 6 444 22 758 E: johan.de.b...@tahzoo.com | W: www.tahzoo.com A: Delftechpark 37I , 2628 XJDelft, Netherlands
_______________________________________________ General mailing list General@developer.marklogic.com Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general