docs: public static Map<String, List<String>> parseMetaData(XmlPullParser parser) throws XmlPullParserException, IOException {
          int eventType = parser.getEventType();
  
          // If correctly positioned on an opening meta-data tag, parse meta-data.
          if ((eventType == XmlPullParser.START_TAG)
                  && parser.getName().equals(MetaData.ELEMENT_NAME)
                  && parser.getNamespace().equals(MetaData.NAMESPACE)) {
              Map<String, List<String>> metaData = new Hashtable<>();
  
              eventType = parser.nextTag();
  
              // Keep parsing until we've gotten to end of meta-data.
              while ((eventType != XmlPullParser.END_TAG)
                      || !parser.getName().equals(MetaData.ELEMENT_NAME)) {
                  String name = parser.getAttributeValue(0);
                  String value = parser.nextText();
  
                  if (metaData.containsKey(name)) {
                      List<String> values = metaData.get(name);
                      values.add(value);
                  }
                  else {
                      List<String> values = new ArrayList<>();
                      values.add(value);
                      metaData.put(name, values);
                  }
  
                  eventType = parser.nextTag();
              }
  
              return metaData;
          }
  
          return Collections.emptyMap();
      }