@SuppressWarnings("unchecked")
   private boolean equals(List<GedcomTag> gedcomTags, List<GedcomTag> compareGedcomTags) throws SAXParseException, IOException {
      // merge CONC tags
      mergeContConcTags(gedcomTags);
      mergeContConcTags(compareGedcomTags);

      // remove empty tags
      removeEmptyTags(gedcomTags);
      removeEmptyTags(compareGedcomTags);

      // convert multiple TEXT tags into CONT tags
      convertMultipleTextTags(gedcomTags);

      // sort tags
      Collections.sort(gedcomTags);
      Collections.sort(compareGedcomTags);

      // check whether the lists of tags are equal
      if (gedcomTags.size() != compareGedcomTags.size()) {
         return false;
      }
      for (int indx = 0; indx < gedcomTags.size(); indx++) {
         GedcomTag gedcomTagOne = gedcomTags.get(indx);
         GedcomTag gedcomTagTwo = compareGedcomTags.get(indx);

         if (!gedcomTagOne.equals(gedcomTagTwo)) {
            logger.info("file="+currentFilename+" !tag="+gedcomTagOne.toString()+"<=====>"+gedcomTagTwo.toString());
            return false;
         }
      }

      return true;
   }