Как изменить имя в WSDL, сгенерированном Zend_Soap_AutoDiscover - PullRequest
0 голосов
/ 10 декабря 2010

Я пытаюсь подключить PHP-сервер мыла с клиентом, написанным на C #.WSDL создается таким образом:

$autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex');
$autodiscover->setClass('Soap_Service1');
$autodiscover->handle();

, затем я получаю:

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:tns="http://www.xx.de/soap/version/1" 
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    targetNamespace="http://www.xx.de/soap/version/1"
    name="Soap_Services1" 
>

этот атрибут 'name = "Soap_Services1"', проанализированный в C #, выглядит уродливо (Services.Soap_Services1Service)Конечно, имя связано с ServiceBinding и PortType.Есть ли способ изменить его без ручного взлома библиотеки Zend?

Ответы [ 3 ]

1 голос
/ 10 декабря 2010

Да.Просто переименуйте свой класс обслуживания;)

$autodiscover->setClass('CoolServiceName');

даст вам

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:tns="http://www.xx.de/soap/version/1" 
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    targetNamespace="http://www.xx.de/soap/version/1"
    name="CoolServiceName" 
>
0 голосов
/ 06 мая 2011

Все, что вам нужно сделать, это переименовать ваш класс обслуживания (тот, который установлен вызовом setClass ()), и вы в порядке.

0 голосов
/ 10 декабря 2010

Поскольку вы используете создателя службы автообнаружения / волшебного мыла, вы не можете переопределить имена, которые он создает как есть.

Если вы хотите сделать это, вы можете расширить Zend_Soap_AutoDiscover и реализовать свой собственный метод setClass, который использует ваш собственный выбор имени при генерации wsdl.

...