Streaming API pro XML

Streaming API for XML ( StAX ) je rozhraní pro programování aplikací (API) pro zpracování souborů XML z prostředí Java .

Referenční implementace je k dispozici jako svobodný software pod podmínkami licence Apache .

technologie

XML API jsou tradičně:

na stromě
(např. DOM ) - celý dokument se načte do paměti jako stromová struktura a lze k němu přistupovat přímo odtud.
událost založená
(např. SAX ) - aplikace obdrží událost, když jsou v dokumentu objeveny nové entity.

Obě varianty mají výhody i nevýhody: první umožňuje náhodný přístup k dokumentu, ale musí dokument uchovávat v paměti, a proto vyžaduje více paměti. Druhým je jediný průchod zdrojovým dokumentem, a proto téměř nevyžaduje žádnou paměť a je také rychlejší při analýze, ale neumožňuje přímý přístup k prvkům nebo změnám ve stromu.

StAX byl navržen jako prostředník mezi těmito dvěma protiklady. V metaforě StAX je programovou položkou kurzor, který představuje bod v dokumentu. Aplikace posune kurzor dopředu, takže získá informace, které potřebuje, z analyzátoru přesně v případě potřeby. To se liší od API založeného na událostech, jako je SAX, které aktivně odesílá data do aplikace a tak nutí aplikaci spravovat informace o stavu mezi událostmi, aby bylo možné zaznamenat aktuální pozici v dokumentu.

Kromě přístupu k datům XML pomocí kurzoru nabízí StAX také metodu iterátoru. Metoda iterátoru dodává data ve formě objektů, které jsou odvozeny z třídy XMLEvent. Vytvořené objekty nabízejí vývojáři Java více možností než řetězcové objekty v metodě kurzoru, ale snižují výkon.

Spolu s DOM, SAX a XSLT je StAX jedním z rozhraní Java API pro zpracování XML .

Počátky

StAX má své kořeny v celé řadě programových rozhraní řízených událostmi, především v „XMLPULL“, jejichž autoři ( Stefan Haustein a Aleksandr Slominski ) spolupracovali mimo jiné s BEA , Oracle , Sun Microsystems , Breeze Factor a Jamesem Clarkem .

webové odkazy