web-dev-qa-db-ja.com

SOAP serverのWSDLファイルを作成しています

私はWebサービス全体に慣れていないので、これまで理解できる限り問題を説明しようと思います。

PHPでSOAPサーバーを作成しました。

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ファイルを作成する必要があります。私はこのWebサービス領域全体について少し知識があると言わなければならないので、どんな助けにも感謝します。

W3Cドキュメントに精通している http://www.w3schools.com/webservices/ws_wsdl_documents.asp

前もって感謝します。

更新:一部のWSDLジェネレータを検索しようとしましたが、何も動作していないようです。

10

解決済み

PhpWsdlと呼ばれる単純なライブラリがうまく機能しました。

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

9