• Non ci sono risultati.

9

}

10

catch (Exception e) {

11

logger.error("getUsername()", e);

12

}

13

return name;

14

}

Listing 6.7: File XML prodotto on l'utilizzodella libreria JDOM

1

<?xml version="1.0" encoding="UTF−8"?>

2

<scansione>

3

<date>16/01/2012</date>

4

<time>23:12:59</time>

5

<pages>4</pages>

6

<path>C:/DesktopApplication/Storico/</percorso>

7

<file>16012012_231259.tiff</file>

8

</scansione>

9

}

6.3.1 Gestione dei dati inseriti tramite form

Le spe i he di progetto ri hiedono he il do umento digitalizzato sia inviato al

ba k o e,a ompagnato da al unidati. Tali dati sono informazioni

riguardan-ti il do umento s ansionato e servono per favorirne la gestione, l'ar hiviazione

e la ri er a all'interno del sistema do umentale. I dati allegati vengono inseriti

dall'operatore durante la ompilazione dell'apposito form; vediamo quindi ome

siapossibilelarealizzazione diquesto ompito on l'aiutodel omponente

Cook-Swing, he obbligal'utenteaservirsi (seppurinmanieralimitata)dellespe i he

dello standard DOM.

Il Do ument Obje t Model èuno standard he denis e una serie di

fun-zionalità per a edere ed aggiornare il ontenuto, la struttura e lo stile di un

do umento (XML, HTML o XHTML 10

) rappresentandolo tramite una

struttu-ra ad albero. In base a questo appro io, la struttura del do umento preso in

10

XHTML: eXtensible HyperText Markup Language. Per approfondimenti si veda

onsiderazione viene reata nella memoriadella ma hina ome una gerar hiadi

oggetti, ias uno deiqualirappresentaundiversoelementodeldo umento. DOM

mette a disposizionedelle API per rappresentare tali elementi ed interagire on

essi e denis e inoltre lastruttura logi a deido umenti. UtilizandoDOM sipuò

quindi ostruire un do umento,navigare attraverso lasua struttura, aggiungere,

modi areo an ellare elementi.

L'implementazionead albero, tipi a di DOM ha però una ontroindi azione:

ri- hiede hel'intero ontenutodiundo umentovengaanalizzatoesalvatoin

memo-ria. DOM è utilizzatoprin ipalmente perre uperare informazionida do umenti

on unastrutturazione nonstandard, ioèdoveglielementidevonoessere trovati

in modo asuale. Per le appli azioni basate su XML he usano un pro esso di

lettura es rittura sequenziale, DOM presentaun grandespre o di memoria;per

questo tipo diappli azioni si onsiglia diusare il modello SAX.

Le spe i he dello standard DOM elaborate dal W3C sono suddivise in tre

livelli,manon andremo astudiare neidettagliqualisiano le loro aratteristi he.

Ci basta ri ordare he i livelliri al ano quelle he sono le evoluzioni ompiute

dalDOM: onilpassaredegli anni, onl'evolversidelle potenzialitàdeilinguaggi

e degli strumenti utilizzati nel Web, si è dovuto adattare ed aggiornare an he

DOM.Illivello1, ompletatonel1998,fornis eilsupportoperXML1.0 eHTML

4.0 edenis e glielementi DOM dibase on interfa e ontenenti imetodie gli

attributidiuso più omune. Il livello2 (2000,W3C Re omendation dagennaio

2003) haesteso ilprimo livello,introdu endo diverse funzionalità,tra uileviste

ltrate ed inamespa e. Inneilterzoed ultimolivello(W3C Re omendationda

aprile 2004), he ha introdotto nuovi metodi ed interfa e per una navigazione

più rapidanel do umentoe perla validazionediesso. Nell'immagineè riportato

lo s hema on i moduli delle funzioni denite dalle spe i he, osì ome appare

dopoil raggiungimentodel terzo ed ultimolivello.

Nel frammento di odi e he segue (listato 6.8), viene mostrata quale sia la

pro edura da seguire per ri avare le informazioni immesse on la ompilazione

dei ampi ditesto del form.

Le lassi Java oinvolte nell'elaborazione mediante DOM sono ontenute nei

seguenti pa kage:

javax.xml.parsers ontiene la lasse Do umentBuilder he permette di reareunparserDOMed utilizzarequest'ultimoperottenereunastruttura

org.w3 .dom denis e tutte leinterfa e oinvolte nella rappresentazione diun do umentoXML.

Figura 6.3: Do umentObje t Module - Vistadi tuttii moduli

La parte riguardantela reazione del le XML di output (quella he riporta

tutti i dati inseriti nei ampi di testo) è tralas iata per hé analoga a quanto già

vistoin pre edenza (listato6.5).

Il pro edimento di estrazione delle informazioniinserite nel form non è

parti o-larmente ompli ato. I passi da seguiresono i seguenti:

reare un oggetto builder di tipo Do umentBuilder. Il metodo CookSwing .getSwingDo umentBuilder( ); restituis eilbuilderdidefaultperla

rea-zionedi un oggetto ditipo CookSwing;

eseguireilparse deldo umentoXML(nellafattispe ie,delle he denis e lastruttura del formrelativo alBoni o Ban ario (listato6.4);

inizializzare una org.w3 .dom.NodeList he punti a tutti gli elementi del do umentoil uitag è <formattedtexteld> ;

per ias unelemento, reareuna stringa he sarà inizializzata on ilvalore dell'attributoid;

ottenere, on (JTextField) ookSwing.getId( stri ng). obje t), un og-gettoditipoJTextField. L'istruzioneriportataesegueil astaJTextField

delriferimentoall'oggetto CookSwing he ha perid lastringa spe i ata

(quella reata alpuntopre edente);

ottenere, inne, il testo inserito dall'utente tramite il form,ri hiamando il metodogetText() sull'oggettoJTextFieldappena reato.

Listing6.8: Cattura deidati inseriti nelform perun Boni o Ban ario

1

DocumentBuilder builder = CookSwing.getSwingDocumentBuilder();

2

File f = new File("C:\\DesktopApplication\\Xml\\Bonifico.xml")

;

3

try{

Documenti correlati