
Expat, релиз 2.1.0
Это Expat — библиотека на C для разбора XML, написанная Джеймсом Кларком. Expat — это потоковый парсер XML. Это означает, что вы регистрируете обработчики в парсере перед началом разбора. Эти обработчики вызываются, когда парсер обнаруживает соответствующие структуры в анализируемом документе. Начальный тег — пример такого рода структур, для которых вы можете регистрировать обработчики.
Пользователям Windows следует использовать пакет expat_win32bin, который включает как предварительно скомпилированные библиотеки и исполняемые файлы, так и исходный код для разработчиков.
Expat — это свободное программное обеспечение. Вы можете копировать, распространять и изменять его на условиях лицензии, содержащейся в файле COPYING, распространяемом вместе с этим пакетом. Эта лицензия идентична лицензии MIT/X Consortium.
Версии Expat с нечётным номером младшей версии (среднее число в приведённом выше релизе) являются разработческими релизами и должны рассматриваться как бета-программное обеспечение. Релизы с чётными номерами младшей версии предназначены для использования в качестве программного обеспечения производственного качества.
Если вы собираете Expat из копии, полученной из репозитория CVS, вам необходимо запустить сценарий, который генерирует сценарий 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"):
1. Для вывода UTF-16 в виде unsigned short (а строки версий/
ошибок — в виде char) выполните:
./configure CPPFLAGS=-DXML_UNICODE
Для вывода UTF-16 в виде wchar_t (включая строки версий/ошибок),
выполните:
./configure CFLAGS="-g -O2 -fshort-wchar" \
CPPFLAGS=-DXML_UNICODE_WCHAR_T
2. Отредактируйте MakeFile, изменив:
LIBRARY = libexpat.la
на:
LIBRARY = libexpatw.la
(Обратите внимание на дополнительную "w" в имени библиотеки.)
3. Выполните "make buildlib" (собирает только библиотеку).
Или, чтобы пропустить шаг 2, выполните "make buildlib LIBRARY=libexpatw.la".
4. Выполните "make installlib" (устанавливает только библиотеку).
Или, если шаг 2 был пропущен, выполните "make installlib LIBRARY=libexpatw.la".
Поддерживается использование DESTDIR или INSTALL_ROOT, при этом INSTALL_ROOT является значением по умолчанию для DESTDIR, а остальная часть make-файла использует только DESTDIR. Это работает следующим образом: $ make install DESTDIR=/path/to/image переопределяет DESTDIR, заданный в make-файле, в то время как оба варианта $ INSTALL_ROOT=/path/to/image make install $ make install INSTALL_ROOT=/path/to/image используют DESTDIR=$(INSTALL_ROOT), даже если DESTDIR в конечном итоге определён в окружении, поскольку приоритет установки переменных таков:
Примечание: Это относится только к самой библиотеке Expat; сборка UTF-16 версий xmlwf и тестов в настоящее время не поддерживается.
Примечание для пользователей Solaris: команда "ar" обычно находится в "/usr/ccs/bin", которого нет в PATH по умолчанию. Вам нужно будет добавить этот каталог в свой путь для команды "make" и, вероятно, также переключиться на GNU make (make, находящийся в /usr/ccs/bin, похоже, работает неправильно -- судя по всему, он не понимает директивы .PHONY). Если вы используете ksh или bash, выполните эту команду для сборки:
PATH=/usr/ccs/bin:$PATH make
При использовании Expat в проекте, применяющем autoconf для настройки, вы можете воспользоваться проверочным макросом в conftools/expat.m4, чтобы определить, как подключить Expat. Дополнительную информацию см. в комментариях в начале этого файла.
Справочное руководство доступно в файле doc/reference.html в этом дистрибутиве.
Домашняя страница этого проекта — http://www.libexpat.org/. Там есть ссылки на страницу отчётов об ошибках. Если вам нужно сообщить об ошибке, а доступа к браузеру нет, вы также можете отправить отчёт по электронной почте на адрес [email protected].
Обсуждение направлений будущего развития expat ведётся в списке рассылки [email protected]. Архивы этого списка и других списков рассылки, связанных с Expat, можно найти по адресу:
http://mail.libexpat.org/mailman/listinfo