eXtensible Markup Language Tutorial - by Marco Giannì
Appendice A: Strumenti software

Il processore XML

Un processore XML è un modulo software utilizzato per leggere documenti XML e verificare che soddisfino la specifica XML. La sua funzione principale consiste nell'analisi e nella convalida dei dati XML. Un processore XML fornisce anche il contenuto di un documento ad una eventuale applicazione; questo vuol dire che una qualsiasi applicazione che deve interagire con documenti XML deve avere al suo interno un processore XML. Un processore può essere utilizzato in modo standalone, per verificare che un documento appena scritto soddisfi la specifica XML, quindi che sia o ben formattato (se non è accompagnato da nessun DTD) o valido (se è accompagnato da DTD). È dunque uno strumento necessario per chi scrive file XML in generale.

Per indicare al processore a quale specifica un documento si riferisce bisogna sempre indicare nella prima istruzione il numero di versione di tale specifica:

<?xml version="1.0"?>

Chiaramente un processore segnala errore se riceve un documento con un numero di versione che non supporta.

In generale gli errori che un processore riporta sono di due tipi:

  • Error: violazione di una regola della specifica; il processore notifica all'applicazione l'errore rilevato e continua sia ad analizzare il documento, sia a fornirne il contenuto all'applicazione; è quest'ultima che deve decidere il comportamento rispetto all'errore (ignorarlo, cercare di correggerlo, etc.).

  • Fatal error: grave violazione di una regola della specifica; il processore notifica all'applicazione l'errore rilevato e può o meno continuare l'analisi del documento per cercare altri errori; non deve però continuare a fornire il contenuto del documento all'applicazione.

Ad esempio una violazione di un vincolo espresso in un DTD (chiaramente non il DTD dell'XML, ma un DTD scritto dall'utente) è considerata un "error"; una violazione di una regola di buona formattazione è invece considerata un "Fatal error" (violare una regola di buona formattazione vuol dire violare un vincolo espresso nel DTD dell'XML).

Ci sono due tipi di processori XML: validating e non-validating (in genere un processore di tipo validating viene chiamato parser). Sia i processori validating che quelli non-validating, devono riportare le violazioni delle regole di buona formattazione incontrate nell'entità documento ed in generale in una qualsiasi entità parsed. Un processore validating deve anche riportare le violazioni dei vincoli espressi attraverso le dichiarazioni nel DTD; per far questo deve poter leggere e processare l'intero DTD. Un processore non-validating deve poter accedere all'intera entità documento, incluso l'eventuale DTD interno (ma solo per verificare che anche questa parte del documento sia ben formattata); quest'ultimo fornisce vantaggi nelle prestazioni dato che non deve leggere ed elaborare la DTD.

Allo stato attuale sono disponibili alcuni processori di pubblico dominio (shareware e freeware) che possono essere utilizzati in modo standalone. La maggior parte degli elaboratori disponibili viene creata mediante il linguaggio di programmazione Java e anche le applicazioni tendono ad essere più lente rispetto alle applicazioni basate su C++; Java consente spesso di utilizzare piattaforme multiple.

Per controllare che gli esempi forniti in questa tesi fossero conformi alle specifiche XML, ho utilizzato il processore fornito dalla Microsoft, l'elaboratore Msxml. Microsoft Internet Explorer è dotato di un elaboratore di XML incorporato. Questo elaboratore, Msxml, è progettato come componente di Windows e può essere utilizzato come controllo Active X nelle pagine Web o nelle applicazioni di Visual Basic o C++. Microsoft ha inoltre contribuito allo sviluppo di un elaboratore di XML su Java.

<indietro home page avanti>

Copyright © 2000-2005. Tutti i diritti sono riservati. Per informazioni: mgianni@infinito.it