$maxCache = $janus_config->getValue('maxCache', NULL);
 $maxDuration = $janus_config->getValue('maxDuration', NULL);
 $entities = $util->getEntitiesByStateType($export_state, $export_type);
 $xml = new DOMDocument();
 $entitiesDescriptor = $xml->createElementNS('urn:oasis:names:tc:SAML:2.0:metadata', 'md:EntitiesDescriptor');
 $entitiesDescriptorName = $janus_config->getString('export.entitiesDescriptorName', 'Federation');
 $entitiesDescriptor->setAttribute('Name', $entitiesDescriptorName);
 if ($maxCache !== NULL) {
     $entitiesDescriptor->setAttribute('cacheDuration', 'PT' . $maxCache . 'S');
 }
 if ($maxDuration !== NULL) {
     $entitiesDescriptor->setAttribute('validUntil', SimpleSAML_Utilities::generateTimestamp(time() + $maxDuration));
 }
 $xml->appendChild($entitiesDescriptor);
 foreach ($entities as $entity) {
     $entityDescriptor = sspmod_janus_MetaExport::getXMLMetadata($entity['eid'], $entity['revisionid'], array('maxCache' => $maxCache, 'maxDuration' => $maxDuration));
     $ssp_metadata = $ssp_metadata . "\n\n" . sspmod_janus_MetaExport::getFlatMetadata($entity['eid'], $entity['revisionid']);
     if (empty($entityDescriptor)) {
         $t = new SimpleSAML_XHTML_Template($config, 'janus:error.php', 'janus:error');
         $t->data['header'] = 'JANUS';
         $t->data['title'] = 'error_required_metadata_missing_header';
         $t->data['error'] = 'error_required_metadata_missing_entity';
         $t->data['error_data'] = array('%ENTITY%' => $entity['entityid']);
         $t->data['extra_data'] = implode("\n", sspmod_janus_MetaExport::getError());
         $t->show();
         exit(0);
     }
     $entitiesDescriptor->appendChild($xml->importNode($entityDescriptor, TRUE));
 }
 /* Sign the metadata if enabled. */
 if ($janus_config->getBoolean('sign.enable', FALSE)) {