Whilst trying to write a simple CGI web service using ZSI, that is called by a third-party product I identified and fixed a number of issues that were preventing a) ZSI accepting the SOAP message from the product and b) the product from accepting a response from a ZSI CGI script.
These issues / fixes were:
* allow dispatch "AsXXX" functions to accept an optional readerclass to be passed to ParseSoap - expat was failing on some valid SOAP calls, I needed to use Sax2 instead
* "strip" CGI input to remove extraneous whitespace before the XML declaration
* removed quotes around charset value in Content-type header
* empty elements were causing errors using the default typecodes, fixed by changing call to self.simple_value to have mixed=True as a parameter
Patch for current SVN version attached.