code: def add_child(self, child):
          
          # Make sure the child exists before adding it.
          if child:
              # Append child if it is allowed to exist under the parent.
              if child.tag in self.contained_children:
                  self.children.append(child)
              else:
                  raise DC_StructureException(
                      'Invalid child "%s" for parent "%s"' %
                      (child.tag, self.tag)
                  )
docs: This adds a child object to the current one.  It will check
          the contained_children list to make sure that the object is
          allowable, and throw an exception if not.