docs: protected void addTopicContentsToLevelDocument(final DocBookVersion docBookVersion, final Level level, final SpecTopic specTopic,
              final Element parentNode, final Document doc, final boolean includeInfo) {
          final Node section = doc.importNode(specTopic.getXMLDocument().getDocumentElement(), true);
  
          final String infoName;
          if (docBookVersion == DocBookVersion.DOCBOOK_50) {
              infoName = "info";
          } else {
              infoName = DocBookUtilities.TOPIC_ROOT_SECTIONINFO_NODE_NAME;
          }
  
          if (includeInfo && (level.getLevelType() != LevelType.PART)) {
              // Reposition the sectioninfo
              final List<Node> sectionInfoNodes = XMLUtilities.getDirectChildNodes(section, infoName);
              if (sectionInfoNodes.size() != 0) {
                  final String parentInfoName;
                  if (docBookVersion == DocBookVersion.DOCBOOK_50) {
                      parentInfoName = "info";
                  } else {
                      parentInfoName = parentNode.getNodeName() + "info";
                  }
  
                  // Check if the parent already has a info node
                  final List<Node> infoNodes = XMLUtilities.getDirectChildNodes(parentNode, parentInfoName);
                  final Node infoNode;
                  if (infoNodes.size() == 0) {
                      infoNode = doc.createElement(parentInfoName);
                      DocBookUtilities.setInfo(docBookVersion, (Element) infoNode, parentNode);
                  } else {
                      infoNode = infoNodes.get(0);
                  }
  
                  // Merge the info text
                  final NodeList sectionInfoChildren = sectionInfoNodes.get(0).getChildNodes();
                  final Node firstNode = infoNode.getFirstChild();
                  while (sectionInfoChildren.getLength() > 0) {
                      if (firstNode != null) {
                          infoNode.insertBefore(sectionInfoChildren.item(0), firstNode);
                      } else {
                          infoNode.appendChild(sectionInfoChildren.item(0));
                      }
                  }
              }
          }
  
          // Remove the title and sectioninfo
          final List<Node> titleNodes = XMLUtilities.getDirectChildNodes(section, DocBookUtilities.TOPIC_ROOT_TITLE_NODE_NAME, infoName);
          for (final Node removeNode : titleNodes) {
              section.removeChild(removeNode);
          }
  
          // Move the contents of the section to the chapter/level
          final NodeList sectionChildren = section.getChildNodes();
          while (sectionChildren.getLength() > 0) {
              parentNode.appendChild(sectionChildren.item(0));
          }
      }