code: def _children(self, qname:
                    Union[QualName, bool] = None) -> List["InstanceNode"]:
          
          sn = self.schema_node
          if not isinstance(sn, InternalNode):
              return []
          if qname:
              cn = sn.get_data_child(*qname)
              if cn is None:
                  return []
              iname = cn.iname()
              if iname in self.value:
                  return self._member(iname)._node_set()
              wd = cn._default_instance(self, ContentType.all, lazy=True)
              if iname not in wd.value:
                  return []
              while True:
                  cn = cn.parent
                  if cn is sn:
                      return wd._member(iname)._node_set()
                  if (cn.when and not cn.when.evaluate(self) or
                      isinstance(cn, CaseNode) and
                          cn.qual_name != cn.parent.default_case):
                      return []
          res = []
          wd = sn._add_defaults(self, ContentType.all, lazy=True)
          for mn in wd.value:
              res.extend(wd._member(mn)._node_set())
          return res
docs: XPath - return the list of receiver's children.