getAccountReport($accountname); // we have to construct an object hierarchy that matches the // WSDL request. We can use SDO to do this for us // configure SDO based on the WSDL $xmldas = SDO_DAS_XML::create("AccountService.wsdl"); // Get a document that represents the request // and get the root element $requestxdoc = $xmldas->createDocument("getAccountReport"); $requestsdo = $requestxdoc->getRootDataObject(); // add the parameter $requestsdo['customerID'] = $accountname; // make the call $result = $client->getAccountReport($requestsdo); // now we have the result as a PHP object // we can turn this into an SDO but we have to do it manually // as the SOAP extension won't generate types for us // automatically just yet $responsexdoc = $xmldas->createDocument("getAccountReportResponse"); $responsesdo = $responsexdoc->getRootDataObject(); // flesh out the object hierarchy $account = $responsesdo->createDataObject ('result'); $checking = $account->createDataObject ('checking'); $saving = $account->createDataObject ('savings'); $stocks = $account->createDataObject ('stocks'); //copy the data $checking['accountNumber'] = $result->result->checking->accountNumber; $checking['balance'] = $result->result->checking->balance; //etc.. // This is a bit rubbish as we would want this to happen automatically // Now just put the data on the screen // To do this we don't need to use SDO as you can see but // it would be really handy if we wanted to pass the XML doc // onto another service or if we wanted to do some other // more complex XML manipulation or XPath searches echo "

Account $accountname

"; echo "

Checking Account

"; echo ""; echo ""; echo "
Account Number $checking->accountNumber
Balance $checking->balance

Saving Account

"; echo ""; echo ""; echo "
Account Number" . $result->result->savings->accountNumber . "
Balance" . $result->result->savings->balance . "

Stock Account

"; echo ""; echo ""; echo ""; echo ""; echo "
Account Number" . $result->result->stocks->accountNumber . "
Symbol" . $result->result->stocks->symbol . "
Quantity" . $result->result->stocks->quantity . "
Banalce" . $result->result->stocks->balance . "
"; } catch (SoapFault $f) { echo "Caught soap exception: \n"; print_r ( $f ); } } catch ( Exception $e ) { echo "Caught exception: \n"; print_r ( $e ); } ?>