Creates and returns a list of Dictionary data structures parsed from the metadata.
    :param tree_to_parse: the XML tree compatible with element_utils to be parsed
    :param xpath_root: the XPATH location of each structure inside the parent element
    :param xpath_map: a dict of XPATHs corresponding to a complex definition
    :param complex_key: indicates which complex definition describes each structure

def parse_complex_list(tree_to_parse, xpath_root, xpath_map, complex_key):
    """
    Creates and returns a list of Dictionary data structures parsed from the metadata.
    :param tree_to_parse: the XML tree compatible with element_utils to be parsed
    :param xpath_root: the XPATH location of each structure inside the parent element
    :param xpath_map: a dict of XPATHs corresponding to a complex definition
    :param complex_key: indicates which complex definition describes each structure
    """

    complex_list = []

    for element in get_elements(tree_to_parse, xpath_root):
        complex_struct = parse_complex(element, xpath_root, xpath_map, complex_key)
        if complex_struct:
            complex_list.append(complex_struct)

    return complex_list