private static function outputXML($statusCode, array $data = null)
{
// redefine
$statusCode = (int) $statusCode;
// init vars
$charset = BackendModel::getContainer()->getParameter('kernel.charset');
$pathChunks = explode(DIRECTORY_SEPARATOR, trim(__DIR__, DIRECTORY_SEPARATOR));
$version = $pathChunks[count($pathChunks) - 2];
$version = mb_strtolower($version);
// init XML
$XML = new \DOMDocument('1.0', $charset);
// set some properties
$XML->preserveWhiteSpace = false;
$XML->formatOutput = true;
// create root element
$root = $XML->createElement('fork');
// add attributes
$root->setAttribute('status_code', $statusCode);
$root->setAttribute('status', $statusCode == 200 ? 'ok' : 'error');
$root->setAttribute('version', FORK_VERSION);
$root->setAttribute('endpoint', SITE_URL . '/api/' . $version);
// append
$XML->appendChild($root);
// build XML
array_walk($data, array(__CLASS__, 'arrayToXML'), $root);
// set correct headers
header('HTTP/1.1 ' . self::getHeaderMessage($statusCode));
header('content-type: text/xml;charset=' . $charset);
// output XML
self::$content = $XML->saveXML();
}