Создание файла WSDL для сервера SOAP


Я новичок во всем этом веб-сервисе, поэтому я постараюсь объяснить свою проблему настолько, насколько я могу ее понять до сих пор.

Я создал Soap-сервер на PHP:

try {
    $server = new SOAPServer(
        'webservice.wsdl',
        array(
            'uri' => 'http://example.com/soap/server.php'
        )
    );

    $server->setClass('soap');
    $server->handle();
} catch (SOAPFault $f) {
    print $f->faultstring;
}

Тогда у меня есть класс Soap для сервера:

class soap 
{
    public function sendOrders($sXml) 
    {        
        $oXml = new SimpleXMLElement($sXml);
        $sOrder = $oXml->children(); 
        $sResult = '';

        foreach ($sOrder as $OrderRow) {
            $sOrderNr = $OrderRow->ORDERNR;
            $sState = $OrderRow->STATE;
            $sTimestamp = $OrdeRow->TIMESTAMP;

            $oOrder = new Order;
            $oOrder->load($sOrderNr);
            if ($sState == 1) {
                $oOrder->checkStatusChange('Approved', $oOrder);
                $oOrder->{$oOrder->getCoreTableName() . '__status'} = new Field('Approved');
                $sResult .= $sOrderNr . " 1 | ";
            } elseif ($sState == 0) {
                $oOrder->checkStatusChange('Declined', $oOrder);
                $oOrder->{$oOrder->getCoreTableName() . '__status'} = new Field('Declined');
                $sResult .= $sOrderNr . " 0 | ";        
            }

            $oOrder->save();
        }

        return $sResult;   
    }
}

У меня есть тестовый клиент, который отправляет простой XML в следующем формате:

<xml>
    <ORDER>
        <ORDERNR>9nmf997d997701e15e30edac107b3664</ORDERNR>
        <STATE>1</STATE>
        <TIMESTAMP>123456789</TIMESTAMP>
    </ORDER>
    <ORDER>
        <ORDERNR>9nmb1c3d4dfb067c04497ea51bd50d06</ORDERNR>
        <STATE>0</STATE>
        <TIMESTAMP>987654321</TIMESTAMP>
    </ORDER>
</xml>

Теперь мне нужно создать простой файл WSDL для "описания" сервиса. Я должен сказать, что у меня есть немного знаний обо всей этой области веб-сервисов, поэтому я был бы благодарен за любую помощь.

Я знаком с документацией W3C http://www.w3schools.com/webservices/ws_wsdl_documents.asp

Заранее благодарю вас.

Обновление: Я пытался найти некоторые генераторы WSDL, но, похоже, ни один из них не работает.

Author: zajonc, 2014-01-31

1 answers

Решено

Простая библиотека под названием PhpWsdl сделала свое дело.

Https://code.google.com/p/php-wsdl-creator/

 8
Author: falnyr, 2014-02-04 08:16:44