"Jason E. Stewart" <[EMAIL PROTECTED]> writes:
> I'd like to create a single parser instance, and then reuse it to
> parse a few thousand small XML files over and over (the xmlconf test
> suite).
>
> The problem happens when I parse a file that causes an error. When I
> try to parse the next file, it seems that the previous parse left the
> parser in a bad state:
>
> Received XMLException without handler
> Exception thrown in file: 'SAXParser.cpp'
> At line: '385'
> Exception message is:
> Parse may not be called while parsing
>
> DOM seems to have a reset() method, but not SAX. When I try calling
> DOM::reset(), or IDOM, I get an abort because it calls a pure virtual
> method.
Hey,
I also tried using the SAXParser progressive parsing interface:
parseFirst(), parseNext(), and parseReset().
This works for a while, but eventually parseReset() throws an
undocumented XMLException from XMLScanner.cpp:818:
parseReset caused exception: XMLException:
FILE: XMLScanner.cpp
LINE: 818
CODE: _p_XMLExcepts__Codes=SCALAR(0x129590e0)
MESSAGE: The call to scanNext() is illegal at this time
Not exactly what I would call a useful error msg... What is
scanNext()? The exception is because of an invalid scan token, but I
don't know why a SAXParseException would cause the parse token to
become invalid.
I'm getting the sense that when Xerces' Parsers throw exceptions,
they are left in a fundamentally unstable state that cannot be
restored, and so one should *never* attempt to reuse a parser
instance.
I hope that I'm wrong, but I can't seem to get this working. Help is
appreciated.
jas.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]