Simple API for XML

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Simple API for XML (SAX), dosłownie: "proste API dla XML-a", to interfejs programistyczny do sekwencyjnego parsingu dokumentów XML. Jest to jeden z mechanizmów, który pozwala odczytywać dane zapisane w dokumentach XML. SAX jest popularną alternatywą dla DOM.

Przetwarzanie XML-a przez SAX[edytuj | edytuj kod]

Parser, który implementuje SAX, działa jako parser strumieniowy sterowany zdarzeniami. Użytkownik określa szereg metod, które obsługują zdarzenia pojawiające się podczas przetwarzania danych. SAX rozpoznaje m.in. następujące elementy dokumentu XML:

  • węzły tekstowe
  • elementy
  • instrukcje przetwarzania
  • komentarze

Zdarzenia wywoływane są podczas napotkania któregokolwiek z powyższych elementów - dwukrotnie, na początku i na końcu. Atrybuty są dostępne jako część danych przekazywanych do procedury obsługi danego zdarzenia.

Przetwarzanie z użyciem SAX jest jednokierunkowe - wcześniej przetworzone dane nie mogą być ponownie odczytane bez ponownego uruchomienia całej procedury.

Przykład[edytuj | edytuj kod]

Dla następującego dokumentu XML:

 <?xml version="1.0" encoding="UTF-8"?>
 <RootElement param="value">
     <FirstElement>
         Some Text
     </FirstElement>
     <SecondElement param2="something">
         Pre-Text <Inline>Inlined text</Inline> Post-text.
     </SecondElement>
 </RootElement>

parser SAX może wygenerować następującą sekwencję zdarzeń, wskazujących na wystąpienie kolejnych elementów dokumentu:

  • prolog dokumentu, nazwa xml, z atrybutem version o wartości "1.0" oraz encoding o wartości "UTF-8"
  • początek elementu, nazwa RootElement, z atrybutem param o wartości "value"
  • początek elementu, nazwa FirstElement
  • węzeł tekstowy o treści "Some Text" (uwaga: przetwarzanie węzłów tekstowych, zwłaszcza w odniesieniu do spacji może się nieco różnić)
  • koniec elementu, nazwa FirstElement
  • początek elementu, nazwa SecondElement, z atrybutem param2 o wartości "something"
  • węzeł tekstowy o treści "Pre-Text"
  • początek elementu, nazwa Inline
  • węzeł tekstowy o treści "Inlined text"
  • koniec elementu, nazwa Inline
  • węzeł tekstowy o treści "Post-text."
  • koniec elementu, nazwa SecondElement
  • koniec elementu, nazwa RootElement

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]