function getSome () {
$result[] = array("id"=>1, "name"="alexander");
$result[] = array("id"=>2, "name"="tanya");
$result[] = array("id"=>2, "name"="maxim");
return $result;
}
ini_set("soap.wsdl_cache_enabled", "0"); // отключаем кэширование WSDL
try {
$server = new SoapServer("index.wsdl");
$server->addFunction("getSome");
$server->handle();
} catch (SoapFault $fault) {
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_ERROR);
}
Для описания данных использую стиль «document». Не получается описать возвращаемые данные. Что получилось сейчас:
....
<!--Определение исходящего сообщения-->
<wsdl:message name="getSomeSoapOut">
<wsdl:part name="parameters" element="tns:getSomeSoapOut"/>
</wsdl:message>
...
<!--Схема данных используемая в исходящем сообщении-->
<s:element name="getSomeSoapOut">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="array">
<s:complexType mixed="true">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="id" type="s:number"/>
<s:element minOccurs="1" maxOccurs="1" name="name" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
...