public function getGroupsAsDOM()
 {
     $t_group = new ca_user_groups();
     $vo_groups = $this->opo_dom->createElement("groups");
     $qr_groups = $this->opo_db->query("SELECT * FROM ca_user_groups WHERE parent_id IS NOT NULL");
     while ($qr_groups->nextRow()) {
         $t_group->load($qr_groups->get("group_id"));
         $vo_group = $this->opo_dom->createElement("group");
         $vo_group->setAttribute("code", $this->makeIDNO($t_group->get("code")));
         $vo_group->appendChild($this->opo_dom->createElement("name", caEscapeForXML($t_group->get("name"))));
         $vo_group->appendChild($this->opo_dom->createElement("description", caEscapeForXML($t_group->get("description"))));
         if (is_array($va_roles = $t_group->getGroupRoles())) {
             $vo_roles = $this->opo_dom->createElement("roles");
             foreach ($va_roles as $va_role) {
                 $vo_roles->appendChild($this->opo_dom->createElement("role", $this->makeIDNO($va_role["code"])));
             }
             $vo_group->appendChild($vo_roles);
         }
         $vo_groups->appendChild($vo_group);
     }
     return $vo_groups;
 }