docs: @Override
      public void startElement(final String uri, final String localName, final String qName, final Attributes atts)
              throws SAXException {
          depth++;
          if (depth == 1) {
              super.startPrefixMapping(DITA_OT_NS_PREFIX, DITA_OT_NS);
          }
  
          AttributesImpl res = null;
          final String cls = atts.getValue(ATTRIBUTE_NAME_CLASS);
          if (MAP_MAP.matches(cls)) {
              if (atts.getIndex(ATTRIBUTE_NAME_CASCADE) == -1) {
                  if (res == null) {
                      res = new AttributesImpl(atts);
                  }
                  XMLUtils.addOrSetAttribute(res, ATTRIBUTE_NAME_CASCADE,
                          configuration.getOrDefault("default.cascade", ATTRIBUTE_CASCADE_VALUE_MERGE));
              }
          }
          if (MAP_MAP.matches(cls) || TOPIC_TOPIC.matches(cls)) {
              final String domains = atts.getValue(ATTRIBUTE_NAME_DOMAINS);
              if (domains != null) {
                  final String normalized = whitespace.matcher(domains.trim()).replaceAll(" ");
                  if (res == null) {
                      res = new AttributesImpl(atts);
                  }
                  XMLUtils.addOrSetAttribute(res, ATTRIBUTE_NAME_DOMAINS, normalized);
              }
          }
  
          getContentHandler().startElement(uri, localName, qName, res != null ? res : atts);
      }