Kernseife

Now that Tumblr is back up (regardless of the causes and length of time), I suppose catching up is the thing to do.

In the meantime, and being a stickler for fixing things properly, I’ve decided to improve my approach at invoking SOAP services from Cocoa and am putting up the results at github.

The classes I’m using were originally developed by Oliver Drobnik and hosted on Google Code - I came upon them while looking for a Cocoa SOAP toolkit that could replace the (rather poorly documented) WSMakeStubs, and liked them enough to fork.

The kernseife command-line utility generated by that Xcode project does a rather better job of parsing WSDL files than WSMakeStubs, can be customized at will and generates code that is iOS-friendly given that NSXML is not available there (only NSXMLParser is actually available on iOS 4.x at the time I’m writing this), so I decided to use them to tackle some (rather crufty) web services I have the (rather debatable) pleasure of using.

Right now there are very few changes - I’ve mostly fixed some warnings and added lazy handing of SOAP responses by flattening them into an NSMutableDictionary to make it easier to deal with stupid nested structures (including a poor man’s XPath).

Generated filenames are a bit on the verbose side to cope with some peculiarities in the WSDL I have to deal with, but they’re easily tweaked.

Enjoy.