Si scriva un possibile DTD che modelli nel modo piu' accurato possibile una base di dati relativa ai menu di un ristorante, una cui istanza corrisponde al seguente XML:
<menu xmlns="http://www.example.org/menu"
data="2007-09-07">
<antipasto prezzo="4.00">Crostini all'olio
d'oliva</antipasto>
<antipasto prezzo="7.00">Pate' d'oca con pan brioche
<!-- specialita'!! --></antipasto>
<primo prezzo="14.00">Budino di zucca al tartufo
nero</primo>
<primo prezzo="13.00">Tagliolini alla salsa verde con
erbette</primo>
<secondo prezzo="15.00">Seppia nera in salsa
vaccina</secondo>
<secondo prezzo="19.00">Tonno scottato con finferli e
porcini</secondo>
<dolce prezzo="6.00">Creme brule' con frutti di
bosco</dolce>
<dolce prezzo="7.00">Ricotta di capra con salsa
esotica</dolce>
<dolce prezzo="5.00">Gelato alla vaniglia con arancia
glassata</dolce>
</menu>
Si scriva una query in XQuery che trasformi una base di dati in XML presente all'indirizzo http://www.example.org/gourmet.xml definita dal DTD dell'esercizio precedente, in modo tale che venga prodotto il seguente risultato:
<selezione data="2007-09-07"
xmlns="http://www.example.net/selezione">
<!-- La Selezione di Menu del Giorno, il piu' economico ed il piu' costoso
-->
<risparmioso prezzo="37">
<menu xmlns="http://www.example.org/menu">
<antipasto prezzo="4">Crostini all'olio
d'oliva</antipasto>
<primo prezzo="13">Tagliolini alla salsa verde con
erbette</primo>
<secondo prezzo="15">Seppia nera in salsa
vaccina</secondo>
<dolce prezzo="5">Gelato alla vaniglia con arancia
glassata</dolce>
</menu>
</risparmioso>
<intenditore prezzo="47">
<menu xmlns="http://www.example.org/menu">
<antipasto prezzo="7">Pate' d'oca con pan
brioche</antipasto>
<primo prezzo="14">Budino di zucca al tartufo
nero</primo>
<secondo prezzo="19">Tonno scottato con finferli e
porcini</secondo>
<dolce prezzo="7">Ricotta di capra con salsa
esotica</dolce>
</menu>
</intenditore>
</selezione>
Si scriva una trasformata XSLT che dato un database in XML definito dal DTD
precedente, riordini gli elementi della base di dati in base al loro prezzo.
Ad esempio con l'istanza del primo esercizio si potrebbe avere il seguente
risultato:
<menu xmlns="http://www.example.org/menu"
data="2007-09-07">
<antipasto prezzo="4.00">Crostini all'olio
d'oliva</antipasto>
<dolce prezzo="5.00">Gelato alla vaniglia con arancia
glassata</dolce>
<dolce prezzo="6.00">Creme brule' con frutti di
bosco</dolce>
<antipasto prezzo="7.00">Pate' d'oca con pan
brioche</antipasto>
<dolce prezzo="7.00">Ricotta di capra con salsa
esotica</dolce>
<primo prezzo="13.00">Tagliolini alla salsa verde con
erbette</primo>
<primo prezzo="14.00">Budino di zucca al tartufo
nero</primo>
<secondo prezzo="15.00">Seppia nera in salsa
vaccina</secondo>
<secondo prezzo="19.00">Tonno scottato con finferli e
porcini</secondo>
</menu>
Si risponda alle seguenti domande: