使用绑定文件从JAXB WSDL生成C#客户端代码

时间:2012-11-09 16:51:58

标签: c# jaxb wsdl

我有一个包含数十个XSD的WSDL,我需要从WSDL生成客户端代码以使用Web服务。 Web服务的所有者使用Java并使用JAXB生成WSDL / XSD。 JAXB为自定义绑定指定了“绑定文件”,并且所有者已生成要与WSDL一起使用的XJB文件(JAXB自定义绑定文件)。

我需要在C#中生成我的客户端代码,但是svcutil和Visual Studio的添加服务引用没有对此自定义绑定文件的任何规定。有一些工具可以生成Java客户端代码,这些代码将绑定文件作为参数,但没有用于生成C#的工具。我试着在没有指定XJB的情况下运行svcutil,但我无法让它工作。我做了大量的谷歌搜索,没有运气。关于如何使这项工作的任何想法?

2 个答案:

答案 0 :(得分:1)


You can customize WSDLs通过提供绑定声明,但这些是特定于Java的,并且仅在从WSDL生成Java代码时才适用自定义。绑定可以内联声明(嵌入在XSD / WSDL中)或单独的文件中。 你有一个单独的文件,所以我认为WSDL和XSD是" clean"。

JXB文件虽然是红鲱鱼。 WSDL应该是技术不可知的,它不关心Java,C#或其他什么。您应该能够生成代码,因为svcutil将忽略Java绑定。

svcutil会对你造成什么错误?当WSDL缺少<type>部分时,我发现它很难理解消息。您提到了几十个XSD文件,它们如何在WSDL中导入并进行导入?如果在Visual Studio中打开WSDL,它是否显示验证错误,是否有抱怨?

最后,如果一切都失败了,你可以将它全部(包括JXB文件)提供给像wsimport这样的Java工具,并从中获取一些Java文件。您可以快速deploy with Endpoint.publish然后将svcutil指向已部署的地址加?wsdl,看看是否得到了不同的结果。

答案 1 :(得分:0)

试试WSCF.blue并查看这是否对您的案例有用。请注意我不熟悉JABX,但是我正在使用这个工具来从wsdl生成C#中的代码。