public static function writeXMLElement(XMLWriter $xml, $data)
 {
     foreach ($data as $key => $value) {
         if (preg_match('/(\\d+)/', $key)) {
             $key = 'key_' . $key;
         }
         if (is_array($value)) {
             $xml->startElement($key);
             Com_Icodeecono_Api_ResponseFormatter_XMLApiResponseFormatter::writeXMLElement($xml, $value);
             $xml->endElement();
             continue;
         }
         $xml->writeElement($key, $value);
     }
 }
 private function packageAndOutputData()
 {
     if (!empty($this->_rawReturnData)) {
         if (is_array($this->_rawReturnData)) {
             switch ($this->_contentType) {
                 case Com_Icodeecono_Api_ApiContentTypes::CONTENT_TYPE_XML:
                     echo Com_Icodeecono_Api_ResponseFormatter_XMLApiResponseFormatter::formatResponse($this->_rawReturnData);
                     break;
                 case Com_Icodeecono_Api_ApiContentTypes::CONTENT_TYPE_CSV:
                     echo Com_Icodeecono_Api_ResponseFormatter_CSVApiResponseFormatter::formatResponse($this->_rawReturnData);
                     break;
                 case Com_Icodeecono_Api_ApiContentTypes::CONTENT_TYPE_JSON:
                     echo Com_Icodeecono_Api_ResponseFormatter_JSONApiResponseFormatter::formatResponse($this->_rawReturnData);
                     break;
                 case Com_Icodeecono_Api_ApiContentTypes::CONTENT_TYPE_HTML:
                     echo Com_Icodeecono_Api_ResponseFormatter_HTMLApiResponseFormatter::formatResponse($this->_rawReturnData);
                     break;
                 default:
                     foreach ($this->_rawReturnData as $dataKey => $dataval) {
                         echo $dataKey . " => " . $dataval . ";";
                     }
                     break;
             }
         } else {
             echo $this->_rawReturnData;
         }
     }
 }