A 16-year-old boy has been charged with attempted murder after a schoolgirl was repeatedly stabbed at a Catholic school north of Brisbane.
Caboolture's St Columban's College was put into lockdown and classes were cancelled after the 14-year-old student was stabbed in the head, neck and back on Wednesday morning.
A male student handed himself in at Caboolture police station shortly after the attack, which happened near a school toilet block about 7.15am (AEST).
Police, who charged the boy late on Wednesday, say he will be dealt with under the provisions of the Youth Justices Act.
The girl was in a stable condition in the Royal Brisbane Hospital on Wednesday afternoon.
Officers believe a knife was used in the attack, which also left the girl with wounds to her forearms and hands.
The girl had gone to school early for sports training.
Inspector David Crawford-Raby said other pupils witnessed the assault.
"The actual motive and the reasons for the incident happening haven't been established," he told reporters outside the school.
Insp Crawford-Raby said police were yet to determine the relationship between the two students.
Principal Anne Rebgetz said the girl's screams alerted teachers, who rushed to give first aid.
The incident was concerning but isolated, she said.
"The other students are obviously quite distressed and some of them were there when it happened," she told reporters.
"The families have been contacted and we are very keen to support the families involved."
Federal Liberal MP Wyatt Roy said staff and students at the school, in his electorate of Longman, would have been shocked by the attack.
"This is obviously a very dark, difficult day for the school community and for the community at large," he told parliament on Wednesday.
"Our thoughts are with her family, with her friends and with the school."