[Xml-compile] Resilience to random WSDL changes

Mark Blackman m.blackman at fairfx.com
Thu Mar 1 16:57:15 GMT 2012


On 1 Mar 2012, at 16:44, Mark Blackman wrote:

> 
> On 1 Mar 2012, at 16:35, Michael Ludwig wrote:
> 
>> The provider of the service I'm interfacing with sometimes makes
>> random changes to the published WSDL and the implementation behind.
>> Unsurprisingly, processing then fails:
>> 
>> error: decode error: data for element or block starting with `Age' missing at {http://superlister.aucland.com/QxlRicardoServices/}CheckAccountResponse/CheckAccountResult
>> Errors while decoding:
>> error: decode error: data for element or block starting with `Age' missing at {http://superlister.aucland.com/QxlRicardoServices/}CheckAccountResponse/CheckAccountResult
>> error: decode error: data for element or block starting with `Age' missing at {http://superlister.aucland.com/QxlRicardoServices/}CheckAccountResponse/CheckAccountResult
>> Errors while decoding:
>> error: decode error: data for element or block starting with `Age' missing at {http://superlister.aucland.com/QxlRicardoServices/}CheckAccountResponse/CheckAccountResult
> 
> We usually see this when they add a new element at the same level and the relative index
> for the 'Age' element has changed but is still present.  I presume the SOAP spec. is
> fussy about order of elements, but I have only recently appreciated that.

More specifically, this is because the WSDL used to intrepret the response 
is probably declaring a complex type composed of an XML-Schema "sequence"
type where order matters. You could use your own copy of the WSDL but change
it to "all" instead of "sequence".

- Mark


More information about the Xml-compile mailing list