test.php -------- 'TestAbstractRequest', 'Grandfather' => 'Grandfather', 'Father' => 'Father', 'Child' => 'Child'); $server = new SoapServer('test.wsdl', array('classmap' => $classmap)); $server->addFunction('testAbstract'); $server->handle(); }else{ header('Content-Type: text/plain'); error_log('client'); $classmap = array('TestAbstractResponse' => 'TestAbstractResponse'); $client = new SoapClient('test.wsdl', array('classmap' => $classmap)); $child = new Child(); $child->name = 'test'; $child->number = 5; $request = new TestAbstractRequest(); $request->element = $child; try { print_r( $client->testAbstract($request)); } catch (Exception $e) { print_r( $client->__getLastResponse()); print_r($e); } } test.wsdl ---------