code: def marcxml2record(marcxml):
      
      marcjson = create_record(marcxml, keep_singletons=False)
      collections = _get_collections(marcjson)
  
      if 'conferences' in collections:
          return conferences.do(marcjson)
      elif 'data' in collections:
          return data.do(marcjson)
      elif 'experiment' in collections:
          return experiments.do(marcjson)
      elif 'hepnames' in collections:
          return hepnames.do(marcjson)
      elif 'institution' in collections:
          return institutions.do(marcjson)
      elif 'job' in collections or 'jobhidden' in collections:
          return jobs.do(marcjson)
      elif 'journals' in collections or 'journalsnew' in collections:
          return journals.do(marcjson)
      return hep.do(marcjson)
docs: Convert a MARCXML string to a JSON record.
  
      Tries to guess which set of rules to use by inspecting the contents
      of the ``980__a`` MARC field, but falls back to HEP in case nothing
      matches, because records belonging to special collections logically
      belong to the Literature collection but don't have ``980__a:HEP``.
  
      Args:
          marcxml(str): a string containing MARCXML.
  
      Returns:
          dict: a JSON record converted from the string.