let print_student_list_xml (hpr:string -> unit) (gl:student list) = 
    let xlist = List.map (print_group_xml !student_list) !num_groups in 
    let options = ref [] in 
      options := (Xml.Element ("assign_resp",[("value",string_of_bool !do_assign_resp)],[]))::(!options);
      options := (Xml.Element ("sorttype",[("value",string_of_sort !ref_sort)],[]))::(!options);
      if ((List.length !groupssel) > 0) then 
      options := (Xml.Element ("default_group",[("value",convert_int_list_to_string !groupssel)],[]))::(!options);
      options := (Xml.Element ("validity",[("value",valid_to_string !ref_validity)],[]))::(!options);
      options := (Xml.Element ("allow_grading",[("value",string_of_bool !allow_grading)],[]))::(!options);
    let clist = Xml.Element ("config",[],!options) in 
    hpr (Xml.to_string_fmt (Xml.Element ("class",[],clist::xlist)))