vineri, 14 noiembrie 2008

StAX - un pull-API pt parsarea XML

Ce este StAX? Este un API pentru citirea si scrierea documentelor XML, bazat pe streamuri si evenimente, Java-based ... si face parte din categoria parserelor pull. Normal, ca doar vorbim despre Interfete Evoluate, nu despre clatite.
StAX permite realizarea parserelor XML bidirectionale, rapide si usor de programat; si nici nu este un mare consummator de resurse.
StAX este un nou API din familia JAXP si se constituie intr-o alternativa la SAX si DOM, atunci cand se doreste performanta ridicata, filtrarea streamurilor, procesare si modificare, toate acestea cu cat mai putina memorie consumata si necesitati limitate de extensie.

Pull Parsing vs Push Parsing

Parserele pull folosesc o paradigma de programare, in care o aplicatie client cheama metodele dintr-o librarie de parsare XML, atunci cand trebuie sa interactioneze cu un infoset XML – cu alte cuvinte, clientul face un "get" (pulls) pentru datele continute in XML doar atunci cand are nevoie explicita de acestea.
Parserele push folosesc o paradigkma de programare in care un parser XML trimite datele din XML (push) catre client, pe masura ce parserul intalneste elementele dintr-un infoset XML – cu alte cuvinte, parserul trimite date, chiar daca clientul nu este pregatit sa le foloseasca la momentul respectiv de timp.
Dintre avantajele pull-parsing as putea enumera:

* clientul controleaza threadul aplicatie si poate chema metode de parsare doar atunci cand are nevoie.
* prin contrast, in push parsing, parserul controleaza threadul aplicatie.
* librariile pull-parsing pot fi mult mai mici si codul client care interactioneaza cu ele devine mult mai simplu, chiar si in cazul documentelor XML complexe
* clientii unui pull-parser pot citi simultan mai multe documente, intr-un singur thread
* un parser StAX poate filtra documentele XML, a.i. elementele nefolositoare pentru client sa fie ignorate
* in ceea ce priveste metoda de parsare push, aplicatia trebuie sa primeasca toate elementele, deoarece nu exista o schema de filtrare

Avantajele StAX s-ar putea rezuma la:

* Suporta pull-parsing
* Realizeaza trecerea controlului asupra parsarii catre programator, prin expunerea unui API bazat pe iteratii. Aceasta permite programatorului sa ceara urmatorul eveniment (pull the event) si permite retinerea starii intr-o maniera procedurala.
* Stax a fost realizat pentru a adresa limitarile din cele mai importante doua APIpt parsare: DOM si SAX

O scurta comparatie intre StAX si SAX:

* StAX e pull, SAX e push
* Clientii care folosesc StAX sunt in general mai usor de programat, fata de cei care fol SAX
* StAX este un API bidirectional – poate citi si scrie documente XML
* SAX este read-only si necesita un alt API pt scrierea in documente XML.

Mai multe informatii aici.

2 comentarii:

  1. you might also want to look at vtd-xml, the latest and most advanced XML processing API available today

    http://vtd-xml.sf.net

    RăspundețiȘtergere
  2. you might also want to look at vtd-xml
    http://www.60xtv.co.cc

    RăspundețiȘtergere