
Esto es Expat, una biblioteca en C para el análisis de XML, iniciada por James Clark en 1997. Expat es un analizador de XML orientado a flujo. Esto significa que usted registra manejadores con el analizador antes de comenzar el análisis. Estos manejadores se invocan cuando el analizador encuentra las estructuras asociadas en el documento que se está analizando. Una etiqueta de apertura es un ejemplo del tipo de estructuras para las cuales puede registrar manejadores.
Los usuarios de Windows deben usar el
paquete expat_win32,
que incluye tanto bibliotecas como ejecutables precompilados, y el 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 a partir de una copia del repositorio de Git, necesita ejecutar un script que genere el script configure utilizando las herramientas GNU autoconf y libtool. Para ello, necesita tener autoconf 2.58 o más reciente. Ejecute el script de la siguiente manera:
./buildconf.sh
Una vez hecho esto, siga las mismas instrucciones que para compilar a partir de una distribución de código fuente.
Para compilar Expat a partir de una distribución de código fuente, primero ejecute el script de configuración de shell en el directorio de distribución de nivel superior:
./configure
Hay muchas opciones que puede proporcionar a configure (las cuales puede
descubrir ejecutando configure con la opción --help). Pero la
de mayor interés es la que establece el directorio de instalación.
De forma predeterminada, 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 de ello a configure con:
./configure --prefix=/home/me/mystuff
Otra opción interesante es habilitar la compatibilidad con enteros de 64 bits para los 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 que rompe 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 correspondiente.
Revise el Makefile para conocer otras
opciones de make. Tenga en cuenta que necesita tener permiso de escritura en
los directorios en los que se instalarán las cosas.
Si está interesado en compilar Expat para proporcionar información de
documento 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 ya que xmlwf no
admite este modo de compilación (todavía):
Parchee 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 (incluidas las cadenas de versión/error), ejecute:
./configure CFLAGS="-g -O2 -fshort-wchar" CPPFLAGS=-DXML_UNICODE_WCHAR_T --without-xmlwf
Nota: Esto último también requiere que libc esté compilada con -fshort-wchar.
Ejecute make (que excluye a xmlwf).
El uso de DESTDIR es compatible. Funciona de la siguiente manera:
make install DESTDIR=/path/to/image
anula el DESTDIR establecido en el Makefile, porque la prioridad de asignación de variables es
Nota: Esto solo se aplica a la propia biblioteca Expat; actualmente no se admite la compilación de versiones UTF-16 de xmlwf y de las pruebas.
Cuando use Expat con un proyecto que utilice autoconf para la configuración,
puede usar la macro de sondeo en conftools/expat.m4 para determinar cómo
incluir Expat. Consulte los comentarios al principio de ese archivo para obtener
más información.
Hay un manual de referencia disponible en el archivo doc/reference.html de esta
distribución.
Ejecute make install (de nuevo, excluye a xmlwf).