使用soap和wsdl的web服务无法正常工作php
问题描述:
我正在尝试使用wdsl和soap创建一个web服务。服务器将用php编写。使用soap和wsdl的web服务无法正常工作php
截至目前,我正在尝试通过向肥皂服务器对象添加一个函数来进行操作。我的要求是这个函数应该使用一个关联数组。现在它返回一个字符串,但它现在只是试用版,并且将按照需求返回一个数组。
为了将assoc数组作为输入,我在wsdl中定义了一个complexType。 以下是代码
<types>
<xsd:schema
targetNamespace="http://projects.kp/test/webservice/StoreService.wsdl"
xmlns="http://www.w3.org/1999/XMLSchema/">
<xsd:complexType name="store">
<xsd:element name="name" type="xsd:string" />
<xsd:element name="subdomain" type="xsd:string" />
</xsd:complexType>
</xsd:schema>
</types>
<message name="StoreRequest">
<part name="store" type="tns:store"/>
</message>
<message name="StoreResponse">
<part name="url" type="xsd:string"/>
</message>
当我运行在浏览器中SOAP客户端文件,它提供了以下错误。
Fatal error: Uncaught SoapFault exception:
[WSDL] SOAP-ERROR: Parsing Schema: unexpected in complexType
如果我使用字符串数据类型而不是complexType,它可以正常工作。 我想我还没有理解complexTypes是如何工作的,所以我无法调试这个。
此外,我想知道如果数组作为请求和响应类型将工作,如果客户端编码为其他语言如.NET。
(现在我的虚拟主机上的Ubuntu桌面上测试这一点,并在服务器和客户端在同一个虚拟主机,并在PHP书面)
感谢
答
我认为你需要设置XSD:所有或XSD:序列前的xsd:??
是元素这是你的WSDL为什么你使用`在消息元素的`part` type`这是在RPC /编码中使用。你是使用RPC还是doc/literal?如果你使用doc而不是替换为` `。也是tns前缀绑定到targerNamespace? –
Cratylus
2011-01-08 14:50:32