
Это Expat — библиотека на C для разбора XML, созданная James Clark в 1997 году. Expat — это потоковый XML-парсер. Это означает, что вы регистрируете обработчики в парсере перед началом разбора. Эти обработчики вызываются, когда парсер обнаруживает соответствующие структуры в разбираемом документе. Стартовый тег — пример такого рода структур, для которых вы можете регистрировать обработчики.
Пользователям Windows следует использовать
expat_win32 package,
который включает как предварительно скомпилированные библиотеки и исполняемые файлы, так и исходный код для
разработчиков.
Expat — это свободное программное обеспечение.
Вы можете копировать, распространять и изменять его на условиях лицензии,
содержащейся в файле
COPYING
распространяемом вместе с этим пакетом.
Эта лицензия идентична лицензии MIT/X Consortium.
Если вы собираете Expat из копии Git-репозитория, вам необходимо запустить скрипт, который генерирует сценарий configure с помощью инструментов GNU autoconf и libtool. Для этого вам понадобится autoconf 2.58 или новее. Запустите скрипт следующим образом:
./buildconf.sh
После этого следуйте тем же инструкциям, что и для сборки из дистрибутива с исходным кодом.
Чтобы собрать Expat из дистрибутива с исходным кодом, сначала запустите командный скрипт конфигурации в каталоге верхнего уровня дистрибутива:
./configure
Существует множество параметров, которые вы можете передать configure (их
можно узнать, запустив configure с опцией --help). Но наиболее
интересным является тот, который задаёт каталог установки.
По умолчанию сценарий configure настроит установку
libexpat в /usr/local/lib, expat.h в /usr/local/include, а
xmlwf в /usr/local/bin. Если, например, вы предпочитаете установить
в /home/me/mystuff/lib, /home/me/mystuff/include и
/home/me/mystuff/bin, вы можете сообщить об этом configure следующим образом:
./configure --prefix=/home/me/mystuff
Ещё одна интересная опция — включение поддержки 64-битных целых чисел для номеров строк и столбцов, а также общего байтового индекса:
./configure CPPFLAGS=-DXML_LARGE_SIZE
Однако такая модификация стала бы разрушающим изменением ABI и поэтому не рекомендуется для общего использования — например, в составе дистрибутива Linux — а скорее для сборок с особыми требованиями.
После запуска сценария configure команда make соберёт
проект, а make install установит файлы в соответствующие
места. Загляните в Makefile, чтобы узнать о дополнительных
опциях make. Обратите внимание, что вам нужно иметь разрешение на запись
в каталоги, в которые будут устанавливаться файлы.
Если вы заинтересованы в сборке Expat для предоставления информации о документе
в кодировке UTF-16 вместо стандартной UTF-8, следуйте
этим инструкциям (после выполнения make distclean).
Обратите внимание, что мы настраиваем с помощью --without-xmlwf, так как xmlwf пока не поддерживает
такой режим компиляции:
Массово пропатчить файлы Makefile.am, используя libexpatw.la в качестве имени библиотеки:
find -name Makefile.am -exec sed -e 's,libexpat\.la,libexpatw.la,' -e 's,libexpat_la,libexpatw_la,' -i {} +
Запустить automake для перезаписи файлов Makefile.in:
automake
Для вывода UTF-16 в виде unsigned short (и строк версии/ошибок в виде char),
выполните:
./configure CPPFLAGS=-DXML_UNICODE --without-xmlwf
Для вывода UTF-16 в виде wchar_t (включая строки версии/ошибок), выполните:
./configure CFLAGS="-g -O2 -fshort-wchar" CPPFLAGS=-DXML_UNICODE_WCHAR_T --without-xmlwf
Примечание: последнее также требует, чтобы libc была скомпилирована с -fshort-wchar.
Запустить make (который исключает xmlwf).
Использование DESTDIR поддерживается. Это работает следующим образом:
make install DESTDIR=/path/to/image
переопределяет заданный в makefile DESTDIR, поскольку приоритет установки переменных таков:
Примечание: Это относится только к самой библиотеке Expat; сборка UTF-16-версий xmlwf и тестов в настоящее время не поддерживается.
При использовании Expat в проекте, использующем autoconf для конфигурации, вы
можете использовать зондирующий макрос в conftools/expat.m4, чтобы определить, как
включить Expat. Дополнительную информацию см. в комментариях в начале этого файла.
Справочное руководство доступно в файле doc/reference.html в этом
дистрибутиве.
Запустить make install (опять же, исключает xmlwf).