
Biblioteca C para análise XML orientada a fluxo, fornecendo manipuladores para analisar estruturas em documentos. Inclui a ferramenta xmlwf e suporta codificação UTF-16.
Este é o Expat, uma biblioteca C para analisar XML, iniciada por James Clark em 1997. Expat é um analisador XML orientado a fluxo. Isso significa que você registra manipuladores com o analisador antes de iniciar a análise. Esses manipuladores são chamados quando o analisador descobre as estruturas associadas no documento que está sendo analisado. Uma tag de abertura é um exemplo do tipo de estruturas para as quais você pode registrar manipuladores.
Usuários do Windows devem usar o
expat_win32 package,
que inclui tanto bibliotecas e executáveis pré-compilados quanto
código-fonte para desenvolvedores.
Expat é software livre.
Você pode copiar, distribuir e modificá-lo sob os termos da Licença
contida no arquivo
COPYING
distribuído com este pacote.
Esta licença é a mesma da licença MIT/X Consortium.
Se você está construindo o Expat a partir de um checkout do repositório Git, precisa executar um script que gera o script configure usando as ferramentas GNU autoconf e libtool. Para isso, você precisa ter autoconf 2.58 ou mais recente. Execute o script assim:
./buildconf.sh
Depois que isso for feito, siga as mesmas instruções para construir a partir de uma distribuição de código-fonte.
Para construir o Expat a partir de uma distribuição de código-fonte, primeiro execute o script de configuração no diretório de distribuição de nível superior:
./configure
Existem muitas opções que você pode fornecer ao configure (que você
pode descobrir executando configure com a opção --help). Mas a
de maior interesse é a que define o diretório de instalação.
Por padrão, o script configure irá configurar as coisas para instalar
libexpat em /usr/local/lib, expat.h em /usr/local/include, e
xmlwf em /usr/local/bin. Se, por exemplo, você preferir instalar
em /home/me/mystuff/lib, /home/me/mystuff/include, e
/home/me/mystuff/bin, você pode informar ao configure sobre isso
com:
./configure --prefix=/home/me/mystuff
Outra opção interessante é habilitar suporte a inteiros de 64 bits para números de linha e coluna e o índice geral de bytes:
./configure CPPFLAGS=-DXML_LARGE_SIZE
No entanto, tal modificação seria uma mudança incompatível com a ABI e, portanto, não é recomendada para uso geral — por exemplo, como parte de uma distribuição Linux — mas sim para compilações com requisitos especiais.
Após executar o script configure, o comando make construirá as
coisas e make install instalará as coisas em seus devidos locais.
Dê uma olhada no Makefile para aprender sobre opções adicionais
do make. Observe que você precisa ter permissão de escrita nos
diretórios nos quais as coisas serão instaladas.
Se você está interessado em construir o Expat para fornecer
informações do documento em codificação UTF-16 em vez do UTF-8
padrão, siga estas instruções (após ter executado make distclean).
Observe que configuramos com --without-xmlwf pois o xmlwf ainda
não suporta este modo de compilação:
Aplique patches em massa nos arquivos Makefile.am para usar
libexpatw.la como nome da biblioteca:
find -name Makefile.am -exec sed -e 's,libexpat\.la,libexpatw.la,' -e 's,libexpat_la,libexpatw_la,' -i {} +
Execute automake para reescrever os arquivos Makefile.in:
automake
Para saída UTF-16 como unsigned short (e strings de versão/erro
como char), execute:
./configure CPPFLAGS=-DXML_UNICODE --without-xmlwf
Para saída UTF-16 como wchar_t (incluindo strings de
versão/erro), execute:
./configure CFLAGS="-g -O2 -fshort-wchar" CPPFLAGS=-DXML_UNICODE_WCHAR_T --without-xmlwf
Nota: O último requer libc compilada com -fshort-wchar, também.
Execute make (que exclui xmlwf).
Execute make install (novamente, exclui xmlwf).
O uso de DESTDIR é suportado. Funciona da seguinte forma:
make install DESTDIR=/path/to/image
substitui o DESTDIR definido no makefile, pois a prioridade de
definição de variáveis é
Nota: Isso se aplica apenas à própria biblioteca Expat; atualmente não é suportada a construção de versões UTF-16 do xmlwf e dos testes.
Ao usar o Expat com um projeto que utiliza autoconf para configuração,
você pode usar a macro de sondagem em conftools/expat.m4 para
determinar como incluir o Expat. Consulte os comentários no topo
desse arquivo para mais informações.
Um manual de referência está disponível no arquivo doc/reference.html
nesta distribuição.