Expat, Release 2.1.0
这是 Expat,一个用于解析 XML 的 C 语言库,由 James Clark 编写。
Expat 是一个流式 XML 解析器。这意味着你需要在开始解析之前向解析器注册处理器。当解析器在文档中发现相关结构时,这些处理器会被调用。开始标签就是你可以为其注册处理器的结构类型之一。
Windows 用户应使用 expat_win32bin 包,其中包含预编译的库和可执行文件,以及供开发者使用的源代码。
Expat 是自由软件。你可以根据本包中 COPYING 文件所含许可证的条款复制、分发和修改它。该许可证与 MIT/X Consortium 许可证相同。
次版本号为奇数(上述版本号中间的数字)的 Expat 版本是开发版本,应视为测试版软件。次版本号为偶数的版本旨在作为生产级软件。
如果你是从 CVS 仓库签出的版本来构建 Expat,则需要运行一个脚本来使用 GNU autoconf 和 libtool 工具生成 configure 脚本。为此,你的 autoconf 版本应为 2.58 或更新。按如下方式运行脚本:
./buildconf.sh
完成此操作后,按照与从源代码发行版构建相同的说明进行操作。
要从源代码发行版构建 Expat,首先在顶层发行版目录中运行配置 shell 脚本:
./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. 对于以 unsigned short 输出 UTF-16(以及以 char 输出版本/错误字符串),运行:
./configure CPPFLAGS=-DXML_UNICODE
对于以 wchar_t 输出 UTF-16(包括版本/错误字符串),运行:
./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 的默认值,Makefile 的其余部分仅使用 DESTDIR。其工作方式如下: $ make install DESTDIR=/path/to/image 覆盖 Makefile 中设置的 DESTDIR,而以下两者 $ 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(位于 /usr/ccs/bin 中的 "make" 似乎无法正常工作——它看起来不理解 .PHONY 指令)。如果你使用的是 ksh 或 bash,请使用以下命令构建:
PATH=/usr/ccs/bin:$PATH make
当将 Expat 与使用 autoconf 进行配置的项目一起使用时,你可以使用 conftools/expat.m4 中的探测宏来确定如何包含 Expat。有关更多信息,请参见该文件顶部的注释。
本发行版中提供了参考手册,位于文件 doc/reference.html 中。
本项目的首页是 http://www.libexpat.org/。那里有链接可以连接到 bug 报告页面。如果你无法访问浏览器,也可以通过电子邮件将 bug 报告发送到 [email protected]。
关于未来 Expat 开发方向的讨论发生在 [email protected]。该邮件列表的归档以及其他与 Expat 相关的列表可在以下位置找到:
http://mail.libexpat.org/mailman/listinfo/