Когда следует выбирать SAX вместо StAX?

Потоковые xml-анализаторы, такие как SAX и StAX, быстрее и эффективнее с точки зрения памяти, чем парсеры, строящие древовидную структуру, такие как DOM-парсеры. SAX - это push-синтаксический анализатор, что означает, что он является экземпляром шаблона наблюдателя (также называемого шаблоном слушателя). Сначала был SAX, но затем появился StAX - синтаксический анализатор запроса, что означает, что он в основном работает как итератор.

Вы можете найти причины, по которым везде предпочтительнее StAX, а не SAX, но обычно все сводится к следующему: «его проще использовать».

В учебнике Java по JAXP StAX неопределенно представлен как нечто среднее между DOM и SAX: «это проще, чем SAX, и более эффективно, чем DOM». Однако я так и не нашел никаких указаний на то, что StAX будет медленнее или менее эффективно использовать память, чем SAX.

Все это заставило меня задуматься: есть ли причины выбрать SAX вместо StAX?

79
задан vtd-xml-author 2 May 2016 в 18:07
поделиться