Scrivere un documento XML per una rubrica telefonica (ad esmpio quella di un telefonino) con almeno (...a voi il piacere di fare di piu'):
titolo
nome
cognome
cellulare
telefono casa
telefono ufficio
I campi telefonici devono essere figli di un altro elemento.
Pensate all'utilizzo di elementi ed attributi.
Pensate al numero di occorrenze necessarie/ammissibili per ogni campo/elemento.
Pensare poi ad un modo per indicare che uno dei tre numeri di telefono indicati sia da considerarsei principale/predefinito.
Verificare che il documento creato sia ben formato.
Definire quindi la grammatica del suddetto documento tramite DTD.
Associare il DTD al documento XML e verificare che sia valido.
Dato il seguente DTD
<!ELEMENT playlist (traccia+)>
<!ELEMENT traccia (nome, artista+, album?, genere, filetype)>
<!ELEMENT nome (#PCDATA)>
<!ELEMENT artista (#PCDATA)>
<!ELEMENT album (#PCDATA)>
<!ELEMENT genere EMPTY>
<!ELEMENT filetype (encoding, (size | bitrate))>
<!ELEMENT encoding (#PCDATA)>
<!ELEMENT size (#PCDATA)>
<!ELEMENT bitrate (#PCDATA)>
<!ATTLIST traccia
id ID #REQUIRED
>
<!ATTLIST genere
value (rock | pop | jazz | reggae) "rock"
>
Scrivere dei documenti XML ben formati che rispettino tale DTD, indicare nei documenti creati il riferimanto al DTD e verificare che siano validi.
Dato il documento XML "rubrica" dell'esercitazione 1 scrivere un foglio di stile XSLT che crei un documento CSV (Comma Separated Value)
ovvero un documento di testo in cui i campi sono separati da un delimitatore (ad esempio: "," o ";").
Farlo in due modi (suggerimento: template e for-each).
Dato il documento XML "prodotti.xml"
<?xml version="1.0" encoding="UTF-8"?>
<prodotti>
<prodotto codice="p0001" prezzo="7.45" valuta="EUR" listino="pubblico">
<nome>Prodotto 1</nome>
<descrizione>Primo prodotto</descrizione>
</prodotto> <prodotto codice="p0002" prezzo="9.00" valuta="EUR" listino="pubblico">
<nome>Prodotto 2</nome>
<descrizione>Secondo prodotto</descrizione>
</prodotto>
<prodotto codice="p0005" prezzo="145.23" valuta="EUR" listino="agente1">
<nome>Prodotto 5</nome>
<descrizione>Quinto prodotto</descrizione>
</prodotto>
<prodotto codice="p0003" prezzo="12.15" valuta="EUR" listino="pubblico">
<nome>Prodotto 3</nome>
<descrizione>Terzo prodotto</descrizione>
</prodotto>
<prodotto codice="p0008" prezzo="10.22" valuta="EUR" listino="privato">
<nome>Prodotto 8</nome>
<descrizione>Ottavo prodotto</descrizione>
</prodotto> <prodotto codice="p0009" prezzo="46.11" valuta="EUR" listino="privato">
<nome>Prodotto 9</nome>
<descrizione>Nono prodotto</descrizione>
</prodotto> <prodotto codice="p0007" prezzo="34.22" valuta="EUR" listino="agente1">
<nome>Prodotto 7</nome>
<descrizione>Settimo prodotto</descrizione>
</prodotto>
<prodotto codice="p0006" prezzo="17.42" valuta="EUR" listino="pubblico">
<nome>Prodotto 6</nome>
<descrizione>Sesto prodotto</descrizione>
</prodotto>
<prodotto codice="p0004" prezzo="96.68" valuta="EUR" listino="agente1">
<nome>Prodotto 4</nome>
<descrizione>Quarto prodotto</descrizione>
</prodotto>
</prodotti>
scrivere i seguente fogli di stile XSLT:
1:trasforma in HTML con la seguente struttura:
Nome prodotto (codice)
Descrizione prodotto
2: trasforma in HTML solo i prodotti con listino pubblico con la seguente struttura:
Nome prodotto (codice)
Descrizione prodotto
Prezzo3: trasforma in HTML (riodinando i prodotti per codice) solo i prodotti con listino pubblico con la seguente struttura:
Nome prodotto (codice)
Descrizione prodotto
Prezzo
4: trasforma in HTML (riodinando i prodotti per codice) solo i prodotti dell'agente1 con la seguente struttura:
Nome prodotto (codice)
Descrizione prodotto
Prezzo
Alla fine calcola e scrive il prezzo totale.5: trasforma in HTML (riodinando i prodotti per codice):
Nome prodotto (codice)
Descrizione prodotto
Prezzo + IVA 20% (se pubblico)
Prezzo (se dell'agente1)Non pubblica il prezzo altrimenti
Dato il documento XML "prodotti.xml" dell'esercitazione 4 :
scrivere il seguente fogli di stile XSLT che lo trasforma in XML con gli attributi dell'elemento prodotto in elementi.
Tutto il resto rimane invariato.