JAXP : Java Api For XML Processing – SAX
Una breve introduzione alla API Java per il SAX parser
SAX, ovvero Simple Api for Xml, definisce un parser event-driven per l’XML. Quando abbiamo davanti un file XML, caratterizzato da tag di inizio, dei contenuti e tag di chiusura, usando SAX avremo a disposizione degli eventi, ovvero ci verrà segnalato durante il parsing di un documento XML quando inizia un nuovo tag, le informazioni contenute e quando si chiude.
A livello di codice avremo un handler che ci segnalerà questi eventi. Quest’ultimo dobbiamo implementarlo noi da un interfaccia , ContentHandler, che appunto definisce i metodi startElement, characters ed endElement.
Così facendo il nostro parser scorre dall’inizio alla fine tutto il file XML, notificandoci di volta in volta cosa inizia e cosa finisce, poi chiaramente sarà compito nostro rispetto alle esigenze del programma, manipolare le informazioni che ci vengono date.
Ecco un esempio di codice dove viene istanziato il nostro parser.
1 2 3 |
SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); saxParser.parse("filedaparsare.xml", handler); |
L’handler che passiamo al parser SAX avrà chiaramente i metodi già detti implementati che permetteranno la manipolazione dei dati contenuti nel file. Possiamo utilizzare il parser SAX anche per validare il nostro file XML in questo modo
1 |
factory.setValidating(true); |
Cosi se nel nostro file abbiamo definito il DTD corrispondente il parser SAX ci indicherà la validità o no del file XML rispetto alle regole definite.