Отвечаю сам.
Я не совсем понял в своем вопросе, потому что я не написал, что мне нужно создавать свои собственные сообщения об ошибках. Например, мне нужно усложнить проверку определенных атрибутов. Затем, если атрибут недействителен, мне нужно написать сообщение типа: «Ошибка в строке 15454 столбца 48, attritubute« число »должно быть простым числом, но равно 65536».
Подход, предложенный Арией Хидаят, работает только для сообщений, генерируемых самим парсером SAX (например, искаженный XML).
Для пользовательских сообщений мне нужно перегрузить setDocumentLocator ( QXmlLocator * locator )
, который сообщает мне о текущем локаторе, и сохранить где-нибудь значение локатора, например savedLocator = locator;
Фактический номер строки получается как locator->lineNumber().