Il file config.xml

L'applicazione nel momento in cui viene installata, copia nella directory personale di configurazione di SpamGAME il file config.xml Il file in questione, come già detto, contiene tutte i dati relativi al setup dell'applicazione, per ciò che riguarda i dati persistenti che sicuramente vengono usati.

Questo è il suo DTD (file config.dtd):

<!ELEMENT config (thresholds, stoplist, whitelist, blacklist)>
<!ELEMENT thresholds (threshold-presence,
	threshold-expressiveness)>
<!ELEMENT threshold-presence (#PCDATA)>
<!ELEMENT threshold-expressiveness (#PCDATA)>
<!ELEMENT stoplist (word*)>
<!ELEMENT whitelist (address*)>
<!ELEMENT blacklist (address*)>
<!ELEMENT word (#PCDATA)>
<!ELEMENT address (#PCDATA)>
Nella Figura 4.4 si può osservare la rappresentazione del DTD stesso.
Figura 4.4: diagramma albero DTD
\includegraphics[scale=0.36]{DiagrammaInfoset.ps}

Il contenuto del file config.xml è osservabile nell' Appendice A Le informazioni contenute in tale file vengono scritte e lette dalla classe ConfigHandler.

La scelta di tenere i dati di configurazione in formato XML è stata dettata dalle seguenti ragioni:

Mentre la prima argomentazione è relativamente poco rilevante in questa sede, la seconda merita una considerazione a parte. Essendo questo programma per natura portabile (è scritto in Python), si pretende che anche i suoi dati salvati siano portabili. E poichè si parla di informazioni che devono comparire in forma testuale comunque leggibile per un utente (dato che, allo stato attuale, per alcuni dati bisogna mettere mano al file di configurazione) ma soprattuto per un parser software, la scelta di un plain text file con un encoding del testo magari dipendente dal sistema operativo usato e dalla nazionalità dell'utente, non sarebbe risultata per niente vantaggiosa poichè non sarebbe portabile. Un file XML invece, dichiarato con encoding UTF-8, consente a chiunque e dovunque di accedere alle stesse informazioni. Nel caso di tale applicazione sono termini realmente utilizzati in un qualche linguaggio parlato sul pianeta.

Alessio Pace 2004-03-26