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

Re: [xml] release of libxml2-2.6.0beta3



On Tue, Sep 30, 2003 at 09:22:45AM +1000, Malcolm Tredinnick wrote:
> OK, I had a chance to do some playing around with the 2.6-beta stuff
> (well, really with CVS). A few comments below, but nothing serious.

  okay, thanks !

> Possibly just because of the type of applications I am using with
> libxml, I do not have much in the way of real difficulties with the
> existing API. Other people have posted their thoughts, which are outside
> my experience set, so I have no opinion.

  Well I dislike the lack of orthogonality and control of the set of 
old APIs like xmlSAXParseMemoryWithData() xmlSAXParseFileWithData(),
etc...
  I keep them of course but I want something I can explain in a few
pages to newbies starting with libxml2.

> My only request, if it's not too much much trouble, is in the SAX error
> callbacks. Currently, we can extract the filename, position in the file,
> the error number, and the node we are currently parsing without any
> problem. However, in the case of something like a mismatched closing
> tag, I cannot see any straightforward way to work out what the parser
> actually saw. I know what it is expecting and I can sort of reverse
> engineer what it saw by backing up in the input stream a little bit, but
> that feels very awkward. Alternatively, I can hope the format of the
> error message does not change and hunt through the varargs passed into
> the error callback, but again, hardly a robust programming practice. :-)

  I could store more error related data in the parser context somehow
like the Gerror block, i.e. errNo, the string, where this came from
(validation, parsing, I/O, memory, namespace, ...), and some extra
informations, see the few error routines in the beta3 version of parser.c
(near the top).

> A possible solution: In parser.c:xmlEndTag1(), the information is
> available (the 'name' variable that is filled in on line 7018), but it
> is only put into the error string and not available on it's own. Is
> there any way to pass a piece of auxilliary data around (like a pointer
> to 'name' here)? I must admit that I cannot quite see how without
> breaking ABI compatibility, but I am possibly not too clever, so it may
> be possible.

  Passing it through the parser context when in a parser framework,
or through a global variable (struct) also per-thread when no parser
context is available. Trying to chase down the case where an error
may get raised from the parser while no context is available sounds an
unpleasant but probably useful task <grin/>.

> I tried the new library against a few little programs I have lying
> around as well as against my libsmil and there were no problems.

  Good, so far I didn't got any ABI compat problem I didn't fixed,
except one but it's under control :-)

> So, in short, I cannot see anything in the new code that is going to
> cause me nightmares for my limited applications. That is somewhat
> impressive given all the changes you have made under the covers. Nice
> job. :-)

  thanks !
  So when are you gonna push this SMIL code out ;-) ?

Daniel

-- 
Daniel Veillard      | Red Hat Network https://rhn.redhat.com/
veillard redhat com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/



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