I have spent some time on this particular subject, and found some guidelines in a book by Thomas Erl which I refer to at the bottom. Here is what they have to say;
Compatible Changes
- adding a new WSDL operation definition and associated message definitions
- adding a new WSDL port type definition and associated operation definitions
- adding new WSDL binding and service definitions
- adding a new optional XML Schema element or attribute declaration to a message definition
- reducing the constraint granularity of an XML Schema element or attribute of a message definition type
- adding a new XML Schema wildcard to a message definition type
- adding a new optional WS-Policy assertion
- adding a new WS-Policy alternative
Incompatible Changes
- renaming an existing WSDL operation definition
- removing an existing WSDL operation definition
- changing the MEP of an existing WSDL operation definition
- adding a fault message to an existing WSDL operation definition
- adding a new required XML Schema element or attribute declaration to a message
definition
- increasing the constraint granularity of an XML Schema element or attribute declaration
of a message definition
- renaming an optional or required XML Schema element or attribute in a message
definition
- removing an optional or required XML Schema element or attribute or wildcard
from a message definition
- adding a new required WS-Policy assertion or expression
- adding a new ignorable WS-Policy expression (most of the time)
There is a great book on this particular subject from Thomas Erl et al; The name is Web Service Contract Design & Versioning for SOA.
HTH.
Disclaimer: As I've mentioned, this is work done by the authors of the book and I'm merely sharing it. I'm also not affiliated in anyway; just liked the book :)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…