code: public Map<String, String> parse(String line) throws IOException {
      Map<String, String> map = new HashMap<String, String>();
  
      // Get the version CRC and find the field definition
      List<String> fields = Arrays.asList(line.split(DELIMITER));
      List<String> fieldNames = fieldDef_.get(fields.get(0));
      if (fieldNames == null) {
        throw new IOException("cannot find matching field definition for CRC "
            + fields.get(0));
      }
      if (fieldNames.size() != fields.size()) {
        throw new IOException("W3C field definition and input line for CRC "
            + fields.get(0) + " does not match:\n" + line);
      }
  
      // Map values to field names
      for (int fieldNum = 1; fieldNum < fieldNames.size(); fieldNum++) {
        map.put(fieldNames.get(fieldNum), fields.get(fieldNum));
      }
  
      return map;
    }
docs: <FieldName, Value>