【发布时间】:2012-03-19 00:59:23
【问题描述】:
我目前正在为我的组织制定 SOA 版本控制策略。我试图确定我们应该在 WSDL 中存储版本号(Major.Minor)的位置。将对服务接口进行非破坏性更改(即添加新操作),对于这些非破坏性更改,我们将只增加次要编号。我们正在考虑使用 WSDL 的 targetNamespace 来存储版本,但我们担心将 WSDL 的 targetNamespace 从 1.0 更改为 1.1 可能会导致某些客户端发生重大更改。
谁能告诉我更改 WSDL 的 targetNamespace 将对该特定 Web 服务的现有使用者产生的影响。我使用 WCF 运行了一些测试,发现它不会破坏使用该服务的现有应用程序。但是,我想知道其他非.NET 客户端是否仍然如此?
注意:我确实意识到更改 WSDL 引用的 XSD 的 targetNamespace 确实会导致重大更改。
【问题讨论】:
-
是的,它会的。名称相同但命名空间不同的两个元素是不同的元素。
-
不确定我是否理解您的回复。你是说这可能会破坏一些现有的消费者吗?你说的两个元素是什么?我建议更改现有 WSDL 端点的 targetNamespace,而不是创建新端点。
-
我指的是 WSDL 中定义的任意两个元素。例如,如果您更改 WSDL 的
targetNamespace,您将更改消息、绑定、端口类型等的命名空间。