Saltar para o conteúdo

Simple API for XML

Origem: Wikipédia, a enciclopédia livre.

Simple API for XML (abreviado SAX, em portugues "API simples para XML") é uma API que provê acesso serial ao conteúdo de um documento XML de forma orientada a eventos.[1] É uma alternativa ao Document Object Model (DOM)[2]. A implementação inicial da API foi realizada em Java, mas atualmente disponível para outras linguagens (mesmo sem um padrão).[1][3][4].

Funcionamento

[editar | editar código-fonte]

Considerando que o documento XML a seguir seja processado através do SAX:[5]

<?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.

Vantagens e desvantagens

[editar | editar código-fonte]

A principal vantagem do SAX é o menor gasto de memória, o que é conseguido através do processamento serial do documento[6]. 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[7]. Outra vantagem é o processamento em fluxo, ideal para leituras contínuas no disco ou recebimento através da rede[3].

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.

Referências

  1. a b «Simple API for XML (SAX)». IBM DeveloperWorks. Consultado em 20 de abril de 2014 
  2. «Java SAX Parser Example Tutorial to parse XML to List of Objects». JournalDev. Consultado em 20 de abril de 2014 
  3. a b «SAX, the power API». IBM DeveloperWorks. Consultado em 20 de abril de 2014 
  4. «Using the SAX API». Apache Xerces. Consultado em 20 de abril de 2014 
  5. Baseado em «Events vs. Trees». saxproject.org. Consultado em 20 de abril de 2014 
  6. «Lesson: Simple API for XML». The Java Tutorials. Consultado em 20 de abril de 2014 
  7. A.M. Kuchling. «SAX: The Simple API for XML». Python XML Howto. Consultado em 20 de abril de 2014 

Ligações externas

[editar | editar código-fonte]
Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.