PHP SoapClient using white spaces [duplicate]

The WSDL requires the following parameters:

<soapenv:Body>
  <cai3:Set> 
    <cai3:MOId>
            <gsm:param1>?</gsm:param1>
    </cai3:MOId>
    <cai3:MOAttributes>
      <gsm:setSubscription a="?">
        <gsm:custId>?</gsm:custId>
      </gsm:setSubscription>
    </cai3:MOAttributes>
  </cai3:Set>
</soapenv:Body>

Using this simple SOAP client call:

$params  = array(
        'MOId' => array
        (
          'param1' => "test1",
        ),
        'MOAttributes' => array 
        (
           'setSubscription a=123' => array 
            (
              'custId' => '123456'
            )
        )
);

$client = new SoapClient
        ($wsdl, 
        array(
            'location' => "http://$ip:8080/services/CAI3G1.2",
            'uri'      => "http://$ip:8080/services/CAI3G1.2",
            'exceptions' => true,
            'cache_wsdl' => WSDL_CACHE_NONE,   
            'connection_timeout' => 5,
            'trace'    => 1,
            'encoding'=>' UTF-8'
    ));    
try {
  $response = $client->Set($params);
} catch(Exception $e){
  if ($debug) print_r($e);
  return $e;
}

this is the following error:

[faultstring] => SOAP-ERROR: Encoding: object has no 'setSubscription' property

it seems like the white space in the XML parameter 'setSubscription a=123' is not accepted by the WSDL, is there an encoding issue here?

NOTE: if I put the same request on soapUI client, it works fine, here is my SOAPUI request XML:

  <soapenv:Body>
      <cai3:Set>
         <cai3:MOId>
            <gsm:param1>test1</gsm:param1>
         </cai3:MOId>
         <cai3:MOAttributes>
            <gsm:setSubscription a="123">
               <gsm:custId>123456</gsm:custId>
            </gsm:setSubscription>
         </cai3:MOAttributes>
      </cai3:Set>
   </soapenv:Body>