/**
  *
  * @param
  * @return
  * @access private
  */
 function _decodeValue($valuetag)
 {
     $childs = $valuetag->childs();
     $value = null;
     if (count($childs)) {
         switch ($childs[0]->name()) {
             case 'I4':
             case 'INT':
                 $value = intval($childs[0]->content());
                 break;
             case 'DOUBLE':
                 $value = doubleval($childs[0]->content());
                 break;
             case 'STRING':
                 $value = html_entity_decode($childs[0]->content());
                 break;
             case 'BOOLEAN':
                 $value = intval($childs[0]->content()) ? true : false;
                 break;
             case 'ARRAY':
                 $value = array();
                 if (isset($childs[0]->DATA->VALUE)) {
                     $listvalue = is_array($childs[0]->DATA->VALUE) ? $childs[0]->DATA->VALUE : array($childs[0]->DATA->VALUE);
                     foreach ($listvalue as $val) {
                         $value[] = CopixXmlRpc::_decodeValue($val);
                     }
                 }
                 break;
             case 'STRUCT':
                 $value = array();
                 if (isset($childs[0]->MEMBER)) {
                     $listvalue = is_array($childs[0]->MEMBER) ? $childs[0]->MEMBER : array($childs[0]->MEMBER);
                     foreach ($listvalue as $val) {
                         if (isset($val->NAME) && isset($val->VALUE)) {
                             $value[$val->NAME->content()] = CopixXmlRpc::_decodeValue($val->VALUE);
                         }
                     }
                 }
                 break;
             case 'DATETIME.ISO8601':
                 $value = new CopixDateTime();
                 $value->setFromString($childs[0]->content(), $value->ISO8601_FORMAT);
                 break;
             case 'BASE64':
                 $value = new CopixBinary();
                 $value->setFromBase64String($childs[0]->content());
                 break;
         }
     } else {
         $value = $valuetag->content();
     }
     return $value;
 }