/**
  *
  * @param
  * @return
  * @access private
  */
 function _encodeValue($value)
 {
     $response = '<value>';
     if (is_array($value)) {
         $isArray = true;
         $datas = array();
         $structkeys = array();
         foreach ($value as $key => $val) {
             if (!is_numeric($key)) {
                 $isArray = false;
             }
             $structkeys[] = '<name>' . $key . '</name>';
             $datas[] = CopixXmlRpc::_encodeValue($val);
         }
         if ($isArray) {
             $response .= '<array><data>' . implode(' ', $datas) . '</data></array>';
         } else {
             $response .= '<struct>';
             foreach ($datas as $k => $v) {
                 $response .= '<member>' . $structkeys[$k] . $v . '</member>';
             }
             $response .= '</struct>';
         }
     } else {
         if (is_bool($value)) {
             $response .= '<boolean>' . ($value ? 1 : 0) . '</boolean>';
         } else {
             if (is_int($value)) {
                 $response .= '<int>' . intval($value) . '</int>';
             } else {
                 if (is_string($value)) {
                     $response .= '<string>' . htmlspecialchars($value) . '</string>';
                 } else {
                     if (is_float($value)) {
                         $response .= '<double>' . doubleval($value) . '</double>';
                     } else {
                         if (is_object($value)) {
                             switch (get_class($value)) {
                                 case 'copixdatetime':
                                     $response .= '<dateTime.iso8601>' . $value->toString($value->ISO8601_FORMAT) . '</dateTime.iso8601>';
                                     break;
                                 case 'copixbinary':
                                     $response .= '<base64>' . $value->toBase64String() . '</base64>';
                                     break;
                             }
                         }
                     }
                 }
             }
         }
     }
     return $response . '</value>';
 }