
Biblioteca C para analizar XML, que proporciona análisis orientado a flujo con registro de manejadores, soporte para codificación UTF-16 e incluye un manual de referencia.
Esto es Expat, una biblioteca C para analizar XML, iniciada por James Clark en 1997. Expat es un analizador XML orientado a flujos. Esto significa que registra manejadores con el analizador antes de iniciar el análisis. Estos manejadores se invocan cuando el analizador descubre las estructuras asociadas en el documento que se está analizando. Una etiqueta de inicio es un ejemplo del tipo de estructuras para las que puede registrar manejadores.
Los usuarios de Windows deben usar el
expat_win32 package,
que incluye tanto bibliotecas precompiladas como ejecutables, y código fuente para
desarrolladores.
Expat es software libre.
Puede copiarlo, distribuirlo y modificarlo bajo los términos de la Licencia
contenida en el archivo
COPYING
distribuido con este paquete.
Esta licencia es la misma que la licencia MIT/X Consortium.
Si está compilando Expat desde un checkout del repositorio Git, necesita ejecutar un script que genera el script configure usando las herramientas GNU autoconf y libtool. Para hacer esto, necesita tener autoconf 2.58 o más reciente. Ejecute el script de esta manera:
./buildconf.sh
Una vez hecho esto, siga las mismas instrucciones que para compilar desde una distribución fuente.
Para compilar Expat desde una distribución fuente, primero ejecute el script de shell de configuración en el directorio de distribución de nivel superior:
./configure
Hay muchas opciones que puede proporcionar a configure (puede
descubrirlas ejecutando configure con la opción --help). Pero la
de mayor interés es la que establece el directorio de instalación.
Por defecto, el script configure configurará las cosas para instalar
libexpat en /usr/local/lib, expat.h en /usr/local/include, y
xmlwf en /usr/local/bin. Si, por ejemplo, prefiere instalar
en /home/me/mystuff/lib, /home/me/mystuff/include, y
/home/me/mystuff/bin, puede informar a configure sobre eso con:
./configure --prefix=/home/me/mystuff
Otra opción interesante es habilitar el soporte de enteros de 64 bits para números de línea y columna y el índice de bytes general:
./configure CPPFLAGS=-DXML_LARGE_SIZE
Sin embargo, tal modificación sería un cambio incompatible con la ABI y por lo tanto no se recomienda para uso general — p. ej. como parte de una distribución de Linux — sino más bien para compilaciones con requisitos especiales.
Después de ejecutar el script configure, el comando make compilará
las cosas y make install las instalará en su ubicación adecuada.
Eche un vistazo al Makefile para conocer opciones adicionales
de make. Tenga en cuenta que necesita tener permiso de escritura en
los directorios donde se instalarán las cosas.
Si está interesado en compilar Expat para proporcionar información
de documentos en codificación UTF-16 en lugar de la UTF-8 predeterminada, siga
estas instrucciones (después de haber ejecutado make distclean).
Tenga en cuenta que configuramos con --without-xmlwf porque xmlwf no
soporta este modo de compilación (aún):
Parchear en masa los archivos Makefile.am para usar libexpatw.la como nombre de biblioteca:
find -name Makefile.am -exec sed -e 's,libexpat\.la,libexpatw.la,' -e 's,libexpat_la,libexpatw_la,' -i {} +
Ejecute automake para reescribir los archivos Makefile.in:
automake
Para salida UTF-16 como unsigned short (y cadenas de versión/error como char),
ejecute:
./configure CPPFLAGS=-DXML_UNICODE --without-xmlwf
Para salida UTF-16 como wchar_t (incl. cadenas de versión/error), ejecute:
./configure CFLAGS="-g -O2 -fshort-wchar" CPPFLAGS=-DXML_UNICODE_WCHAR_T --without-xmlwf
Nota: Esto último requiere libc compilada con -fshort-wchar, también.
Ejecute make (que excluye xmlwf).
Ejecute make install (nuevamente, excluye xmlwf).
El uso de DESTDIR está soportado. Funciona de la siguiente manera:
make install DESTDIR=/path/to/image
anula el DESTDIR establecido en el makefile, porque la prioridad de establecimiento de variables es
Nota: Esto solo aplica a la biblioteca Expat en sí, actualmente no se soporta la compilación de versiones UTF-16 de xmlwf y las pruebas.
Al usar Expat con un proyecto que usa autoconf para la configuración,
puede usar la macro de sondeo en conftools/expat.m4 para determinar cómo
incluir Expat. Vea los comentarios al inicio de ese archivo para más
información.
Hay un manual de referencia disponible en el archivo doc/reference.html en esta
distribución.