code: private void readMultiMapKeys(XMLEventReader reader, MultiValueMap<String> map)
              throws XMLStreamException, JournalException {
          while (true) {
              XMLEvent event2 = reader.nextTag();
              if (isStartTagEvent(event2, QNAME_TAG_MULTI_VALUE_MAP_KEY)) {
                  // if we find a key tag, get the name
                  String key =
                          getRequiredAttributeValue(event2.asStartElement(),
                                                    QNAME_ATTR_NAME);
                  // read as many values as we find.
                  String[] values = readMultiMapValuesForKey(reader);
                  // store in the map
                  storeInMultiMap(map, key, values);
              } else if (isEndTagEvent(event2, QNAME_TAG_MULTI_VALUE_MAP)) {
                  break;
              } else {
                  throw getNotNextMemberOrEndOfGroupException(QNAME_TAG_MULTI_VALUE_MAP,
                                                              QNAME_TAG_MULTI_VALUE_MAP_KEY,
                                                              event2);
              }
          }
      }
docs: Read through the keys of the multi-map, adding to the map as we go.