如果我更改WSDL的targetNamespace,它会破坏现有的消费者吗?

时间:2012-02-29 14:26:09

标签: soap wsdl soa

我目前正在为我的组织制定SOA版本控制策略。我正在尝试确定我们应该在WSDL中存储版本号(Major.Minor)的位置。将对服务接口进行不间断的更改(即添加新操作),对于这些不间断的更改,我们只会增加次要编号。我们正在考虑使用WSDL的targetNamespace来存储版本,但我们担心将WSDL的targetNamespace从1.0更改为1.1可能会导致某些客户端发生重大变化。

任何人都可以告诉我更改WSDL的targetNamespace将对该特定Web服务的现有使用者产生的影响。我使用WCF运行了一些测试,我发现它不会破坏使用该服务的现有应用程序。但是,我想知道其他非.NET客户端是否仍然如此?

注意:我确实意识到更改WSDL引用的XSD的targetNamespace确实会导致更改。

1 个答案:

答案 0 :(得分:2)

将主版本号放在命名空间中。将major和minor放在文档元素中。 Thomas Erl写了一本很棒的书,涵盖了这类内容:Web Service Contract Design and Versioning for SOA。关于本书的最好的事情是,它会让你思考你可能没有考虑过的事情,比如你计划/想要使用严格的,向后兼容的或向前兼容的版本控制策略以及每个版本的含义。