Re: NSXMLDocument

Richard Frith-Macdonald <[email protected]> Sun, 8 Feb 2009 22:11:05 +0000
Newsgroups gmane.comp.lib.gnustep.user
Message-ID <[email protected]>
On 7 Feb 2009, at 16:22, Fred Kiefer wrote:

> Michael C. Silva wrote:
>> Is there anyone working on an implementation of the NSXMLDocument
>> class?  I need this object to port a project and would be willing to
>> help out.
>>
>
> Not NSXMLDocument, but some of the releated classes can be found in
> mySTEP. And as Nikolaus Schaller freely shares his code with GNUstep  
> is
> would be possible to move that over and extend the implementation.
> Ihaven't had a look at that code myself, so I don't know whether it
> actually helps for these classes.
>
> The source code of mySTEP can be found at
> http://www.quantum-step.com/download/sources/ currently the latest
> release is mySTEP-src-2.5B1064.tgz and it includes a lot of stuff you
> don't need, but this is the only way Nikolaus makes his code  
> available.

I have some code I wrote late last year that I haven't committed to  
the base libaray ... just the headers and largely non-functional  
skeletons of the implementation, but even so that's a little more  
advanced than currently in mySTEP.

I stopped doing anything with it when it became apparent to me from  
the desgin of the API, that Apples new classes are actually a wrapper  
round libxml2 ... and we already have a wrapper round libxml2 in  
GSXML.m in the base library.  So I couldn't decide what to do:
We could implement a second wrapper around libxml2 following Apple's  
API and implementation details as closely as we can, or we could try  
implementing a pure Objective-C version of the Apple API.  The first  
approach is kind of redundant .. as we already have GSXML.  The second  
approach involves a lot of work that I don't really have time for.

Our API is obviously different to Apples, but it's functionally  
similar (since both wrap libxml2) and might well be close enough to  
use in a port of the application.
On the other hand, if the application only makes limited use of  
NSXMLDocument, it might be feasible to implement a pure objective-c  
version of the class with the functionality needed for the port.
I suppose though, that implementing it the same way that Apple did  
maybe easiest, even if it does mean we have an uglier API than necessary