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