StAX - StAX - Wikipedia
Streaming API pro XML (StAX) je rozhraní pro programování aplikací (API ) číst a psát XML dokumenty pocházející z Programovací jazyk Java společenství.
Tradičně jsou XML API buď:
- Na základě DOM - celý dokument se načte do paměti jako stromová struktura pro náhodný přístup volající aplikací
- na základě události - aplikace se registruje, aby přijímala události, protože se ve zdrojovém dokumentu vyskytují entity.
Oba mají výhody: DOM například umožňuje náhodný přístup k dokumentu a algoritmus řízený událostmi SAXOFON má malou paměťovou stopu a je obvykle mnohem rychlejší.
Tyto dvě přístupové metafory lze považovat za polární protiklady. Rozhraní API založené na stromech umožňuje neomezený náhodný přístup a manipulaci, zatímco rozhraní API založené na událostech je průchod zdrojovým dokumentem „jednorázově“.
StAX byl navržen jako medián mezi těmito dvěma protiklady. V metaforě StAX je programovým vstupním bodem kurzor, který představuje bod v dokumentu. Aplikace posune kurzor dopředu - „vytahuje“ informace z analyzátoru podle potřeby. To se liší od API založeného na událostech - jako je SAX - které „posílá“ data do aplikace - vyžadující, aby aplikace udržovala stav mezi událostmi podle potřeby, aby bylo možné sledovat umístění v dokumentu.
Počátky
StAX má své kořeny v řadě nekompatibilních tahových API pro XML, zejména XMLPULL, jejichž autoři (Stefan Haustein a Aleksander Slominski) spolupracovali mimo jiné s Systémy BEA, Věštec, slunce a James Clark.
Příklady
Ze specifikace JSR-173 • Final, V1.0 (používá se v souladu s principem fair use).
Citát:
- Následující rozhraní Java API ukazuje hlavní metody čtení XML v přístupu kurzoru.
veřejnost rozhraní XMLStreamReader { veřejnost int další() hodí XMLStreamException; veřejnost booleovský hasNext() hodí XMLStreamException; veřejnost Tětiva getText(); veřejnost Tětiva getLocalName(); veřejnost Tětiva getNamespaceURI(); // ... jiné metody nejsou zobrazeny }
- Strana pro zápis API má metody, které odpovídají straně pro čtení pro typy událostí „StartElement“ a „EndElement“.
veřejnost rozhraní XMLStreamWriter { veřejnost prázdnota writeStartElement(Tětiva localName) hodí XMLStreamException; veřejnost prázdnota writeEndElement() hodí XMLStreamException; veřejnost prázdnota writeCharacters(Tětiva text) hodí XMLStreamException; // ... další metody nejsou zobrazeny }
- 5.3.1 XMLStreamReader
- Tento příklad ukazuje, jak vytvořit instanci vstupní továrny, vytvořit čtečku a iterovat prvky XML dokumentu.
XMLInputFactory xmlInputFactory = XMLInputFactory.novýInstance(); XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(...); zatímco (xmlStreamReader.hasNext()) { xmlStreamReader.další(); }
Viz také
Konkurenční a doplňkové způsoby zpracování XML v Javě (objednávka je volně založena na počátečním datu zavedení):
- Model objektu dokumentu (DOM), první standardizovaný stromový model zpracování XML založený na jazyce a platformě; zahrnují alternativní modely stromů Java JDOM, Dom4j, a XOM
- Jednoduché API pro XML (SAX), standardní XML push API
- Java XML Binding API (JAXB), pracuje na jiném parseru (obvykle streamovacím parseru), váže obsažená data na / z objektů Java.
- Streamování XML
- XQuery API pro Javu
externí odkazy
- Úvod do StAX XML.com, Harold, Elliotte Rusty
- Java Streaming API pro XML (Stax) - výuka
- Vzory XMLPull Článek o návrhových vzorech XML Pull (a StAX) od Aleksandera Slominského.
- Parser StAX - API pro kurzor a iterátor Článek o API Cursor & Iterator od HowToDoInJava.