docs: public String generate(Config config) {
          isNotNull(config, "Config");
  
          StringBuilder xml = new StringBuilder();
          XmlGenerator gen = new XmlGenerator(xml);
  
          xml.append("<hazelcast ")
                  .append("xmlns=\"http://www.hazelcast.com/schema/config\"\n")
                  .append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n")
                  .append("xsi:schemaLocation=\"http://www.hazelcast.com/schema/config ")
                  .append("http://www.hazelcast.com/schema/config/hazelcast-config-4.0.xsd\">");
          gen.open("group")
                  .node("name", config.getGroupConfig().getName())
                  .node("password", getOrMaskValue(config.getGroupConfig().getPassword()))
                  .close()
                  .node("license-key", getOrMaskValue(config.getLicenseKey()))
                  .node("instance-name", config.getInstanceName());
  
          manCenterXmlGenerator(gen, config);
          gen.appendProperties(config.getProperties());
          securityXmlGenerator(gen, config);
          wanReplicationXmlGenerator(gen, config);
          networkConfigXmlGenerator(gen, config);
          advancedNetworkConfigXmlGenerator(gen, config);
          mapConfigXmlGenerator(gen, config);
          replicatedMapConfigXmlGenerator(gen, config);
          cacheConfigXmlGenerator(gen, config);
          queueXmlGenerator(gen, config);
          multiMapXmlGenerator(gen, config);
          collectionXmlGenerator(gen, "list", config.getListConfigs().values());
          collectionXmlGenerator(gen, "set", config.getSetConfigs().values());
          topicXmlGenerator(gen, config);
          semaphoreXmlGenerator(gen, config);
          lockXmlGenerator(gen, config);
          countDownLatchXmlGenerator(gen, config);
          ringbufferXmlGenerator(gen, config);
          atomicLongXmlGenerator(gen, config);
          atomicReferenceXmlGenerator(gen, config);
          executorXmlGenerator(gen, config);
          durableExecutorXmlGenerator(gen, config);
          scheduledExecutorXmlGenerator(gen, config);
          eventJournalXmlGenerator(gen, config);
          merkleTreeXmlGenerator(gen, config);
          partitionGroupXmlGenerator(gen, config);
          cardinalityEstimatorXmlGenerator(gen, config);
          listenerXmlGenerator(gen, config);
          serializationXmlGenerator(gen, config);
          reliableTopicXmlGenerator(gen, config);
          liteMemberXmlGenerator(gen, config);
          nativeMemoryXmlGenerator(gen, config);
          servicesXmlGenerator(gen, config);
          hotRestartXmlGenerator(gen, config);
          flakeIdGeneratorXmlGenerator(gen, config);
          crdtReplicationXmlGenerator(gen, config);
          pnCounterXmlGenerator(gen, config);
          quorumXmlGenerator(gen, config);
          cpSubsystemConfig(gen, config);
  
          xml.append("</hazelcast>");
  
          return format(xml.toString(), INDENT);
      }