Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WSDL在Visual Studio 2010中出现错误。数组语法不正确?_.net_Visual Studio_Web Services_Soap_Wsdl - Fatal编程技术网

.net WSDL在Visual Studio 2010中出现错误。数组语法不正确?

.net WSDL在Visual Studio 2010中出现错误。数组语法不正确?,.net,visual-studio,web-services,soap,wsdl,.net,Visual Studio,Web Services,Soap,Wsdl,我已经接管了对web应用程序的支持,它包括一个SOAP web服务。soap服务器是使用SoapServer在PHP中编码的(http://php.net/manual/en/soapserver.soapserver.php)并且可以正确地使用PHP作为soap客户端。但是现在我尝试在VisualStudio2010中使用WSDL,尽管VisualStudio能够看到WSDL中定义的所有方法,但当我附加web引用时,.Net应用程序在我尝试编译时抛出一个错误。引发的错误如下所示: <s:

我已经接管了对web应用程序的支持,它包括一个SOAP web服务。soap服务器是使用SoapServer在PHP中编码的(http://php.net/manual/en/soapserver.soapserver.php)并且可以正确地使用PHP作为soap客户端。但是现在我尝试在VisualStudio2010中使用WSDL,尽管VisualStudio能够看到WSDL中定义的所有方法,但当我附加web引用时,.Net应用程序在我尝试编译时抛出一个错误。引发的错误如下所示:

<s:complexType name="ArrayOfPost">
    <s:sequence>   
        <s:element minOccurs="0" maxOccurs="unbounded" name="Post" nillable="true" type="tns:Post" />
    </s:sequence>
</s:complexType>
自定义工具错误:无法导入WebServiceSchema。无法从命名空间“”导入绑定“ApolloSoap”http://clientdomain/soap/export'. 无法导入操作“getPosts”。数据类型'http://clientdomain/soap/export/:getPostsArray“不见了

我将发布WSDL文档的源代码(请注意,我已对源代码进行了删节,因为它非常庞大。我已删除了WSDL中与其他方法相关的所有内容,以尝试关注错误消息中报告的方法。)


功能(“getPosts”)
功能(“getPosts”)
有谁能帮我找出这个WSDL文档的错误,以及为什么.Net没有看到getPostsArray的定义,尽管它是在文档的类型部分定义的

更新:

我怀疑visual Studio出现问题的原因如下:

<s:restriction base="soapenc:Array">
    <s:attribute ref="soapenc:arrayType" wsdl:arrayType="tns:post[]"/>
</s:restriction>

我之所以怀疑这些行,是因为当我在Visual Studio中创建一个简单的web服务时,我看到为数组生成的代码如下所示:

<s:complexType name="ArrayOfPost">
    <s:sequence>   
        <s:element minOccurs="0" maxOccurs="unbounded" name="Post" nillable="true" type="tns:Post" />
    </s:sequence>
</s:complexType>


有谁能解释一下定义复杂类型数组的这两种不同方法,并确认/否认我的WSDL文档中的语法不正确吗?

Visual Studio告诉您的是事实。以下是XMLSpy所说的:

文件Untitled1.wsdl无效。
无效的XML架构:“tns:getPostsArray”必须引用现有的简单或复杂类型。

是否看到
getPostArray
complexType
?我不知道。谢谢你,约翰的答复。我只是通过比较我的WSDL文档和VisualStudio生成的文档发现了这一点。基本上,我需要删除周围的名称,然后将名称添加到复杂类型中,以便它可以读取。这同样适用于复杂类型的职位。一旦我做了这些更改,WSDL就工作了。:)谢谢你在这方面的帮助。