Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [pillola] Tecnologie SAX e DOM

    Le tecnologie per analizzare i dati racchiusi in un file XML sono essenzialmente due: SAX (Simple API for XML, http://www.megginson.com/SAX) e DOM (Document Object Model, http://www.w3c.org).

    SAX è l’interfaccia standard per il parsing XML basato su eventi, sviluppato in collaborazione dai membri della mailing list XML-DEV, attualmente presentato da OASIS. SAX 2.0 è stato rilasciato Venerdì 5 Maggio 2000, ed è di pubblico dominio sia per uso commerciale che non.

    SAX2 è la nuova versione di SAX con nuove caratteristiche quali il supporto contenuto per Namespaces , per filtri incatenati, e per l’interrogazione ed il settaggio delle caratteristiche e delle proprietà nel parser.

    Il DOM è un’interfaccia neutrale che permette ai programmi e agli script di accedere dinamicamente ai documenti. Tale interfaccia permette di aggiornare il contenuto, la struttura e lo stile dei documenti.


    Le differenze tra i due sono sostanzialmente riferite alle modalità di interazione tra le API (Application Programming Interface) e l’applicazione che ne fa uso. L’architettura SAX si basa su una sorta di cooperazione fra parser e applicazione al fine di rappresentare il documento nella maniera più consona ad un problema specifico. In termini pratici, durante l’analisi, l’applicazione riceve dal parser SAX degli eventi opportuni che descrivono il riconoscimento di un particolare elemento del documento; in questo modo l’applicativo può eventualmente scartare quelle informazioni alle quali non è interessato, rendendo l’operazione molto più veloce e meno onerosa in termini di occupazioni di risorse. Nel caso DOM, al contrario, l’applicazione ha a disposizione direttamente una descrizione ad albero dell’intero documento in oggetto.

    Un parser SAX funziona in un modo molto semplice: legge, carattere dopo carattere, tutto il documento XML dato in input e genera una serie di eventi (callback) ogni volta che riconosce la presenza di particolari informazioni. Tali informazioni sono solo notificate ai vari handler che poi le utilizzeranno nel modo opportuno.
    La sequenzialità con cui opera un parser SAX, dovendo rileggere più volte il documento, rende però dispendioso l’utilizzo delle risorse e di tempo. Per ovviare a tale problema è stato sviluppato il parser DOM.

    Il DOM, a differenza di SAX, è una specifica del W3C (come XML) e le versioni si indicano per livelli. Per ogni elemento all’interno del documento XML, è prevista la definizione di un’interfaccia.
    Il DOM permette di disporre - in memoria - la totalità delle informazioni contenute nel documento XML e di un meccanismo per elaborarle. Conservare in memoria tutte le informazioni è molto vantaggioso nel caso di modifica dei dati estrapolati; ciò sarebbe ancora più evidente nel caso in cui la modifica di alcune informazioni dipendesse dalla loro globalità.
    In caso della mancata validità del documento, il parser si interromperà e visualizzerà un messaggio d’errore.
    Ma anche il parser DOM ha i suoi svantaggi, concernenti l’uso della memoria, specie quando i file XML esaminati hanno dimensioni di alcuni MB.

    Questo significa che il parser da utilizzare dipende da vari fattori che vanno valutati caso per caso. E’ consigliabile usare dei parser SAX in caso di documenti XML:
    Ø di grandi dimensioni;
    Ø non soggetti a modifiche;
    Ø sui quali si devono eseguire operazioni di conteggio (o simili).

    I parser DOM, invece, sono consigliati in caso di documenti XML:
    Ø strutturati in modo complesso;
    Ø di dimensioni ridotte;
    Ø soggetti a modifiche;
    Ø la cui elaborazione dipende dalle informazioni contenute in tutto il documento.

    Comunque SAX e DOM non sono completamente slegati: la maggior parte dei parser DOM, utilizzano, infatti, la libreria SAX.
    My space! Voglio Arthur!!!
    Ho fatto strike!!!
    dotty78

    Prima di postare in “XML, XSL, Smil” dai uno sguardo ai Link utili!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    8

    JAXP

    JAXP è un'API sviluppata dalla Sun per fornire un livello di atrazione sull'ottenimento di un'istanza di [COLOR=dark-blue]parser SAX[/COLOR] o [COLOR=dark-blue]DOM[/COLOR].

    L'intero pacchetto JAXSP è contenuto in java.xml.parsers.

    Chi ha utilizzato DOM o SAX si è reso conto che è necessario importare esplicitamente e referenziare una classe di parser dal codice Java del proprio fornitore.

    Ad esempio per Apache Xerces queste classi sono org.apache.xerces.parsers.SAXParser oppure org.apache.xerces.parsers.DOMParser.

    Il problema insito in questo approccio consiste nel fatto che la modifica della classe di parser utilizzata richiede un cambiamento nel codice dell'applicazione ed una successiva ricompilazione. Mentre modifiche nella scelta del parser di un fornitore o di un altro sono significative, sarebbe auspicabile che un parser possa essere inserito con maggiore facilità e questo è il problema che JAXP di risolvere.

    Infatti con JAXP invece di importare direttamente la classe di parser di un fornitore è possibile specificare il parser da utilizzare mediante una proprietà del sitema.
    JAXP legge questa proprietà e gestisce il caricamento del parser richiesto.

    In questo modo la modifica del parser scelto "costringe" solamente ad una modifica di tale proprietà del sistema, visto che poi l'applicazione utilizza i wrapper forniti da Sun come livello di atrazione.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.