Capitolo V: Applicazioni dell'XML |
Struttura di un file CDF Un file CDF deve essere preparato dallamministratore del canale; contiene tutte le informazioni sul canale e tutte le informazioni su come il client deve eseguire lo smart pull. Vediamo un semplice esempio di file CDF: <?XML version="1.0"?> <CHANNEL HREF="http://www.miosito.com/index.html" LASTMOD="1998-07-07T12.00" LEVEL="2" PRECACHE="YES"> <TITLE>Il mio sito</TITLE> <ABSTRACT>Nel mio sito potete trovare informazioni molto utili su tutto</ABSTRACT> <SCHEDULE> <INTERVALTIME DAY="1"/> </SCHEDULE> <LOGO HREF="http://www.miosito.com/images/logo.gif" STYLE="IMAGE"/> </CHANNEL> La prima istruzione specifica che il file CDF è un documento XML. A questo proposito, MSIE 4 include al suo interno un processore XML scritto in C++ per interpretare i file CDF. Channel è lelemento root; lattributo Href identifica il canale (tramite URL). Lattributo Lastmod specifica la data dellultimo aggiornamento del canale quindi devono essere scaricate tutte le pagine che sono state modificate dopo le ore dodici del 7 Luglio 1998; lattributo Level specifica che devono essere scaricate anche tutte la pagine collegate alle pagine del canale (fino al secondo livello). Infine lattributo Precache specifica che il contenuto scaricato deve essere memorizzato nella cache del client. Lelemento Title contiene il titolo del canale e lelemento Abstract una descrizione dettagliata del suo contenuto. Lelemento Schedule serve per specificare al client la frequenza degli aggiornamenti; nellesempio il client sa che ogni giorno sono disponibili nuovi aggiornamenti. Per specificare la frequenza in base alla quale un canale deve essere aggiornato, è possibile utilizzare un programma (schedule). È possibile utilizzare anche lattributo Hour: <SCHEDULE> <INTERVALTIME HOUR="12"/> <ERLIESTTIME HOUR="1"/> <LATESTTIME HOUR="2"/> </SCHEDULE> Il codice riportato specifica che gli aggiornamenti si verificano ogni dodici ore (in generale il primo aggiornamento parte sempre a mezzanotte). Per evitare che il server subisca degli overload nelle ore specificate (nellesempio a mezzanotte e a mezzogiorno), lamministratore del canale inserisce anche gli elementi Earliesttime e Latesttime, che obbliga il client a collegarsi fra luna e le due e fra le tredici e le quattordici (naturalmente le ore sono riferite a questo esempio). In Schedule è possibile specificare anche gli attributi Startdate e Stopdate per specificare la data di inizio e di fine del programma: <SCHEDULE STARTDATE="1998-01-01" STOPDATE="1998-12-31"> <INTERVALTIME DAY="1"/> </SCHEDULE> Infine lelemento Logo associa al canale unimmagine; lattributo Style specifica le dimensioni dellimmagine: Value Size "ICON" 16H x 16W "IMAGE" 32H x 80W "IMAGE-WIDE" 32H x 194W Se un canale è diviso in varie sezioni, è possibile impostare delle gerarchie nel file CDF. Lelemento root Channel può contenere altri elementi Channel; ogni elemento Channel può contenere degli elementi Item. Vediamo un esempio: <?XML VERSION="1.0"?> <CHANNEL BASE="http://www.stream.it/iechannel/" HREF="home/stream.htm"> <TITLE>I Canali Stream</TITLE> <ABSTRACT>I canali Stream: intrattenimento, viaggi, news... e molto altro!</ABSTRACT> <LOGO HREF="images/80x32.gif" STYLE="IMAGE"/> <SCHEDULE> <INTERVALTIME DAY="1"/> <EARLIESTTIME HOURS="6"/> </SCHEDULE> <CHANNEL HREF="games/news/gamenews.htm"> <TITLE>InGame</TITLE> <ABSTRACT>Giochi sempre nuovi, insieme a tutte le news dal mondo ludico</ABSTRACT> <LOGO HREF="games/16_ingame.ico"STYLE="ICON"/> <ITEM HREF="games/fotomisteriosa/fotomisteriosa.html" LASTMOD="1997.09.30T14:49+0100" PRECACHE="YES" LEVEL="1"> <TITLE>La foto misteriosa</TITLE> <ABSTRACT>Confrontati con questo rompicapo... Buon divertimento</ABSTRACT> <LOGO HREF="games/fotomisteriosa/icona.ico" STYLE="ICON"/> </ITEM> </CHANNEL> <CHANNEL HREF="plugintv/root.htm"> <TITLE>PlugINTV</TITLE> <ABSTRACT>La televisione a portata di click</ABSTRACT> <LOGO HREF="plugintv/16_plugintv.ico" STYLE="ICON"/> </CHANNEL> <CHANNEL HREF="cinema/default.htm"> <TITLE>Cinematografo</TITLE> <ABSTRACT>Cinematografo: tutto sui nuovi film nelle sale e in videocassetta</ABSTRACT> <LOGO HREF="cinema/16_cinematografo.ico" STYLE="ICON"/> </CHANNEL> <CHANNEL HREF="tecnologia/default.htm"> <TITLE>Tecnologia</TITLE> <ABSTRACT>Informazioni sulle ultime novità della tecnologia</ABSTRACT> <LOGO HREF="tecnologia/16_tecnologia.ico" STYLE="ICON"/> </CHANNEL> <CHANNEL HREF="viaggi/viagginews.htm"> <TITLE>Canale Viaggi</TITLE> <ABSTRACT>Viaggi, con informazioni su paesi e itinerari consigliati</ABSTRACT> <LOGO HREF="viaggi/16_canaleviaggi.ico" STYLE="ICON"/> </CHANNEL> <ITEM HREF="meteo/default.htm" LASTMOD="1997.09.30T14:06+0100" PRECACHE="YES" LEVEL="1"> <TITLE>Meteo</TITLE> <ABSTRACT>Previsioni meteorologiche sull'Italia e l'Europa aggiornate costantemente</ABSTRACT> <LOGO HREF="16_meteo.ico" STYLE="ICON"/> </ITEM> </CHANNEL> Lattributo Base dellelemento root Channel specifica lURL di tutti gli elementi innestati (Channel e Item). Ogni elemento innestato ha chiaramente il suo URL relativo. Per ogni elemento innestato può essere specificato oltre allURL relativo, il titolo (Title), la descrizione dettagliata (Abstract) e il logo (Logo). Gli attributi dellelemento Item sono Href, Lastmode, Precache e Level (già descritti per lelemento Channel). Questo file CDF di esempio viene visualizzato da MSIE 4 nella barra dei canali come in Fig. 5.1. Fig. 5.1: Esempio di file CDF visualizzato nella barra dei canali di MSIE. |