A gunman has opened fire in a village in southern Switzerland, killing three people and wounding two others, police said today.