我试图从WSDL +某些XSD生成.NET WS客户端。 我尝试了两种具有相同结果的方法:添加Web引用和WSDL.EXE 我尝试过不同的框架版本,IDE版本和不同的方法(WCF和旧式WS)。
这些工具生成两个具有正确操作的接口和XSD架构中定义的所有类型,但这些类型都不包含我在架构中定义的成员。
我的WSDL + XSD在java平台上运行良好(jax-ws通过cxf,axis),我可以生成客户端和发布者。
已发布的服务可以通过soapUI使用,它可以生成正确的请求(所有成员都在模式中定义)。
即使我使用已发布的WSDL url而不是本地文件,工具也会给出相同的结果。
更新:
我试图避免使用wsdl:import
并构建了一个有效的单个文件WSDL。结果相同。
关于这个问题的另一个考虑是我使用xsd:extension
的类型继承。是否存在使用此功能生成.Net WS客户端的问题?
答案 0 :(得分:0)
根据对另一个问题的答案的建议(不是标记为正确,但我在wsdl.exe Error: Unable to import binding '...' from namespace '...'投票的那个),我验证了WSDL并发现消息部分名称具有相同的名称parameters
(我已经创建了Eclipse IDE的WSDL)。
我将wsdl:part
中wsdl:message
的名称更改为wsdl中的唯一名称,并且.Net类是通过IDE或WSDL正确生成的(包含所有成员)。 EXE工具。
没有找到有关此消息部分名称限制的提及;这里http://msdn.microsoft.com/en-us/library/ms996486.aspx我发现了一个WSDL应该重现相同的行为,但没有关于限制的警告。