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.

def add_child(self, child):
        """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.
        """
        # 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)
                )