Compito di BDD2 - 5/7/2007

Esercizio 1

Si scriva un possibile XML-Schema che modelli nel modo piu' accurato possibile una base di dati vacanziera, una cui istanza corrisponde al seguente XML:

<vacanze>
<periodo dal="2007-07-07" al="2007-07-09">
<dove>Mare<localita>Bibione</localita></dove>
<sicuramente/>
</periodo>
<periodo dal="2007-08-18" al="2007-08-25">
<dove>Mare<localita>Jesolo</localita></dove>
<sicuramente commento="crolli il mondo!"/>
</periodo>
<periodo dal="2007-08-10" al="2007-08-17">
<forse/>
<dove>Montagna<localita>Cortina</localita></dove>
</periodo>
<periodo dal="2007-07-30" al="2007-08-14">
<dove>Mare<localita>Ibiza</localita></dove>
<forse/>
</periodo>
</vacanze>


Esercizio 2

Si scriva una query in XQuery che trasformi una base di dati in XML presente all'indirizzo http://www.example.org/vacanze.xml definita dall'XML-Schema dell'esercizio precedente, in modo tale che venga prodotto il seguente report:

<report>
<titolo>Le mie Vacanze</titolo>
<frase>Le mie vacanze cominciano il 2007-07-07 e finiscono il 2007-08-25.</frase>
<frase>Se tutto va bene,  prima vado a Bibione (sicuramente), poi a Ibiza (forse), poi a Cortina (forse), poi a Jesolo (sicuramente, crolli il mondo!).</frase>
<frase>Di queste 4 localita', 3 sono al Mare ed 1 in Montagna.</frase>
<frase enfasi="si">Devo fare ATTENZIONE perche' ci sono almeno due periodi di vacanza con date sovrapposte!</frase>
</report>


Esercizio 3

Si scriva una trasformata XSLT che dato un database in XML definito dall'XML-Schema precedente, ritorni solo le localita' di vacanza ordinate alfabeticamente, tramutando la base di dati del primo esercizio nel seguente modo:

<vacanze><localita>Bibione</localita><localita>Cortina</localita><localita>Ibiza</localita><localita>Jesolo</localita></vacanze>


Esercizio 4

Si risponda alle seguenti domande: