code: def parse_format(xml_file):
      """Parse the xml file to create types, scaling factor types, and scales."""
      tree = parse(xml_file)
      for param in tree.find("parameters"):
          VARIABLES[param.get("name")] = param.get("value")
  
      types_scales = {}
  
      for prod in tree.find("product"):
          text = prod.tag in ["mphr", "sphr"]
          res = []
          for i in prod:
              lres = CASES[i.tag](i, text)
              if lres is not None:
                  res.append(lres)
          types_scales[(prod.tag, int(prod.get("subclass")))] = res
  
      types = {}
      stypes = {}
      scales = {}
  
      for key, val in types_scales.items():
          types[key] = to_dtype(val)
          stypes[key] = to_scaled_dtype(val)
          scales[key] = to_scales(val)
  
      return types, stypes, scales
  
file_path: satpy/satpy/readers/xmlformat.py
imports: from __future__ import annotations
  import numpy
  from defusedxml.ElementTree import parse
label_desc: Use image node_id 7 for calling a global function with example usage: parse_format(xml_file) and returns: types,  stypes,  scales