code: def _descendants(self, qname: Union[QualName, bool] = None,
                       with_self: bool = False) -> List["InstanceNode"]:
          
          res = ([] if not with_self or (qname and self.qual_name != qname)
                 else [self])
          for c in self._children():
              if not qname or c.qual_name == qname:
                  res.append(c)
              res += c._descendants(qname)
          return res
docs: XPath - return the list of receiver's descendants.