无法将WSDL导入Visual Studio 2012

时间:2013-10-23 13:20:40

标签: web-services visual-studio wsdl

尝试与基于PHP SOAP的Web服务集成。客户端给了我一个WSDL文件的URL,它似乎向W3C Standard for WSDL确认。

我正在使用高级对话框中的添加网络参考选项添加参考。当我添加URL时,对话框中的Web浏览器显示WSDL规范中的两个方法,但右侧的状态区域中有一条错误消息,并且添加引用按钮被禁用

enter image description here

错误讯息:

The document at the url http://www.NAMEHERE.com/NAME/xml/test.php?wsdl was not 
recognized as a known document type.
The error message from each known type may help you fix the problem:
- Report from 'XML Schema' is 'The root element of a W3C XML Schema should be <schema> and its nam

如果我通过在线WSDL验证器运行WSDL,它似乎是正确的,就像我说的那样,它似乎符合标准。

此外,我尝试使用WSDL.EXE命令行并尝试使用SOAP,SOAP12,HTTPGET和HTTPPOST协议,每次都会收到相同的错误消息。

WSDL摘录在这里:

<?xml version="1.0" encoding="ISO-8859-1"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:tns="http://www.NAMEHERE.com/NAME/xml/namespace" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns="http://schemas.xmlsoap.org/wsdl/" 
targetNamespace="http://www.NAMEHERE.com/NAME/xml/namespace">
<types>
<xsd:schema targetNamespace="http://www.NAMEHERE.com/NAME/xml/namespace">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
<xsd:complexType name="AddressWO">

....

cilent表示他们没有遇到任何其他合作伙伴的问题,他们都能够成功整合。虽然,它们是PHP到PHP。

我搜索了SO并且无法找到相同的问题明确(或任何合适的答案)。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在花了相当多的时间之后,事实证明WSDL并不完美。在Visual Studio导入之前,我们的业务合作伙伴需要对WSDL进行一些小的修正。

问题是他们在元素上有一个 minOccurs 属性,在该场景中无效。

这里要注意的是,一些在线验证器表示WSDL是有效的,我们尝试的PHP客户端也是如此。

然后,我们在 JDK 1.6 +中使用了 WLIMPORT 程序,这给出了WSDL中非常详细的错误列表,指出了问题的确切原因。

因此,我们的业务合作伙伴在最终更正了规范,现在Visual Studio成功导入了WSDL。

希望这有帮助。