0

我正在尝试从 WSDL + 一些 XSD 生成 .NET WS 客户端。我尝试了两种方法,结果相同:添加 Web 引用和 WSDL.EXE 我尝试了不同的框架版本、IDE 版本和不同的方法(WCF 和旧式 WS)。

这些工具生成两个具有正确操作和 XSD 模式中定义的所有类型的接口,但没有一个类型包含我在模式中定义的成员。

我的 WSDL + XSD 在 java 平台(通过 cxf、axis 的 jax-ws)上运行良好,我可以生成客户端和发布者。

可以通过soapUI 使用已发布的服务,它会生成正确的请求(所有成员都在模式中定义)。

即使我使用已发布的 WSDL url 而不是本地文件,工具也会给出相同的结果。

更新
我试图避免wsdl:import并且我构建了一个有效的单文件 WSDL。结果相同。

关于这个问题的另一个考虑是我使用类型继承xsd:extension。使用此功能生成 .Net WS 客户端是否存在问题?

4

1 回答 1

0

根据对另一个问题的回答的建议(不是标记为正确的问题,而是我在 wsdl.exe 上赞成的错误:无法从命名空间 '...' 导入绑定 '...'),我验证了WSDL 并发现消息部分名称都具有相同的名称parameters(我已经通过 Eclipse IDE 创建了 WSDL)。

wsdl:part我将我的 s 中的名称更改为wsdl:message在 wsdl 中是唯一的,并且 .Net 类是从 IDE 或 WSDL.EXE 工具正确生成的(包含所有成员)。

没有发现关于消息部分名称的限制;在这里http://msdn.microsoft.com/en-us/library/ms996486.aspx我发现了一段 WSDL 应该重现相同的行为,但没有关于限制的警告。

于 2013-05-13T13:18:28.680 回答