docs: private AttributesImpl validateId(final String localName, final Attributes atts, final AttributesImpl modified) throws SAXException {
          AttributesImpl res = modified;
          final String cls = atts.getValue(ATTRIBUTE_NAME_CLASS);
          if (MAP_MAP.matches(cls)) {
              topicIds.clear();
          } else if (TOPIC_TOPIC.matches(cls)) {
              final String id = atts.getValue(ATTRIBUTE_NAME_ID);
              if (id == null) {
                  switch (processingMode) {
                  case STRICT:
                      throw new SAXException(MessageUtils.getMessage("DOTJ067E", localName).setLocation(locator).toString());
                  case LAX:
                      if (res == null) {
                          res = new AttributesImpl(atts);
                      }
                      final String gen = "gen_" + UUID.randomUUID().toString();
                      addOrSetAttribute(res, ATTRIBUTE_NAME_ID, gen);
                      logger.error(MessageUtils.getMessage("DOTJ066E", localName, gen).setLocation(locator).toString());
                      break;
                  case SKIP:
                      logger.error(MessageUtils.getMessage("DOTJ067E", localName).setLocation(locator).toString());
                      break;
                  }
              }
              topicIds.clear();
          } else if (TOPIC_RESOURCEID.matches(cls) || DELAY_D_ANCHORID.matches(cls)) {
              // not considered a normal element ID
          } else {
              final String id = atts.getValue(ATTRIBUTE_NAME_ID);
              if (id != null) {
                  if (topicIds.contains(id)) {
                      if (processingMode == Mode.STRICT) {
                          throw new SAXException(MessageUtils.getMessage("DOTJ057E", id).setLocation(locator).toString());
                      } else {
                          logger.warn(MessageUtils.getMessage("DOTJ057E", id).setLocation(locator).toString());
                      }
                  }
                  topicIds.add(id);
              }
          }
          return res;
      }