[Top][All Lists]

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

Re: [Help-smalltalk] Expat XML Parser extension

From: Jan Vrany
Subject: Re: [Help-smalltalk] Expat XML Parser extension
Date: Sun, 23 Sep 2007 22:32:33 +0200

Hi, I already wrote Expat binding for Smalltalk/X.
It does not support encondigs and parses internal
streams as well as external (files & sockets :-).
Maybe you can reuse some know-how from my (very simple) code.
Good luck :-)


On Ne, 2007-09-23 at 22:23 +0200, Robin Redeker wrote:
> Hi!
> I just wanted to inform you that I've been writing an Expat
> extension for gnu smalltalk today. I'll add some more documentation,
> finish it up and send a path within the next week.
> It's mainly a wrapper around the C API of Expat which emits SAX events,
> which can be processed by the existing XML.SAXDriver implementation.
> Expat is a stream parser and the smalltalk interface dows allow parsing
> of unpositional streams like eg. sockets.
> The good with the Expat parser is that it supports new (yet
> currently not implemented in SAX events which are defined by the
> latest SAX extensions (such as cdata start/end and dtd start/end
> detection, etc.).
> The bad with Expat is that it requires yet another C lib.
> Also the current interface returns String objects for all strings. Those
> Strings are multibyte encoded (UTF-8) unicode. But writing a subclass
> of the exising interface which decodes them to UnicodeString won't be a
> big problem when someone needs it.
> The expat parser also parses (encoded) byte streams (utf-8, iso, ascii
> or utf-16 encoded) and not unicode strings. The current XML.XMLParser
> implementation seems not to be able to parse byte streams and only
> unicode strings (at least i want't able to throw in a UTF-8 encoded
> document string).
> Open questions with regard to the implementation are:
> How/When do I correctly free the allocated expat C parser struct?
> I'm currently storing the XML_Parser C struct as OOP in the Smalltalk
> interface object. (Similar to the zlib implemenation).
> But how do I ensure that the free function for it is called when my
> interface object is destroyed?
> I also put the package in packages/expat/ and used the zlib/ stuff as
> skeleton for the building system. Is that okay?
> I've also yet to discover how to create a patchset against the current
> tla tree. But I guess I'll just have to read the manual again ;-/ (GIT
> war a bit easier IMO :)
> Robin
> _______________________________________________
> help-smalltalk mailing list
> address@hidden

Description: Text document

reply via email to

[Prev in Thread] Current Thread [Next in Thread]