A knifeman started a fire on Swiss train and stabbed passengers on Saturday, injuring six people including a six-year-old child, police said.
The motive was not immediately clear, but the incident follows a string of violent, often deadly assaults in Europe in recent months, with many claimed by the jihadist Islamic State group.
Police told AFP the suspected attacker, who used flammable liquid to start the fire, was a Swiss national, and not of immigrant background.
“According to the information we have for the time being, the 27-year-old Swiss man poured out a flammable liquid …(which) caught fire,” Saint Gallen regional police said in a statement.
The man, who “was also armed with at least one knife”, carried out the attack on a moving train near Switzerland’s eastern border with Liechtenstein and Austria, it said.
Seven people including the suspected attacker were admitted to various hospitals with burn and stab wounds, the statement said.
One woman and the attacker were “very seriously injured”, police spokesman Hanspeter Kruesi told AFP.
He said no one had overpowered the attacker, but that he had been hurt in the fire.
The victims included two men aged 17 and 50, three women aged 17, 34 and 43 and the six-year-old child. Dozens of people were on the train at the time of the attack, the police statement said.
Police said the attack had taken place at around 2:20 pm (local time) near the Salez station on a train running between Buchs and Sennwald.
A massive contingent of rescue workers rushed to the scene, including police, firefighters, ambulances and three rescue helicopters.
The Salez station remains closed, and police said replacement buses had been set up.
Saint Gallen prosecutors have opened a criminal investigation into the attack.
The attack is the latest in a string of brutal assaults in Europe in recent months that have left the continent on edge.
In January 2015, a jihadist assault on the Charlie Hebdo satirical newspaper in Paris left 12 dead while another four died in an attack on a Jewish supermarket in the city.
In November 2015, a coordinated jihadist attack claimed by IS in Paris left 130 people dead.
On March 22 this year, suicide bombers struck Brussels airport and a metro station in another coordinated jihadist attack claimed by IS near the European Union headquarters, killing 32 people.
On July 14, a Tunisian man rammed a truck into crowds of revellers in the southern French city of Nice, killing 85 people.
Swiss neighbour Germany has also seen a string of attacks in recent weeks.
In July there were two attacks by migrants in the southern state of Bavaria — an axe rampage on a train and a suicide bombing. In Munich, an 18-year-old German-Iranian also went on a gun rampage in a shopping mall, leaving nine people dead.