code: def read_xso(src, xsomap):
      
  
      xso_parser = xso.XSOParser()
  
      for class_, cb in xsomap.items():
          xso_parser.add_class(class_, cb)
  
      driver = xso.SAXDriver(xso_parser)
  
      parser = xml.sax.make_parser()
      parser.setFeature(
          xml.sax.handler.feature_namespaces,
          True)
      parser.setFeature(
          xml.sax.handler.feature_external_ges,
          False)
      parser.setContentHandler(driver)
  
      parser.parse(src)
docs: Read a single XSO from a binary file-like input `src` containing an XML
      document.
  
      `xsomap` must be a mapping which maps :class:`~.XSO` subclasses
      to callables. These will be registered at a newly created
      :class:`.xso.XSOParser` instance which will be used to parse the  document
      in `src`.
  
      The `xsomap` is thus used to determine the class parsing the root element
      of the XML document. This can be used to support multiple versions.