我们项目的要求之一如下:
我们只从客户端WSDL和XSD文件获得。我们的任务是基于这些WSDL和XSD文件生成SOAP消息并提取SOAP主体。
我们应该采取的第一步是从给定的WSDL和XSD文件生成客户端代理文件。主WSDL文件有多个导入,导入的XSD文件也有一些导入。我试图使用SvcUtil.exe实用程序生成客户端代理文件,但错误出现了。
我以这种方式运行了SvcUtil.exe:
E:\ Projekti \ WCF \ XSD> svcutil / noconfig rosrazna.ru.xsd.SmevUnifoService.wsdl roskazna.ru.xsd.ResponseTemplate.xsd roskazna.ru.xsd.PGU_ImportRequest.xsd roskazna.ru.xsd.PGU_DataRequest。 xsd roskazna.ru.xsd.PGU_ChargesResponse.xsd roskazna.ru.xsd.ExportPaymentsResponse.xsd roskazna.ru.xsd.ExportIncomesResponse.xsd roskazna.ru.xsd.ExportQuittanceResponse.xsd roskazna.ru.xsd.Ticket.xsd
但是,出现了这个错误:
Microsoft(R)服务模型元数据工具 [Microsoft(R)Windows(R)Communication Foundation,Version 3.0.4506.2152] 版权所有(c)Microsoft Corporation。保留所有权利。
生成文件...... 警告:未生成任何代码。 如果您尝试生成客户端,这可能是因为元数据文档 ments不包含任何有效的合同或服务 或者因为发现所有合同/服务都存在于/ reference assembl中 IES。验证您是否已将所有元数据文档传递给该工具。
警告:如果您想从模式生成数据合同,请确保 使用/ dataContractOnly选项。
我必须提到我没有在SvcUtil.exe命令中将导入的XSD文件导入主WSDL文件中。我不知道如何把它们放进去。
那么,如何解决这个问题呢?
提前谢谢。
戈兰
答案 0 :(得分:5)
@Goran,将所有引用的xsd文件复制到与wsdl相同的位置。然后,当从命令提示符下使用svcutil时,列出所有xsds,或者放一个* .xsd,如下所示:
E:\Projekti\WCF\XSD>svcutil /noconfig goransWsdl.wsdl *.xsd
PS:你似乎已经提到了所有的xsds。