code: def build_tree(self, name, props, resource_name=None):
          
          n = Node(name, props, resource_name)
          prop_type_list = self._get_type_list(props)
          if not prop_type_list:
              return n
          prop_type_list = sorted(prop_type_list)
          for prop_name in prop_type_list:
              if prop_name == 'Tag':
                  continue
              child = self.build_tree(prop_name, self.properties[prop_name])
              if child is not None:
                  n.add_child(child)
          return n
docs: Build a tree of non-primitive typed dependency order.