
Expat, Versão 2.1.0
Este é o Expat, uma biblioteca C para parsing de XML, escrita por James Clark. O Expat é um parser de XML orientado a fluxo. Isso significa que você registra handlers (manipuladores) com o parser antes de iniciar o parse. Esses handlers são chamados quando o parser 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 handlers.
Usuários de Windows devem usar o pacote expat_win32bin, que inclui bibliotecas e executáveis pré-compilados, além do código-fonte para desenvolvedores.
Expat é software livre. Você pode copiá-lo, distribuí-lo 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.
Versões do Expat que possuem uma versão menor ímpar (o número do meio na versão acima) são lançamentos de desenvolvimento e devem ser consideradas como software beta. Lançamentos com números de versão menor pares são destinados a ser software de nível de produção.
Se você está compilando o Expat a partir de um check-out do repositório CVS, você precisa executar um script que gera o script configure usando as ferramentas GNU autoconf e libtool. Para fazer 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 compilar a partir de uma distribuição de código-fonte.
Para compilar o Expat a partir de uma distribuição de código-fonte, primeiro execute o shell script de configuração no diretório de nível superior da distribuição:
./configure
Há muitas opções que você pode fornecer ao configure (que você pode descobrir executando o 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 isso ao configure com:
./configure --prefix=/home/me/mystuff
Outra opção interessante é habilitar o 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 que quebraria a compatibilidade da 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" irá compilar os arquivos e "make install" irá instalá-los 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 os arquivos serão instalados.
Se você tem interesse em compilar o Expat para fornecer informações de documento na codificação UTF-16 em vez do UTF-8 padrão, siga estas instruções (depois de ter executado "make distclean"):
1. Para saída UTF-16 como unsigned short (e strings de versão/erro
como char), execute:
./configure CPPFLAGS=-DXML_UNICODE
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
2. Edite o MakeFile, alterando:
LIBRARY = libexpat.la
para:
LIBRARY = libexpatw.la
(Observe o "w" adicional no nome da biblioteca.)
3. Execute "make buildlib" (que compila apenas a biblioteca).
Ou, para economizar o passo 2, execute "make buildlib LIBRARY=libexpatw.la".
4. Execute "make installlib" (que instala apenas a biblioteca).
Ou, se o passo 2 foi omitido, execute "make installlib LIBRARY=libexpatw.la".
O uso de DESTDIR ou INSTALL_ROOT está habilitado, sendo INSTALL_ROOT o valor padrão para DESTDIR, e o restante do make file usando apenas DESTDIR. Funciona da seguinte forma: $ make install DESTDIR=/path/to/image substitui o DESTDIR definido no makefile, enquanto ambos $ INSTALL_ROOT=/path/to/image make install $ make install INSTALL_ROOT=/path/to/image usam DESTDIR=$(INSTALL_ROOT), mesmo que DESTDIR eventualmente seja definido no ambiente, porque a prioridade de definição de variáveis é
Nota: Isso se aplica apenas à própria biblioteca Expat; a compilação de versões UTF-16 do xmlwf e dos testes atualmente não é suportada.
Nota para usuários do Solaris: O comando "ar" geralmente está localizado em "/usr/ccs/bin", que não está no PATH padrão. Você precisará adicionar isso ao seu path para o comando "make", e provavelmente também mudar para o GNU make (o "make" encontrado em /usr/ccs/bin parece não funcionar corretamente -- aparentemente ele não entende diretivas .PHONY). Se você estiver usando ksh ou bash, use este comando para compilar:
PATH=/usr/ccs/bin:$PATH make
Ao usar o Expat com um projeto que usa autoconf para configuração, você pode usar a macro de sondagem (probing macro) em conftools/expat.m4 para determinar como incluir o Expat. Veja 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.
A página inicial deste projeto é http://www.libexpat.org/. Há links lá para conectá-lo à página de relatórios de bugs. Se você precisar relatar um bug sem ter acesso a um navegador, você também pode enviar um relatório de bug por e-mail para [email protected].
Discussões relacionadas à direção do desenvolvimento futuro do expat ocorrem em [email protected]. Os arquivos desta lista e de outras listas relacionadas ao Expat podem ser encontrados em:
http://mail.libexpat.org/mailman/listinfo