code: @Override
      public void startElement(final String uri, final String localName, final String qName, final Attributes atts)
              throws SAXException {
          Set<Flag> flags = null;
  
          final DitaClass cls = atts.getValue(ATTRIBUTE_NAME_CLASS) != null ? new DitaClass(atts.getValue(ATTRIBUTE_NAME_CLASS)) : new DitaClass("");
  
          if (cls.isValid() && (TOPIC_TOPIC.matches(cls) || MAP_MAP.matches(cls))) {
              final String domains = atts.getValue(ATTRIBUTE_NAME_DOMAINS);
              if (domains == null) {
                  logger.info(MessageUtils.getMessage("DOTJ029I", localName).toString());
              } else {
                  props = StringUtils.getExtProps(domains);
              }
          }
  
          if (exclude) {
              // If it is the start of a child of an excluded tag, level increase
              level++;
          } else { // exclude shows whether it's excluded by filtering
              if (cls.isValid() && filterUtils.stream().anyMatch(f -> f.needExclude(atts, props))) {
                  exclude = true;
                  level = 0;
              } else {
                  elementOutput = true;
                  for (final Map.Entry<String, String> prefix: prefixes.entrySet()) {
                      getContentHandler().startPrefixMapping(prefix.getKey(), prefix.getValue());
                  }
                  prefixes.clear();
                  getContentHandler().startElement(uri, localName, qName, atts);
                  if (doFlag && cls.isValid()) {
                      flags = filterUtils.stream()
                              .flatMap(f -> f.getFlags(atts, props).stream())
                              .map(f -> f.adjustPath(currentFile, job))
                              .collect(Collectors.toSet());
                      for (final Flag flag: flags) {
                          flag.writeStartFlag(getContentHandler());
                      }
                  }
              }
          }
  
          if (doFlag) {
              flagStack.push(flags);
          }
      }
docs: SAX methods