Changes that Do Not Change the Service Interface

You can make any changes that do not affect the service interface without having any effect on application upgrade.

Such changes include:

  • Adding a new operation - a Receive Task/event handler - to an existing operation.
  • Adding or removing any tasks except incoming message activities.
  • Changing the flow of logic within the process.
  • Changing the place of incoming message activities within the process - provided no incoming message activities are added or removed, they can be moved around without affecting the interface.
  • Changing the fields or layout of forms.
  • Changing scripts.
  • Making changes to the schema (BOM) that have no bearing on the WSDL.
  • Changes in the way that an XSD type is expressed that do not change its meaning.
  • The sequence of root (top-level) element definitions within an XSD.
  • Changes in annotations.
  • (In a concrete WSDL) Changing the SOAP version used by a binding.

This is a list of possible changes to the elements:

WSDL: Definitions

  • Target namespace has to match (but not the prefix).
  • PortTypes can appear in any order.
  • You can add a new PortType. For generated WSDLs, a port type is synonymous with the source process.

WSDL: PortType

  • Operations can appear in any order.
  • You can add a new Operation for WSDLs generated from processes, Operation is synonymous with incoming-message-activity.

WSDL: Operation

  • Input/Output for WSDLs generated from processes input/output/fault data is synonymous with the formal parameters associated with incoming message activities and throw error events.
    • Can appear in any order within the Operation.
    • Faults, if present, have to match and their corresponding messages have to be identical (can appear in any order).

WSDL: Message

  • Target namespace has to match (but not the prefix).
  • Parts have to be identical and in the same order.

XSD: Element

  • Target namespace has to match (but not the prefix).

XSD: ComplexType

  • ComplexType name has to match if directly referenced from a message part.
  • Target namespace needs to match, but not the prefix.

XSD: SimpleType

  • SimpleType name does not have to match.
  • Target namespace and prefix does not have to match (provided that the underlying type and restrictions are identical).