SAX означает Простой API для XML .
SAX предназначен только для анализа XML-файлов. Поэтому, если вы хотите проанализировать объект из C ++ с использованием SAX, единственный способ, которым это имеет смысл, - сначала сериализовать этот объект в XML.
Причина, по которой вы захотите использовать синтаксический анализатор SAX XML, заключается в том, что у вас может быть очень большой файл XML, и вы хотите читать его только по частям, выполняя это, вы используете меньше оперативной памяти.
Хороший пример того, почему вы хотите использовать SAX-парсер, это если у вас есть последовательный std :: vector строк в XML-файл. Допустим, этот вектор содержит миллионы записей. Тогда вы не сможете сразу прочитать весь XML-файл в память. Вместо этого вам придется использовать SAX-парсер.
Существует много различных реализаций парсера SAX, но вы даже можете довольно легко создать его, нарисовав конечный автомат . Когда вы входите в состояние чтения полного элемента, вы вызываете функцию обратного вызова.
Вы также можете использовать LibXML, MSXML, Xerces-C ++ XML Parser и многие другие библиотеки для анализа SAX.
Возвращаясь к исходному вопросу. Ваш SAX-анализатор просто проанализирует XML-представление вашего объекта, а затем заполнит члены объекта. Или, если ваш объект является контейнером, добавьте элементы контейнера.