code: public function generate(ReportSummary $reportSummary)
      {
          if (!\extension_loaded('dom')) {
              throw new \RuntimeException('Cannot generate report! `ext-dom` is not available!');
          }
  
          $dom = new \DOMDocument('1.0', 'UTF-8');
          // new nodes should be added to this or existing children
          $root = $dom->createElement('report');
          $dom->appendChild($root);
  
          $filesXML = $dom->createElement('files');
          $root->appendChild($filesXML);
  
          $i = 1;
          foreach ($reportSummary->getChanged() as $file => $fixResult) {
              $fileXML = $dom->createElement('file');
              $fileXML->setAttribute('id', (string) $i++);
              $fileXML->setAttribute('name', $file);
              $filesXML->appendChild($fileXML);
  
              if ($reportSummary->shouldAddAppliedFixers()) {
                  $fileXML->appendChild($this->createAppliedFixersElement($dom, $fixResult));
              }
  
              if (!empty($fixResult['diff'])) {
                  $fileXML->appendChild($this->createDiffElement($dom, $fixResult));
              }
          }
  
          if (0 !== $reportSummary->getTime()) {
              $root->appendChild($this->createTimeElement($reportSummary->getTime(), $dom));
          }
  
          if (0 !== $reportSummary->getMemory()) {
              $root->appendChild($this->createMemoryElement($reportSummary->getMemory(), $dom));
          }
  
          $dom->formatOutput = true;
  
          return $reportSummary->isDecoratedOutput() ? OutputFormatter::escape($dom->saveXML()) : $dom->saveXML();
      }
docs: {@inheritdoc}