/**
* arrays passed to this method should have a single root element
* with an array as its value
* @param array $aData the array of data
* @return string XML string
*/
public static function arrayToXml($aData)
{
$aData = Util::camelCaseToDelimiterArray($aData, '-');
// set up the XMLWriter
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(true);
$writer->setIndentString(' ');
$writer->startDocument('1.0', 'UTF-8');
// get the root element name
$aKeys = array_keys($aData);
$rootElementName = $aKeys[0];
// open the root element
$writer->startElement($rootElementName);
// create the body
self::_createElementsFromArray($writer, $aData[$rootElementName], $rootElementName);
// close the root element and document
$writer->endElement();
$writer->endDocument();
// send the output as string
return $writer->outputMemory();
}