Sam's example isn't very persuasive for why a namespace should to be added to the 'item' element in the CommenAPI. Here is my own eerily similar example of why the namespace isn't needed and the SOAP envelope is optional.
xsd CommentAPI.xsd /c csc capiClient.cs CommentAPI.cs
Corrent me if I am wrong, but is the only thing that is causing problems is WSDL's requirement that the items in the SOAP Body be placed in a non-nil namespace? If that is the case then the problem isn't with the CommentAPI but with WSDL.