Tengo algunas dudas con respecto a un servicio web que estoy implementando. Os dejo parte del código del servidor/cliente, que seguro que es más facil explicarme con él.
Servidor:
Código PHP:
   $server->register('getXML', //Nombre del metodo
                  array (), //Parametros de entrada
                  array('xml1' => 'xsd:string',
                        'xml2' => 'xsd:string'), //Parametros de salida
                  "uri:$miUrl", //Namespace
                  "uri:$miUrl#getXML", //Soapaction
                  'rpc', //style
                  'encoded'
                  );
function getXML ()
{
    //URL donde se encuentra el XML
    $pathxml = './XML/XML1.xml';
    $pathxml2 = './XML/XML2.xml';
    if (file_exists($pathxml) && file_exists($pathxml2)) {
        $xml = cargarXML($pathxml);
        $xml2 = cargarXML($pathxml2);
    } else {
        echo "No se encuentra el fichero XML <br />";
    }
    $respuesta = array(new soapval('xml1', 'xsd:string', base64_encode($xml)), new soapval('xml2', 'xsd:string', base64_encode($xml2)));
    //Como $xml es un string, el tipo de datos del valor de sopa es xsd:string
    return $respuesta;
} 
    Código PHP:
   $parametros = array();
//1. Llamar a la funcion getXML del servidor
$result = $client->call(
              'getXML', //Metodo a llamar
              $parametros, //Parametros de entrada
              "uri:$server_url/$server_script", //Namespace
              "uri:$server_url/$server_script#getXML" //Soapaction
        );
if (isset($result)) //ESTO NO SE SI ESTARÁ BIEN
{
    $string_dec = base64_decode($result[0]);
    $sxml = simplexml_load_string($string_dec);
    $dom = importarSimpleXML($sxml);
    $string_dec = base64_decode($result[1]);
    $sxml = simplexml_load_string($string_dec);
    $dom2 = importarSimpleXML($sxml);
} 
    El Servidor publica un servicio que devuelve dos XML codificados como strings, y tengo dos dudas:
1. La funcion getXML() devuelve un array ($respuesta) con los dos strings, pero al publicar el servicio, hay que hacer alguna referencia a $respuesta? O Está correctamente hecho en el código?
2. Cuando el cliente llama al servicio ($client->call()), se le devuelve $result. Esa variable ($result) es un array con los dos strings? Es decir, se pueden acceder a ellos como $result[0] y $result[1]?
Muchas gracias de antemano!
 

