let rec project_to_xml (p:project) =
let name = get_project_name p in
let id = get_project_id p in
let teamr = List.sort (fun u v -> compare (get_team_num u) (get_team_num v))
(H.assoc_to_list (get_project_teams p)) in
let teams = List.flatten (List.map (team_to_xml) teamr) in
let subpr = List.sort (fun u v -> compare u.add v.add) (get_project_sub p) in
let subps = List.map project_to_xml subpr in
Xml.Element ("project",[("num", string_of_int (get_project_num p));
("name", name);
("id", id);
("coeff", string_of_float (get_project_coeff p));
("dgrad", string_of_float (get_project_dgrad p));
],
teams@subps)