Streaming API for XML
Streaming API for XML ( StAX ) to interfejs programowania aplikacji (API) do przetwarzania plików XML z języka Java .
Implementacja referencyjna jest dostępny jako wolne oprogramowanie zgodnie z warunkami licencji Apache .
technologia
Tradycyjnie interfejsy API XML to:
- oparte na drzewie
- (np. DOM ) - cały dokument jest wczytywany do pamięci jako struktura drzewiasta i można uzyskać do niego bezpośredni dostęp.
- na podstawie wydarzenia
- (np. SAX ) - aplikacja odbiera zdarzenie w przypadku wykrycia nowych podmiotów w dokumencie.
Oba warianty mają zalety i wady: pierwszy umożliwia swobodny dostęp do dokumentu, ale musi przechowywać dokument w pamięci i dlatego wymaga większej ilości pamięci. Drugi to pojedyncze przejście przez dokument źródłowy i dlatego prawie nie wymaga żadnej pamięci, a także jest szybszy podczas analizowania, ale nie pozwala na bezpośredni dostęp do elementów lub zmian w drzewie.
StAX został zaprojektowany jako środek między tymi dwoma przeciwieństwami. W metaforze StAX wpis programowy to kursor reprezentujący punkt w dokumencie. Aplikacja przesuwa kursor do przodu, więc pobiera potrzebne informacje z parsera dokładnie wtedy , gdy są potrzebne. Różni się to od interfejsu API opartego na zdarzeniach, takiego jak SAX, który aktywnie przesyła dane do aplikacji, a tym samym zmusza aplikację do zarządzania informacjami o statusie między zdarzeniami w celu zarejestrowania aktualnej pozycji w dokumencie.
Oprócz dostępu do danych XML za pomocą kursora, StAX oferuje również metodę iteratora. Metoda iteratora dostarcza dane w postaci obiektów, które pochodzą z klasy XMLEvent. Utworzone obiekty oferują programiście Java więcej opcji niż obiekty typu string w metodzie kursora, ale zmniejszają wydajność.
Wraz z DOM, SAX i XSLT, StAX jest jednym z interfejsów Java API do przetwarzania XML .
Pochodzenie
StAX ma swoje korzenie w całej gamie interfejsów programistycznych sterowanych zdarzeniami, głównie "XMLPULL", których autorzy ( Stefan Haustein i Aleksandr Słominski ) pracowali między innymi z BEA , Oracle , Sun Microsystems , Breeze Factor i James Clark .
linki internetowe
- JSR-173 - StAX (angielski)
- Wprowadzenie do StAX na xml.com (angielski)
- XMLPull.org (angielski)
- Praca z wynikami firmy Sun Microsystems, Inc., od 2005-08 (angielski, PDF, 203 kB)