DOM
SAX
XML
Børre Stenseth

SAX

Hva

SAX står for Simple API for XML. En SAX-parser leser XML-dokumentet sekvensielt og melder fra hver gang et element starter og slutter.

SAX

Det er for de fleste formål hensiktsmessig å betrakte et XML-dokument som en trestruktur. DOM (Document Object Model) er en trestruktur. Trær er enkle å forstå rent konseptuelt og det er relativt enkelt å programmere mot trestrukturer. Det finnes standardiserte måter å bearbeide trær på, i tillegg til den API'en som er beskrevet for DOM. Det kan imidlertid virke litt overdrevet å etablere en trestruktur når vi skal gjøre enkle søk eller utdrag fra dokumenter. Det er ønsket om en forenklet analysemekanisme som er bakgrunnen for SAX. SAX er ikke definert av W3C. Det er resultat av uformelt samarbeid mellom en del programvareleverandører, se referanse nedenfor.

SAX er basert på en sekvensiell gjennomgang av den aktuelle xml-fila. SAX-biblioteker er bygget slik at de gir en melding tilbake til det kallende programmet når et element "intreffer" i strømmen. Det er opp til oss som programmerere å finne ut hva vi skal foreta oss når en begivenhet intreffer og hvor mye vi ønsker å "huske" av tidligere begivenheter.

SAX betraktet som eventhandler

Og det er opp til oss å skrive en StartEventHandler (som på figuren over), og andre events som SAX-parseren genererer og som vi er interesserte i.

Ulempen med SAX er at vi ikke har noe hjelp i å analysere kontekst. Vi vet ikke noe om omgivelsene til den begivenheten vi får melding om. Vi kan selvsagt huske tidligere meldinger og på den måte danne oss et bilde av xml-strukturen, men dette blir fort ganske komplisert. I ytterste konsekvens kan vi ende opp med å implementere DOM.

Fordelen med SAX er at det er enkelt for enkle oppgaver, og det er lite hukommelseskrevende.

[1]
Referanser
  1. SAX saxproject.org www.saxproject.org/ 14-03-2010