这是 Expat,一个用于解析 XML 的 C 语言库,由 James Clark 于 1997 年发起。 Expat 是一个面向流的 XML 解析器。这意味着你需要在开始解析之前向解析器注册 处理程序。当解析器在正在解析的文档中发现相关结构时,会调用这些处理程序。 开始标签就是你可以注册处理程序的那类结构的一个示例。
Windows 用户应使用
expat_win32 包,
其中包含预编译的库和可执行文件,以及供开发人员使用的源代码。
Expat 是自由软件。
你可以根据随此包分发的
COPYING
文件中所包含的许可证条款,对其复制、分发和修改。
该许可证与 MIT/X Consortium 许可证相同。
如果你是从 Git 仓库 的检出版本构建 Expat, 你需要运行一个脚本,该脚本使用 GNU autoconf 和 libtool 工具生成 configure 脚本。 为此,你需要安装 autoconf 2.58 或更高版本。按如下方式运行该脚本:
./buildconf.sh
完成此操作后,请遵循与从源代码发行版构建时相同的说明。
要从源代码发行版构建 Expat,你首先需要在发行版的顶层目录中运行配置 shell 脚本:
./configure
你可以向 configure 提供许多选项(通过带 --help 选项运行 configure 可以发现这些选项)。
但其中最值得关注的是设置安装目录的选项。默认情况下,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
对于以 unsigned short(以及版本/错误字符串为 char)形式输出 UTF-16,
运行:
./configure CPPFLAGS=-DXML_UNICODE --without-xmlwf
对于以 wchar_t(包括版本/错误字符串)形式输出 UTF-16,运行:
./configure CFLAGS="-g -O2 -fshort-wchar" CPPFLAGS=-DXML_UNICODE_WCHAR_T --without-xmlwf
注意:后者还需要使用 -fshort-wchar 编译的 libc。
运行 make(其中不包括 xmlwf)。
运行 make install(同样不包括 xmlwf)。
支持使用 DESTDIR。其工作方式如下:
make install DESTDIR=/path/to/image
会覆盖 Makefile 中设置的 DESTDIR,因为变量设置的优先级为
注意:这仅适用于 Expat 库本身,目前不支持构建 xmlwf 和测试程序的 UTF-16 版本。
当在使用 autoconf 进行配置的项目中使用 Expat 时,你可以使用 conftools/expat.m4
中的探测宏来确定如何包含 Expat。有关更多信息,请参阅该文件顶部的注释。
参考手册位于本发行版的 doc/reference.html 文件中。