I may be wrong, but I think you need to wrap the $err:code in db:output(): see http://docs.basex.org/wiki/XQuery_Update#Returning_Results
Tim
-- Tim A. Thompson Metadata Librarian (Spanish/Portuguese Specialty) Princeton University Library
On Fri, Oct 16, 2015 at 10:28 AM, Hondros, Constantine (ELS-AMS) < C.Hondros@elsevier.com> wrote:
Hmm, it is surprisingly hard to get some useful logging information out of this.
Here for example I fall foul of a XQuery syntax here: “all expressions must be updating or return an empty sequence. ”
for $zip in file:list($hm)
return try {
db:add("myDB", $hm || '\' || $zip, "", map {
'intparse': true() })
} catch * { $err:code }
Can anyone help me rephrase this so when BaseX halts on a bad zipfile, I at least know what the name of the zipfile is?
C.
*From:* Alexander Holupirek [mailto:alex@holupirek.de] *Sent:* 16 October 2015 15:23 *To:* Hondros, Constantine (ELS-AMS) *Cc:* BaseX *Subject:* Re: [basex-talk] Which zip did BaseX choke on?
Have you tried using try/catch?
for zip in zips return try { unzip() } catch ...
Am 16.10.2015 um 15:16 schrieb Hondros, Constantine (ELS-AMS) < C.Hondros@elsevier.com>:
I love BaseX for the simplicity it brings to XML handling. But this is a problem I have not encountered before.
I am creating a DB from about 17,000 small zipfiles, each containing a directory structure and somewhere within each, some XML. BaseX chokes on one of these files giving the error: “invalid entry size (expected 0 but got 11083 bytes)”.
So clearly one or more of the zips is invalid - but which one(s)?
Is there any way that BaseX can echo to me the file that is causing the error? DEBUG is set to TRUE, but I don’t get any morer verbose output. I am using the GUI, and running a BSX script too.
Thanks in advance,
C.
Elsevier B.V. Registered Office: Radarweg 29, 1043 NX Amsterdam, The Netherlands, Registration No. 33156677, Registered in The Netherlands.
Elsevier B.V. Registered Office: Radarweg 29, 1043 NX Amsterdam, The Netherlands, Registration No. 33156677, Registered in The Netherlands.