Исходный автор (-ы) | Джеймс Кларк |
---|---|
Разработчик (-ы) | Кларк Купер и др. др. |
Первый выпуск | 1998 г.; 22 года назад (1998 г.) |
Стабильный выпуск | 2.2.10 / 3 октября 2020 г.; 22 дня назад (2020-10-03) |
Репозиторий | |
Написано в | C |
Операционной системе | Portable |
Введите | XML парсер библиотека |
Лицензия | Лицензия MIT |
Веб-сайт | libexpat.github.io |
Expat - это ориентированный на поток XML 1.0 синтаксический анализатор библиотека, написанный на C. Как один из первых доступных парсеров XML с открытым исходным кодом , Expat нашел свое место во многих проектах с открытым исходным кодом. К таким проектам относятся HTTP-сервер Apache, Mozilla, Perl, Python и PHP. Он также привязан к во многих других языках.
Разработчик программного обеспечения Джеймс Кларк выпустила версию 1.0 в 1998 году, работая техническим руководителем в рабочей группе XML в Консорциуме World Wide Web. Кларк выпустил еще две версии, 1.1 и 1.2, прежде чем передать проект группе под руководством Кларка Купера и Фреда Дрейка в 2000 году. Новая группа выпустила версию 1.95.0 в сентябре 2000 года и продолжает выпускать новые версии с исправлениями ошибок и улучшения.
GitHub размещает проект Expat. Существуют версии для большинства основных операционных систем.
Чтобы использовать библиотеку Expat, сначала запрограммируйте функции обработчика регистрации в Expat. Когда Expat анализирует XML-документ, он вызывает зарегистрированные обработчики, когда находит соответствующие токены во входном потоке. Эти токены и связанные с ними вызовы обработчиков называются событиями. Обычно программы регистрируют функции-обработчики для событий запуска или остановки элемента XML и символьных событий. Expat предоставляет средства для более сложной обработки событий, такие как объявления XML Namespace, инструкции по обработке и события DTD.
События синтаксического анализа Expat напоминают события, определенные в Simple API for XML (SAX), но Expat не является синтаксическим анализатором, совместимым с SAX. Проекты, включающие библиотеку Expat, часто строят синтаксические анализаторы SAX и, возможно, DOM поверх Expat. Хотя Expat в основном является потоковым (push) синтаксическим анализатором, он поддерживает остановку и перезапуск синтаксического анализа в произвольное время, что также делает относительно простой реализацию pull-анализатора.