code: def get_data_child(self, name: YangIdentifier,
                         ns: YangIdentifier = None) -> Optional["DataNode"]:
          
          ns = ns if ns else self.ns
          todo = []
          for child in self.children:
              if child.name == name and child.ns == ns:
                  if isinstance(child, DataNode):
                      return child
                  todo.insert(0, child)
              elif not isinstance(child, DataNode):
                  todo.append(child)
          for c in todo:
              res = c.get_data_child(name, ns)
              if res:
                  return res
docs: Return data node directly under the receiver.