I currently have a web-serice running, returning calls to an iPhone client that i've built. The web-service is returning xml in the form of soap. What we've noticed is that when we use a specific function, the call takes longer than accepted in terms of UX. Here is some example code and sample xmlFunction \[code\]public List<Foo> bar(....){ // stuff return Bar; }\[/code\]Where the result is serialized to XML and consumed in the iPhone client.Example of XML returned by the function. ( this xml can grow very large depending on how the user uses the client application).\[code\]<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <response xmlns="uri:Foo"> <result> <p> <num>string</num> <d>int</d> <pf>string</pf> <pt>string</pt> <ipk>boolean</ipk> <ipa>boolean</ipa> <va> <ava xsi:nil="true" /> <ava xsi:nil="true" /> </va> <dps> <dp xsi:nil="true" /> <dp xsi:nil="true" /> </dps> <dst>string</dst> </p> </result> </response> </soap:Body></soap:Envelope>\[/code\]What i basically want is to make the data smaller. Preferably by some sort of compression. Is it possible to compress the size of the XML before returning it to the iPhone client?I looked at gzip, but couldnt really get any grip of it, since it works with streams. Any tips and/or pointers will be highly appreciated. Thanks for reading.