Это хорошая практика для реализации разбора XML в конечный автомат? Если да, с какими основными штатами мы должны справиться?
Что ж, если вы пишете свой собственный парсер «с нуля» — тогда вам, вероятно, стоит сделать такой бутерброд:
Таким образом, уровень 1 может (и должен) быть выполнен в FSM, я бы сделал это с набором состояний, таких как Initial, InTagName, InAttrName, InAttrValue, InCDATA и т. Д. Их будет не так уж много, просто пара переключений страниц ,
Тем не менее, есть еще много работы на случай, если вам нужна правильная поддержка schema / namespace / xpath / etc.
Так почему бы просто не воспользоваться существующим решением?
Других решений пока нет …