'This method is called under 3 conditions:
1. When the ToolDataTableManager is initialized (see __init__ above).
2. Just after the ToolDataTableManager is initialized and the additional entries defined by shed_tool_data_table_conf.xml
are being loaded into the ToolDataTableManager.data_tables.
3. When a tool shed repository that includes a tool_data_table_conf.xml.sample file is being installed into a local
Galaxy instance.  In this case, we have 2 entry types to handle, files whose root tag is <tables>, for example:'

def load_from_config_file(self, config_filename, tool_data_path, from_shed_config=False):

    table_elems = []
    if (not isinstance(config_filename, list)):
        config_filename = [config_filename]
    for filename in config_filename:
        tree = util.parse_xml(filename)
        root = tree.getroot()
        for table_elem in root.findall('table'):
            table = ToolDataTable.from_elem(table_elem, tool_data_path, from_shed_config, filename=filename, tool_data_path_files=self.tool_data_path_files)
            table_elems.append(table_elem)
            if (table.name not in self.data_tables):
                self.data_tables[table.name] = table
                log.debug("Loaded    tool    data    table    '%s'    from    file    '%s'", table.name, filename)
            else:
                log.debug("Loading    another    instance    of    data    table    '%s'    from    file    '%s',    attempting    to    merge    content.", table.name, filename)
                self.data_tables[table.name].merge_tool_data_table(table, allow_duplicates=False)
    return table_elems
