SAX e DOM - polito.itcorsiadistanza.polito.it/corsi/pdf/07EKEDC/SAX_DOM.pdf · Analogamente a SAX, il parser DOM è creato utilizzando il Factory Design Pattern ¾Si crea un oggetto
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Il parser è uno modulo software utilizzato per l’analisi di un documentoEseguire il parsing di un documento significa costruire l’albero sintattico ad esso associato
eventualmente, verificandone la rispondenza con lo schema del documento
L’albero ottenuto costituisce la base di ulteriori elaborazioni
Traduzioni verso altri formati, interpretazione, …
L’analisi del documento avvienescandendo la sequenza dei simboli terminali …… aggregandoli in entità più complesse sulla base dei tag…… in base alle semplici regole del XML
L’interpretazione si crea associando ai nodi così costruiti un significato
Esistono due approcci differenti per la realizzazione di un parser:
Costruzione esplicita dell’albero sintatticoo Il documento XML viene rappresentato in modo esplicito, ad
ogni nodo corrisponde un elementoo Il parser naviga la struttura ad albero così realizzata
assegnandole un’interpretazioneModello ad eventi:
o Si scandisce il documento in ingresso generando eventi ogni qualvolta viene identificato un contenuto significativo (inizio elemento, fine elemento, testo racchiuso, errori, …)
o Il parser reagisce agli eventi assegnando un’interpretazione alla struttura ad albero implicitamente definita
Eventi segnalati:Inizio e fine del documentoInizio e fine degli elementiErrori…
SAX implementa un parser generico:L’applicazione, quando richieda un’analisi, specifica l’oggetto/le funzioni da richiamare a fronte dei singoli eventi
Creazione di un parserI parser XML sono creati utilizzando il Factory Design Pattern
Si crea un oggetto parser a partire da un oggetto factoryFactory permette di specificare le caratteristiche/opzioni del parser che deve essere costruito
javax.xml.parser:DocumentBuilderFactory definisce la factory che consente all’applicazione di ottenere il parser DOMDocumentBuilder è la classe che permette di ottenere una istanza dell’albero relativo al documento XML
org.w3c.dom contiene le interfacce che consentono la rappresentazione del documento XML come alberoAttr, CDATASection, CharacterData, Comment, Document, DocumentFragment , DocumentType, DOMImplementation, Element , Entity , EntityReference, NamedNodeMap, Node, NodeList, Notation, ProcessingInstruction, Text
Analogamente a SAX, il parser DOM è creato utilizzando il Factory Design Pattern
Si crea un oggetto parser partendo da un oggetto factory (DocumentBuilderFactory)Successivamente si ottiene un oggetto DocumentBuilderche consente il parsing del documento e l’estrapolazione dell’albero
Element è una sottoclasse di Node e rappresenta un elemento XMLÈ possibile ottenere:
Il nome (getNodeName)Il tipo (getNodeType)Gli attributi (getAttributes)…
Modificare la struttura del documentoAssegnazione di testo ad un elemento (setNodeValue)Nuovo nodo figlio (appendChild)Eliminazione nodo figlio (removeChild)…