code: def _buildItem(self, elem, cls=None, initpath=None):
          
          # cls is specified, build the object and return
          initpath = initpath or self._initpath
          if cls is not None:
              return cls(self._server, elem, initpath)
          # cls is not specified, try looking it up in PLEXOBJECTS
          etype = elem.attrib.get('type', elem.attrib.get('streamType'))
          ehash = '%s.%s' % (elem.tag, etype) if etype else elem.tag
          ecls = utils.PLEXOBJECTS.get(ehash, utils.PLEXOBJECTS.get(elem.tag))
          # log.debug('Building %s as %s', elem.tag, ecls.__name__)
          if ecls is not None:
              return ecls(self._server, elem, initpath)
          raise UnknownType("Unknown library type <%s type='%s'../>" % (elem.tag, etype))
docs: Factory function to build objects based on registered PLEXOBJECTS.