1 / 16

SAX Simple API for XML

Du šan Ilić. SAX Simple API for XML. Alternativa DOM-u Direktan API zasnovan na događajima Sekvencijalni pristup Brži i koristi manje memorije Originalno izveden u programskom jeziku Java Besplatan. O SAX-u. Decembra 1997. godine počeo proces razvitka SAX-a ( YAXPAPI , Peter Murray-Rust)

vaughn
Download Presentation

SAX Simple API for XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dušan Ilić SAXSimple API for XML

  2. Alternativa DOM-u Direktan API zasnovan na događajima Sekvencijalni pristup Brži i koristi manje memorije Originalno izveden u programskom jeziku Java Besplatan O SAX-u

  3. Decembra 1997. godine počeo proces razvitka SAX-a (YAXPAPI, Peter Murray-Rust) Diskusija o dizajnu vođena na XML-DEV mailing listi Januara 1998. godine izašla beta verzija 11. Maj 1998. SAX v1.0 Januara 2002. SAX 2.0.1 (podrška za namespace) Istorija

  4. SAX je API zasnovan na događajimakoji služi začitanje XML dokumenata Zasnovan je na sekventnom pristupu Korisnik definiše metode koje će biti pozvane kad parser naiđe na neki događaj

  5. XML text čvorovi XML elment čvorovi XML instrukcije XML komentari Događaji

  6. <?xml version="1.0"?> <doc> <param>Hello,world!</param> </doc> Primer start document start element: doc start element: param characters: Hello,world! end element: param end element: doc end document

  7. Količina memorije koju obično SAX parser koristi je mnogo manja u odnosu na memoriju koju DOM parser koristi • Količina memorije koju SAX parser koristi zavisi od maksimalne dubine XML dokumenta i maksimalnoj količini podataka smeštenoj u XML atributu jednog XML elementa • Vrlo korisno kod velikih XML dokumenata • SAX je bolji za pronalaženje i čitanje pojedinačnog podatka iz strukture Prednosti

  8. Ne postoji random pristup-SAX parsovanje je jednosmerno(podaci koji su pročitani ranije ne mogu se ponovo pročitati bez ponovnog parsovanja) • Leksičke informacije nisu dostupne("&#xa;" ili"&#10;" ili novi red će biti isto prikazani) Mane

  9. SAX je primarno kolekcija interfejsa koji se nalaze u org.xml.sax paketu • XMLReader • ContentHandler • DTDHandler • ErrorHandler • XMLFilter • ...

  10. Interfejs koji predstavlja XML parser • Da bi se parsovao dokument mora se napraviti instanca XMLReader-a pomoću XMLReaderFactory klase koja se nalazi u org.xml.sax.helpers paketu XMLReader parser=XMLReaderFactory.createXMLReader(); XMLReader

  11. Svaki put kadaXMLReader pročitadeodokumenta on pozovemetodu iz svog ContentHandler-a • Primer ContentHandler-a public interface ContentHandler{ public void setDocumentLocator(Locator locator); public void startDocument() throws SAXException; public void endDocument() throws SAXException; public void startPrefixMapping(String prefix, String uri) throws SAXException; public void characters(char[] text, int start, intlenght) throws SAXException; . . . }

  12. SAX koristi features(funkcije) i properties(osobine) da bi kontrolisao ponašanje parsera • Svaka funkcija i osobina ima ime koji je ustvari apsolutni URI.Ovi URI se koriste samo za imenovanje i ne moraju pokazivati na stvarnu stranu koju možete učitati u browser-u • Features su ili tačne ili netačne • Properties imaju vrednost određenog Object type-a Funkcije i osobine

  13. SAX filtri stoje između parsera i klijentske aplikacije Presreću poruke koje ova dva objekta šalju međusobno Ovi filtri mogu samo proslediti poruke, ali ih mogu i menjati, zameniti ili blokirati Implementiraju se nasleđivanjem klase org.xml.sax.helpers.XMLFilterImpl Filtri

  14. 1. Napraviti objekat filtra 2. Napraviti XMLReader koji će parsovati dokument 3. Povezati filtar sa parserom[ setParent() metoda] 4. Instalirati ContentHandler u filtru 5. Parsovati dokument pozivanjem metode filtra parse() Parsovanje korišćenjem filtera

  15. Šta je SAX? Koje sve događaje SAX parser obrađuje? Navesti primer parsovanja pomoću SAX-a Kada koristiti SAX? Navesti glavne interfejse SAX-a Pitanja

More Related