WSDL Diff & Impact Tool

What is Considered an Impact?

An operation is considered impacted if an old client cannot call it on an updated server, or an updated client cannot call it on an old server.

For instance, an updated request can have a new element which the old server doesn't expect, and the parsing fails. Equally possible that a response contains a structure that the client cannot parse - either because it was added in the updated WSDL or removed from it.

Most of meta-information can be updated in the WSDL - port type and binding names, operations names, even the WSDL target namespace - but that not necessary breaks the compatibility.

As long as the on-the-wire structure of a call remains the same, the operation is considered not impacted.

Added/Removed Operations

Added operations are impacted only when an updated client tries to use them on an old server - the server cannot find those operations.

Removed operations are impacted when an old client tries to use them on an updated server.

Relaxed Implementations

Note that some implementations are relaxed and permit particular incompatibilities without breaking the execution.

MockMotor WSDL Diff evaluates the impact from the most strict possible point of view - the XSD schema and WSDL properties.

It may happen that, despite WSDL Diff reports a breaking change, the actual code still works. That however may still mean that other, more strict, WSDL implementations can fail when trying to communicate with the relaxed implementation.

MAYBE Impacts

In some cases the change is too complicated for the code to tell if it is a breaking one. For example, a complex type restriction defined as a regular expression update: it is outside of WSDL Diff capabilities to find out if the two regular expressions are subsets of one another, and so the change is marked as MAYBE.

Another MAYBE case is a missing schema type. When WSDL Diff cannot resolve a type, it marks the change as MAYBE because it has not enough information to tell for sure.