/**
  * @param ClassMetadata $class
  *
  * @return \SimpleXMLElement
  */
 public function createRootNode(ClassMetadata $class)
 {
     $longNs = $class->getXmlNamespace();
     $ns = $this->configuration->getShortXmlNamespace($longNs);
     $rootNodeName = $class->getXmlNodeName();
     $xml = new \SimpleXMLElement('<' . $rootNodeName . '/>', LIBXML_NOERROR, false, $ns);
     if ($this->configuration->getDefaultXmlNamespace()) {
         $xml->addAttribute('xmlns:xmlns', $this->configuration->getDefaultXmlNamespace());
     }
     $xmlNamespaces = $this->configuration->getAllShortXmlNamespaces();
     if (count($xmlNamespaces) > 1 || count($xmlNamespaces) == 1 && key($xmlNamespaces) !== $this->configuration->getDefaultXmlNamespace()) {
         foreach ($xmlNamespaces as $longNs => $shortNs) {
             if ($longNs === $this->configuration->getDefaultXmlNamespace()) {
                 continue;
             }
             $attrNs = $shortNs ? 'xmlns:xmlns:' . $shortNs : 'xmlns:xmlns';
             if (!$xml->attributes()->{'xmlns:' . $shortNs}) {
                 $xml->addAttribute($attrNs, $longNs);
             }
         }
     }
     return $xml;
 }