Введение

Библиотека для разбора XML (Parser library)

Expat – это потоково-ориентированная библиотека для разбора XML 1.0, написанная на языке C. Будучи одним из первых доступных парсеров XML с открытым исходным кодом, Expat нашла применение во многих проектах с открытым исходным кодом, включая Apache HTTP Server, Mozilla, Perl, Python и PHP. Она также имеет привязки ко многим другим языкам программирования.

Хронология

Разработчик программного обеспечения Джеймс Кларк выпустил версию 1.0 в 1998 году, работая техническим руководителем в Рабочей группе XML при Консорциуме Всемирной паутины. Кларк выпустил еще две версии – 1.1 и 1.2, после чего в 2000 году передал проект группе под руководством Кларка Купера и Фреда Дрейка. Новая группа выпустила версию 1.95.0 в сентябре 2000 года и продолжает выпускать новые версии, включая исправления ошибок и улучшения.

Доступность

GitHub размещает проект Expat. Версии доступны для большинства основных операционных систем.

Развертывание

Чтобы использовать библиотеку Expat, программы сначала регистрируют функции-обработчики в Expat. Когда Expat разбирает XML-документ, он вызывает зарегистрированные обработчики при обнаружении соответствующих токенов во входном потоке. Эти токены и соответствующие вызовы обработчиков называются событиями. Как правило, программы регистрируют функции-обработчики для событий начала и окончания XML-элементов, а также событий символов. Expat предоставляет средства для более сложной обработки событий, такие как объявления пространств имен XML, инструкции по обработке и события DTD. События разбора Expat похожи на события, определенные в Simple API for XML (SAX), но Expat не является SAX-совместимым парсером. Проекты, использующие библиотеку Expat, часто строят SAX и, возможно, DOM-парсеры на основе Expat. Хотя Expat в основном является парсером, работающим на основе потока (push), он поддерживает остановку и перезапуск разбора в любой момент времени, что также упрощает реализацию pull-парсера.