据我所知,没有符合 SOAP/WSDL 标准的东西。但是存在解决此类问题的工具。例如,在 Glassfish 中,您可以指定XSL样式表来转换 Web 服务的请求/响应。其他解决方案(例如 Oracle SOA 套件)提供了更精细的工具来管理 Web 服务的版本控制和组件的集成。消息可以自动路由到不同版本的 Web 服务和/或转换。您将需要检查您的目标基础设施提供什么。
编辑:
XML 和 XSD 在模式演变方面比面向对象语言中的类型和序列化更灵活。有些东西可以通过简单地将它们声明为可选来向后兼容,例如
- 将参数添加到现有函数- 如果参数是可选的,
null
如果客户端不发送它,您将获得一个值
- 将变量添加到现有函数中使用的现有结构- 如果该值是可选的,
null
则如果客户端不提供它,您会得到
- 删除功能- 这里没有魔法
- 从现有函数中删除参数- 根据新定义,客户端发送的参数将是多余的,将被省略
- 从现有结构中删除现有函数中使用的变量- 在这种情况下我不知道
- 更改现有函数中使用的参数类型- 这取决于更改。对于简单类型,序列化/反序列化可能仍然有效,例如 String 到 int。
请注意,我不是 100% 确定该列表。但是一些测试可以告诉你什么有效,什么无效。关键是 XML 是通过网络发送的,因此它提供了一些灵活性。