Ciao,
sto cercando di sviluppare un server soap e per farlo mi affido per la generazione del wsdl alla libreria nusoap di php. Non ho mai lavorato con un server soap, ma sempre con il client e quindi mi mancano dei concetti che vorrei capire...mi spiego con u esempio:

Vorrei ricevere un xml di questo genere e rispondere di conseguenza

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<document>
<ReselledBy>10001</ReselledBy>
<Package>1001</Package>
<ItneServiceName name="MYSERVICE">
<entrys>
<entry>
<Action>Add</Action>
<Item>Oggetto1</Item>
</entry>
<entry>
<Action>Del</Action>
<Item>Oggetto2</Item>
</entry>
</entrys>
</ItneServiceName>
</document>
1° problema:con Nusoap specifico con i tipi complessi gli elementi, ma come posso definire ad esempio i figli di un elemento? (entry ha 2 figli Action e Item)

Detto questo, ho generato il server soap con il relativo wsdl (chiaramente con un elemento unico ReselledBy). Poi, ho definito la funzione che ho messo a disposizione e qui mi chiedo...se definisco l'elemento "ReselledBy", ma poi la funzione si aspetta il parametro "PIPPO", perchè devo definire gli elementi??


vi mostro il server creato

Codice PHP:
require_once("lib/nusoap.php");

define("NAMESPACE""http://localhost/nusoap");
$SoapServer = new soap_server;

$SoapServer->debug_flag=true;

$SoapServer->configureWSDL("ManageSelf", NAMESPACE); 
$SoapServer->wsdl->schemaTargetNamespace = NAMESPACE; 

$SoapServer->wsdl->addComplexType(
    
"utente",
    
"complexType",
    
"struct",
    
"all",
    
"",
array(
"ItnServiceReselledBy"=>array("name"=>"ReselledBy","type"=>"xsd:string")),
    
""); 

 
$SoapServer->register(
    
"GetPost",
    array(
'ResId'=>'xsd:int','PckId'=>'xsd:int'), 
     array(
'return'=>'tns:risposta'), 
      NAMESPACE);




 function 
GetPost($Resid,$PckId
  {
  
$value=$Resid."::".$PckId;
  return 
$value;
  } 
$HTTP_RAW_POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
$SoapServer->service($HTTP_RAW_POST_DATA);
exit();