Simple API for XML
Origem: Wikipédia, a enciclopédia livre.
Simple API for XML (API simples para XML) ou também conhecido pela abreveatura SAX é uma API que provê acesso serial ao conteúdo de um documento XML. É uma alternativa ao Document Object Model ou DOM. Não existe um padrão para SAX assim como existe para o DOM, embora a implementação da API em Java seja considerada o padrão.
[editar] Funcionamento
Considerando que o documento XML a seguir seja processado através do SAX:
<?xml version="1.0" encoding="utf-8"?> <carros> <popular> <nome fabricante="Volkswagen">Gol</nome> <nome fabricante="Fiat">Uno</nome> </popular> <luxo> <nome>Omega</nome> </luxo> </carros>
Os seguintes eventos serão relatados:
- Instrução de processamento denominada xml com atributos version e encoding
- Abertura da tag carros
- Abertura da tag popular
- Abertura da tag nome com atributo fabricante de valor Volkswagen
- Texto da tag Gol
- Fechamento da tag nome
- Abertura da tag nome com atributo fabricante de valor Fiat
- Texto da tag Uno
- Fechamento da tag nome
- Fechamento da tag popular
- Abertura da tag luxo
- Abertura da tag nome
- Texto da tag Omega
- Fechamento da tag nome
- Fechamento da tag luxo
- Fechamento da tag carros
Os eventos podem variar de acordo com a implementação do SAX mas servem para ilustrar o processamento serial que é realizado pela API.
[editar] Vantagens e desvantagens
A principal vantagem do SAX é o menor gasto de memória, o que é conseguido através do processamento serial do documento. Ao contrário do DOM, que carrega todo o documento na memória, é preciso manter na memória apenas as tags externas a aquela que está sendo visitada. Outra vantagem é o processamento em fluxo, ideal para leituras contínuas no disco ou recebimento através da rede.
Já a principal desvantagem do SAX é a potencial impossibilidade de validação do mesmo através de um DTD que em certos casos só pode ser realizada se o documento estiver integralmente na memória. Outra desvantagem é a própria natureza serial que impossibilita saltos e leituras em trechos anteriores do documento.