Así que soy un poco nuevo en los servicios web y recientemente surgió una situación en la que agregamos un elemento a un tipo de datos que se devuelve al cliente. Los clientes se quejaron de que esto rompió su implementación porque se ahogaba en el nuevo elemento que no esperaba. (estamos proporcionando los servicios a través de Axis2).Compatibilidad con versiones anteriores y servicios web
Para mí, esto parece un cambio inofensivo que el cliente debe ser capaz de manejar con elegancia (he trabajado con algunos marcos de servicios que no son web donde agregar información opcional era completamente aceptable). Podría entender si eliminamos o cambiamos el nombre de algunos campos que causarían problemas para el cliente.
Básicamente, esperaría que el wsdl actuara como una interfaz. Si hacemos un cambio que esencialmente subtipe esa interfaz, esperaría que el cliente ignore felizmente los elementos extraños. ¿Es solo una breve venida de servicios web, o existe una forma sensata de hacer cambios pasivos a los servicios para que los nuevos clientes puedan obtener los datos adicionales mientras que los clientes antiguos pueden actualizar en su tiempo libre?
Sugeriría que es posible que el cliente lo esté manipulando sin usar una interfaz SOAP y tal vez analice la respuesta mediante un horrible análisis manual/fudge de expresión regular (es increíble la cantidad de gente que hace eso). Lo digo porque regularmente creo interfaces SOAP de clientes y servidores en C#, PHP, Perl y JavaScript en sistemas Unix y Windows (para aplicaciones web, servidor y en aplicaciones cliente de escritorio) y nunca me he encontrado con este problema (agregando campos opcionales en la solicitud o respuesta nunca ha causado un problema). Les preguntaría qué cliente SOAP están usando. :-) –