Re: [xml] Error handling with the XmlReader API

On Thu, Jan 16, 2003 at 09:38:43AM +0100, Stéphane Bidoul wrote:
Here are 2 more arguments to put in the balance.

First, my proposals lack locator information. That's probably easier
to add to the callback method than the getLastError approach.


Second, C# has a mechanism to use callbacks instead of exception to report
validation errors (the user can choose). For well-formedness
errors, exceptions are always thrown.


I guess one could conceive variations on the getLastError theme
to correlate errors with nodes but that would be complex to implement
and to use, IMO.

So I would vote for the callback approach, with locator information.


typedef void (*xmlTextReaderErrorFunc)(
   void *arg, const char *msg,
   int line, int col, const char *uri, int severity);

int xmlTextReaderSetErrorHandler(
   xmlTextReaderPtr reader, xmlTextReaderErrorFunc f, void *arg);

After all, I think it's not a good idea to give the xmlTextReaderPtr to
the callback, because when the callback is invoked, the reader
is not necessary in a valid state? 

Errors will be generated only when the reader pushes new data at the
beginning of a Read(). It's not tightly coupled to the Reader state
itself, this would require some double checking before asserting it's
a safe state though.

However providing a user argument is probably necessary.

  Yes definitely needed !


Daniel Veillard      | Red Hat Network
veillard redhat com  | libxml GNOME XML XSLT toolkit | Rpmfind RPM search engine

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]