Ugrás a tartalomhoz

Streaming API for XML

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen Alfa-ketosav (vitalap | szerkesztései) 2023. augusztus 11., 09:39-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (Új oldal, tartalma: „A '''Streaming API for XML''' ('''StAX''') XML-dokumentumokat író és olvasó alkalmazásprogramozási felület, mely a Java (programozási nyelv)-közösségtől ered. Hagyományosan az XML API-k vagy fa- (az egész dokumentum a memóriába kerül faszerkezetként az alkalmazás általi hozzáférésre), vagy eseményalapúak (az alkalmazás a dokumentumban elért entitások miatti eseményeket regisztrálja).…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

A Streaming API for XML (StAX) XML-dokumentumokat író és olvasó alkalmazásprogramozási felület, mely a Java-közösségtől ered.

Hagyományosan az XML API-k vagy fa- (az egész dokumentum a memóriába kerül faszerkezetként az alkalmazás általi hozzáférésre), vagy eseményalapúak (az alkalmazás a dokumentumban elért entitások miatti eseményeket regisztrálja).

Mindkettőnek megvannak az előnyei: a DOM például lehetővé teszi a dokumentum gyors hozzáférését, és az eseményalapú algoritmusok, például a SAX memóriaigénye alacsony, és gyorsabb. Both have advantages: DOM, for example, allows for random access to the document, and event driven algorithm like SAX has a small memory footprint and is typically much faster.

E hozzáférési változatok ellentétesnek tekinthetők. Egy faalapú API végtelen hozzáférést és változtatást tesz lehetővé, míg egy eseményalapú csupán áthalad a dokumentumon.

A StAX a két ellentét közti középútként lett megtervezve. Itt a program bemeneti helye egy dokumentumbeli helyet meghatározó kurzor. Az alkalmazás előrehelyezi a kurzort – az értelmezőből „húzva” a szükséges információt, szemben az eseményalapú API-kkal, például a SAX-szal, mely azt „tolja” az alkalmazásnak, ami az események közti állapot kezelését igényli a dokumentumbeli hely követéséhez.

Eredet

A StAX számos egymással nem kompatibilis XML API-ból ered, például az XMLPULL-ból,[1] melynek fejlesztői (Stefan Haustein és Aleksander Slominski) többek közt a BEA Systemszel, az Oracle-lel, a Sunnal és James Clarkkal is együttműködtek.

Példák

A JSR-173 specifikáció végleges, 1.0 verziójából:

Az alábbi Java API bemutatja a kurzoros megközelítés fő XML-olvasó metódusait.
public interface XMLStreamReader { 
    public int next() throws XMLStreamException; 
    public boolean hasNext() throws XMLStreamException; 
    public String getText(); 
    public String getLocalName(); 
    public String getNamespaceURI(); 
    // …a többi metódus nincs megjelenítve
}

Az API íróoldala tartalmaz StartElement és EndElement eseménytípusok olvasóoldalának megfelelő metódusokat.

public interface XMLStreamWriter { 
    public void writeStartElement(String localName) throws XMLStreamException;
    public void writeEndElement() throws XMLStreamException; 
    public void writeCharacters(String text) throws XMLStreamException; 
    // …a többi metódus nincs megjelenítve
}

5.3.1 XMLStreamReader E példa bemutatja a bemenetgyár és az olvasó létrehozásának, valamint egy XML-dokumentum elemein való iterálás módszerét.

XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader();
while (xmlStreamReader.hasNext()) {
    xmlStreamReader.next();
}

Jegyzetek

  1. XML Pull Parsing, 2023. január 1. (Hozzáférés: 2023. augusztus 11.)

Fordítás

Ez a szócikk részben vagy egészben a StAX című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Források

Kapcsolódó szócikkek

Versenyző és egymást kiegészítő módok XML Javában való feldolgozására (a kiadás laza időrendi sorrendjében):