Compito di BDD2 - 1/7/2008 - Compito A

Esercizio 1

Si scriva un possibile XML-Schema che modelli nel modo piu' accurato possibile una base di dati floreale che si trova all'indirizzo http://www.example.org/fioreria.xml, una cui istanza corrisponde al seguente XML:

<fioreria nome="Il Fiore Allegro" xmlns="http://www.example.com/fiori">
<prezzi>
<prezzo nome="giacinti-viola">7</prezzo>
<prezzo nome="ibiscus-blu">8</prezzo>
<prezzo nome="leucodendri">4</prezzo>
<prezzo nome="rose-blu">10</prezzo>
<prezzo nome="rose-rosso">11</prezzo>
<prezzo nome="tulipani-giallo">10</prezzo>
<prezzo nome="lilium-bianco">8</prezzo>
<prezzo nome="aspidistrie">3</prezzo>
</prezzi>

<mazzo nome="Fantasia" sconto="5%">
<fiore tipo="ibiscus" colore="blu" />
<fiore tipo="rose" colore="rosso" />
<fiore tipo="lilium" colore="bianco" quantita="2"/>
<foglie tipo="aspidistrie" quantita="5" />
</mazzo>

<mazzo nome="Vortice">
<fiore tipo="rose" colore="blu" quantita="2" />
<fiore tipo="giacinti" colore="viola" quantita="2" />
<fiore tipo="rose" colore="rosso" />
<fiore tipo="tulipani" colore="giallo" quantita="2" />
<foglie tipo="leucodendri" quantita="3" />
<foglie tipo="aspidistrie" quantita="4" />
</mazzo>
</fioreria>


Esercizio 2

Si scriva una query in XQuery che usando la base di dati floreale espressa nell'esercizio 1, generi un annuncio sui prezzi delle composizioni floreali, tale che ad esempio la base di dati precedente venga resa nel seguente modo:

Fioreria Il Fiore Allegro - le nostre composizioni floreali

Lasciatevi tentare dalle nostre composizioni floreali: il mazzo Fantasia, composto da 1 ibiscus, 2 lilium, 1 rose, ed un contorno di aspidistrie, proposto al prezzo scontatissimo di 47.5 euro; il mazzo Vortice, composto da 2 giacinti, 3 rose, 2 tulipani, ed un contorno di aspidistrie e leucodendri, al prezzo di 89 euro.


Esercizio 3

Si scriva una query in XQuery che usando una base di dati floreale espressa nell'esercizio 1, generi il seguente catalogo floreale:

<html xmlns="http://www.example.org/myhtml">
<body>
<h1>I nostri fiori (Il Fiore Allegro)</h1>
<ul>
<li>giacinti: <img src="/fiori/giacinti/viola" /> </li>
<li>ibiscus: <img src="/fiori/ibiscus/blu" /> </li>
<li>lilium: <img src="/fiori/lilium/bianco" /> </li>
<li>rose: <img src="/fiori/rose/blu" /> <img src="/fiori/rose/rosso" /> </li>
<li>tulipani: <img src="/fiori/tulipani/giallo" /> </li>
</ul>
</body>
</html>


Esercizio 4

Si scriva una trasformata XSLT che trasformi l'output dell'esercizio 3 in un altra pagina senza immagini, tale che ad esempio la pagina precedente venga resa nel seguente modo:

<html>
<body>
<h1>I nostri fiori</h1>

Ecco i fiori che abbiamo disponibili a catalogo: <a href="/fiori/giacinti/viola">giacinti viola</a>, <a href="/fiori/ibiscus/blu">ibiscus blu</a>, <a href="/fiori/lilium/bianco">lilium bianco</a>, <a href="/fiori/rose/blu">rose blu</a>, <a href="/fiori/rose/rosso">rose rosso</a>, <a href="/fiori/tulipani/giallo">tulipani giallo</a>.

</body>
</html>