Expat, 发布版 2.1.0
这是 Expat,一个由 James Clark 编写的用于解析 XML 的 C 库。 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 库本身,目前不支持构建 xmlwf 和测试的 UTF-16 版本。
Solaris 用户注意:"ar" 命令通常位于 "/usr/ccs/bin" 中,该目录不在默认的 PATH 中。您需要将其添加到 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/。那里有链接可以将您连接到错误报告页面。如果您需要在无法使用浏览器时报告错误,也可以通过电子邮件将错误报告发送到 [email protected]。
有关 Expat 未来发展方向讨论发生在 [email protected]。此邮件列表和其他 Expat 相关列表的存档可在以下网址找到:
http://mail.libexpat.org/mailman/listinfo/