Programma delle lezioni LABORATORIO B Lezione 01: 27/02martedi Lezione 02: 06/03martedi Lezione 03: 13/03martedi Lezione 04: 20/03martedi Lezione 05: 27/03martedi Lezione 06: 03/04 martedi Lezione 07: 17/04 martedi Lezione 08: 24/04 martedi Lezione 09: 04/05 venerdi Lezione 10: 08/05martedi Dove? "laboratorio multimediale"
Informatica Umanistica A.A. 2005/2006 LEZIONE 6 Ripasso XML – DTD Introduzione a XSL
Lezione 6 SOMMARIO 1. Ripasso XML e concetti DTD 2. Validare per imparare 3. Ripasso di alcuni esempi 4. Primi passi con XSL 5. Primi esempi con XSL
XML – DTD – XSL Nel file XML c’è il contenuto “vero e proprio” semanticamente strutturato La DTD (o lo Schema) definiscono la sintassi dell’XML Il file XSL definisce la visualizzazione
Breve riassunto progetto PAGINA.XML (contenuto) PAGINA.DTD (struttura - almeno 3 livelli) PAGINA.XSL (visualizzazione) VALIDATORE:
Un esempio più completo - File: lettera.xml <!DOCTYPE lettera [ ]> Pippo Nicola Domanda: Cosa fai stasera? DTD Contenuto XML
Validare per imparare
Riassunto: Definizione ELEMENTI Gli elementi possono essere dichiarati con la sintassi: nel caso di elemento che non ha figli. per un elemento con figli: i nomi dei figli vengono dichiarati all’interno delle parentesi. Le virgole, separano gli elementi (figlio1, figlio2) indicano un ordine di successione obbligatorio.
Riassunto: Tipi di ELEMENTI Gli elementi vuoti vengono dichiarati con la sintassi: Gli elementi di tipo carattere sono dichiarati con la sintassi: Gli elementi di tipo misto sono dichiarati con la sintassi:
Riassunto: Cardinalità ELEMENTI Elementi obbligatori, ma presenti una sola volta: Obbligatori, e presenti almeno una volta: Facoltativi e presenti diverse volte: Facoltativi e, se presenti, una volta sola: Per dichiarare due elementi presenti in alternativa:
ATTRIBUTI degli ELEMENTI Gli attributi aggiungono informazioni extra sugli elementi. ESEMPIO HTML? SINTASSI: ESEMPIO XML: ESEMPIO DTD: ESEMPIO XML: ESEMPIO DTD:
Attributi degli ELEMENTI (2) Per ogni elemento possono essere indicati una serie di attributi (ATTLIST), definiti in base alla obbligatorietà o meno della loro presenza. Diversi tipi di presenza: #REQUIRED, la presenza dell'attributo è obbligatorio #FIXED, il valore dell'attributo è fisso #IMPLIED, l'attributo è previsto ma non obbligatorio e non ha un valore di default.
Lista ATTRIBUTI Sintassi: ESEMPIO DTD: Il valore puo' essere o cash o check e cash e' quello di default (se non viene specificato) ESEMPIO XML: 1. 2.
Ripasso ENTITA’ Le entità servono per dichiarare dei testi o delle iscrizioni fisse che vengono inserite ripetutamente all’ interno dei documenti. Possono essere interne o esterne. Sintassi: DTD: XML: (nb: l’entità costituisce parte dell’elemento )
XSL (eXtensible Stylesheet Language) XSL = eXtensible Stylesheet Language anche detto “foglio di stile” Noooo, un altro linguaggio!?! Ma a che serve l'XSL???
XSL per immagini immagine a
XSL per immagini immagine a
XSL per immagini immagine a
XSL per immagini immagine a
Basi dell’XSL Un file XSL è formato da una serie di template (modelli) che contengono le regole di trasformazione dei tag del documento XML. Questi template vengono applicati ai tag corrispondenti nel file XML. NB: nel nostro caso, le notazioni saranno in formato HTML Esempio intuitivo. con il file XSL potro' dire: l'elemento “cognome” del file XML trasformalo in un elemento “H3” dell'HTML
Per applicare una formattazione ad un documento XML è necessario richiamare il documento XSL dal file XML. Richiamare il file XSL dal documento XML Jkfaslfd Dkl;fsakl fdksjl Fdsjflsdf fsdjlsfjls Documento rubrica.xml Documento rubrica.xsl Jkfaslfd Dkl;fsakl fdksjl Fdsjflsdf fsdjlsfjls Pagina web
Per applicare una formattazione ad un documento XML è necessario richiamare il documento XSL dal file XML. Ok, ma come e dove? Seconda riga, cosi': <!DOCTYPE RUBRICA [ Richiamare il file XSL dal documento XML
E ora? Ora vedremo a livello teorico i principali costrutti dell'XSL Chi se la sente puo' provare ad applicare quanto vede (velocemente!) ad uno dei file XML (RSS) che appaiono a in modo da farlo apparire come la homepage di corriere.it Salvatevi il file in locale. Facile? Noooooooooooo
Le basi dei template In un file XSL le regole di trasformazione sono contenute all'interno degli elementi template... Tramite l'attributo match possiamo specificare il tag a cui si riferiscono queste regole. Nel nostro esempio vedremo che il template contiene le regole di trasformazione dell'elemento root del file XML (l'elemento ).
Esempio template Rubrica di esempio ………………..
Estrapolazione dei dati dal documento XML All’interno di ogni template e’ possibile effettuare delle ricerche per estrapolare dati e visualizzarli nel browser. esempio: trova l'elemento “cognome” del file XML e trasformalo in un elemento “H3” dell'HTML Ai dati viene applicato il linguaggio HTML per apparire su video (nel nostro caso! Altri formati di output sono possibili!)
Elementi principali per cercare elementi nel documento XML 1. Estrazione semplice dei valori 2. Estrazione condizionata 3. Estrazione con if
ESTRAZIONE ELEMENTI SEMPLICE: for-each e value-of SINTASSI: NB: attenzione al percorso
ESTRAZIONE ELEMENTI SEMPLICE: for-each e value-of SINTASSI: - sono tag, vanno chiusi, hanno attributi! - di solito for-each viene usato per riempire una struttura ripetitiva (es: TABLE) - di solito con value-of si seleziona un sottoelemento
ESTRAZIONE CONDIZIONATA DI ELEMENTI: test con [] SINTASSI: <xsl:for-each select="./[nome-elemento='valore- elemento']">
ESTRAZIONE CONDIZIONATA DI ATTRIBUTI: test con [] SINTASSI: <xsl:for-each attributo']">
ESTRAZIONE CONDIZIONATA : test con if
Primo file XSL Cosa facciamo ora? Creiamo un foglio di stile (XSL) per rubrica.xml Istruzioni a ATTENZIONE!!! Al fine di modificare i file con un editor sotto Windows, ci conviene dare estensione.xml ai file XSL. Useremo quindi la seguente convenzione File XML: rubrica_dati.xml File XSL: rubrica_stile_001.xml Applicheremo diversi fogli di stile allo stesso XML cambiando la seconda riga, quella che definisce il foglio di stile da usare
Esempio completo – Rubrica.xml <!DOCTYPE RUBRICA [ ]>
Esempio completo – Rubrica.xml Giulio Cesare Bruto 10 Roma ………………………………….
Esempio completo – rubrica_stile_001.xml (e' un XSL!) Rubrica Rubrica Qui si usa la sintassi per visualizzare il contenuto del file rubrica.xml.Si possono usare immagini, link e altro codice HTML come ad esempio: Il motore di Ricerca google Oppure visualizzare tutto il contenuto xml: Rubrica: Per non vederlo cosi la prossima volta si spieghera' la sintassi XSL: Lezione 6-7
Esercizio finale Modificare sintassi rubrica.xsl
XSLT – esempio1: people.xml Alan Turing computer scientist mathematician cryptographer … (altre persone)
XSLT – esempio1: people.xsl Scienziati famosi
Continua… Anno di nascita: Anno di morte:
Esercizio 1. Costruire la DTD per people.xml 2. Validare people.xml 3. Inserire l’entità autore 4. Richiamare l’entità autore nel file xsl usando il costrutto <xsl:value-of select=“…..