Tester
Transcript
Tester
Tester Perrealizzarequestaesercitazioneabbiamocreatounapiccolaapplicazionewebtramitecui verificarelacorrettasoluzionedegliesercizi.Lapotetetrovareall’indirizzo http://www.fabiovitali.it/TW16/tester/tester.zip Scaricatelaedinstallatelanelvostrospazioeaccedeteciviaserverweb.Pergliscopidiquesta esercitazionenonserveguardarcidentro,mainseguitopotreteusarlacomefontedi ispirazioneperilprogettod’esame. Esercizio1 Il seguente documento XML ha vari problemi. Risolverli e portare il documento in buona forma.Potetecopiareeincollareiltestodaquiotrovareunfilescaricabileall’indirizzo: http://www.fabiovitali.it/TW16/tester/example1.xml <?xml version="1.0" encoding="UTF-8"?> <article id=art01> <num>1.</num> <title>Definizioni e applicazioni</title> <clause id='art01-cla01"> <p>Nessun contenuto di questo documento può essere considerato XML corretto.</p> </clause> </article> <article id=“art02”> <num>2.</num> <title>Riconoscimento di XML scorretto</titolo> <clause id="art02"cla01"> <p>Un testo non può essere <b>in grassetto, e poi <i>in grassetto e corsivo</b> e poi solo in corsivo</i>.</p> <clause> </article> Esercizio2 DatoilseguentedocumentoXML: <?xml version="1.0" encoding="UTF-8"?> <lista> <responsabile id="r1"> <nome>Luca</nome> <cognome>Rossi</cognome> <settore>Produzione</settore> <budget valuta="euro">11000</budget> </responsabile> <responsabile id="r2"> <nome>Mario</nome> <cognome>Verdi</cognome> <cell>333567890</cell> <settore>Marketing</settore> <budget valuta="euro">14000</budget> </responsabile> <responsabile id="r3"> <nome>Filippo</nome> <cognome>Bianchi</cognome> <cell>333567890</cell> <settore>Marketing</settore> <budget valuta="euro">10000</budget> </responsabile> <responsabile id="r4"> <nome>Gianni</nome> <cognome>Neri</cognome> <settore>Produzione</settore> <budget valuta="euro">5000</budget> </responsabile> </lista> ScrivereleespressioniXPathpercalcolare: • • • • IlnumerodicellularediFilippoBianchi Ilbudgetcomplessivodell’azienda(sommadeibudgetdeiresponsabili) Ilcognomedeiresponsabilideireparticonunbudgetinferiorea12000euro Ilnumerodiresponsabilidicuinonsiconosceilnumerodicellulare Ilfileèanchescaricabileancheall’indirizzo: http://www.fabiovitali.it/TW16/tester/example2.xml Esercizio3 DatoilseguentedocumentoXML: <?xml version="1.0" encoding="UTF-8"?> <lidi> <bagno id="b1" area="est"> <nome>Corallo</nome> <strutture> <ombrellone disponibilita="200" prezzo="3"/> <lettino disponibilita="400" prezzo="1"/> <sdraio disponibilita="350" prezzo="1"/> </strutture> </bagno> <bagno id="b2" area="ovest"> <nome>Delfino</nome> <strutture> <ombrellone disponibilita="150" prezzo="3"/> <lettino disponibilita="220" prezzo="2"/> </strutture> </bagno> <bagno id="b3" area="ovest"> <nome>Ancora</nome> <strutture> <ombrellone disponibilita="50" prezzo="10"/> <lettino disponibilita="100" prezzo="5"/> <sdraio disponibilita="120" prezzo="5"/> </strutture> </bagno> <bagno id="b4" area="est"> <nome>Timone</nome> <strutture> <ombrellone disponibilita="400" prezzo="4"/> <lettino disponibilita="800" prezzo="2"/> <sdraio disponibilita="100" prezzo="1"/> </strutture> </bagno> <bagno id="b5" area="est"> <nome>Sole Mio</nome> <strutture> <ombrellone disponibilita="80" prezzo="4"/> <lettino disponibilita="80" prezzo="2"/> </strutture> </bagno> </lidi> ScrivereleespressioniXPathpercalcolare: • • • • Ilprezzoperl'affittodiunombrellonealbagno'Delfino’ Ilnumerocomplessivodibagni Inomideibagnidell'area'Ovest'dotatidisdraio Icodici(attributo@id)deibagniincuigliaffittidiunlettinoodiunasdraiohannolo stessoprezzo Ilfileèanchescaricabileancheall’indirizzo: http://www.fabiovitali.it/TW16/tester/example3.xml Esercizio4 Scrivere un foglio di stile XSLT che, preso in input un documento XML lo trasforma in un documentoconlastessastruttura,glistessielementi,lostessocontenutotestualemasenza nessunattributo. Adesempio: <?xml version="1.0" encoding="UTF-8"?> <biglietto nome="Luca Verdi"> <voloAndata data="1-8-2005"> <tappa t="Bologna"/> <tappa t="Frankfurt"/> <tappa t="NewYork"/> </voloAndata> <voloRitorno data="8-8-2005"> <tappa t="NewYork"/> <tappa t="Roma"/> </voloRitorno> <prezzo>990</prezzo> </biglietto> vienetrasformatoin: <?xml version="1.0" encoding="UTF-8"?> <biglietto> <voloAndata> <tappa/> <tappa/> <tappa/> </voloAndata> <voloRitorno> <tappa/> <tappa/> </voloRitorno> <prezzo>990</prezzo> </biglietto> Ilfileèanchescaricabileancheall’indirizzo: http://www.fabiovitali.it/TW16/tester/example4.xml Esercizio5 ScrivereunfoglioXSLTchetrasformaildocumentoAmostratodiseguitoneldocumentoB. IlfiledocumentoAèanchescaricabileancheall’indirizzo: http://www.fabiovitali.it/TW16/tester/example5.xml DocumentoA <?xml version="1.0" encoding="UTF-8"?> <albergo codice="a1"> <nome>Grand Hotel</nome> <indirizzo> <via>Roma</via> <civico>1</civico> <citta>Bologna</citta> </indirizzo> <categoria stelle="5"/> <servizi> <parcheggio/> <tv/> </servizi> <prezzi> <alta> <singola>200</singola> <doppia>180</doppia> </alta> <bassa> <singola>170</singola> <doppia>150</doppia> </bassa> </prezzi> </albergo> DocumentoB <albergo codice="a1" categoria="5 stelle"> <nome>Grand Hotel</nome> <indirizzo>Via Roma 1 Bologna</indirizzo> <prezzi> <singola> <alta>200</alta> <bassa>180</bassa> </singola> <doppia> <alta>200</alta> <bassa>180</bassa> </doppia> </prezzi> <servizi> <televisione_in_camera/> <parcheggio_custodito/> </servizi> </albergo> Esercizio6 ScrivereunfogliodistileXSLTchetrasformiunatabellaHTMLinunlistapuntatalecuicelle diventanosemplicistringheseparatedavirgole,elasciintattotuttoilrestodeldocumento, comedalprossimoesempio: Dacosì: Acosì: Sifacciaattenzionechenonc’èvirgoladopol’indirizzodipostaelettronica. Ilfiledipartenzaèanchescaricabileancheall’indirizzo: http://www.fabiovitali.it/TW16/tester/example6.html Esercizio7–Facoltativo ScrivereunfoglioXSLTchetrasformailprimocapitolodi“AlicenelPaesedellemeraviglie” (filedisponibileall’indirizzohttp://www.fabiovitali.it/TW16/tester/example7.xml)in unapaginaHTMLlacuivisualizzazionenelbrowserèlaseguente: Pertalevisualizzazionesiconsiderinoiseguentivincoli: • • • • Glielementiparadiventanop,glielementidecorationdiventanoimmagini,glielementi emphdiventanocorsivi,glielementitermdiventanospanspeciali(quandol’utenteclicca sullavocecorrispondentenell’indicedeitermini,siaccendonoosispengonotuttiiterm chehannolostessocontenuto). Perleimmagini,ènecessarioaggiungereall’iniziodituttigliURIrelativilastessastringa1, http://www.liberliber.it/mediateca/libri/d/dodgson/alice_nel_paese_delle_meraviglie/html/.Le immaginisonoinfloatdestroedilarghezzafissa. Incimaalcapitolositroval’indicesommario,incuivengonovisualizzatigliattributidesc deiparagraficonlinkipertestualicheportanoaiparagraficorrispondenti2.L’indiceè leggermenterientratorispettoalladimensionecomplessivadellapagina. Infondoalcapitolositroval’indicedeitermini,sutrecolonne,ordinatoalfabeticamente3e senzaripetizioni4,cliccandosulqualevengonoevidenziateotornanonormalituttele istanzeditermassociateaquellaparola5.Iterminievidenziatinellafigurasono puramenteesemplificativi.Inpartenzatuttiiterminisonodisattivatietuttiequivalenti. 1 Suggerimento:siguardiilfunzionamentodixsl:variable diXSLT Suggerimento:siutilizzilasintassiconparentesigraffediXSLTperilcontenutodegliattributiiddegli elementipehrefdeglielementia. 3 Suggerimento:siguardiilcomandoxsl:sort diXSLT. 4 Suggerimento:sicreinoduetemplate,unocompletosoloperlaprimaistanzadiundatoterm,eunovuoto pertuttelealtreistanze.Un’istanzaditermnonèlaprimaseesisteunaltrotermconlostessocontenuto primadilei.Siconsideril’asseprecedinginXPath. 5 Suggerimento:siconsiderilafunzionetoggleClassdiJQuery. 2