La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Document Type Definition  Document Type Definition (DTD)  Documento XML valido  Sintassi del DTD  Elementi, attributi e entità.

Presentazioni simili


Presentazione sul tema: "Document Type Definition  Document Type Definition (DTD)  Documento XML valido  Sintassi del DTD  Elementi, attributi e entità."— Transcript della presentazione:

1 Document Type Definition  Document Type Definition (DTD)  Documento XML valido  Sintassi del DTD  Elementi, attributi e entità

2 22 Dicembre 2005Stefano Clemente2 Il Document Type Definition Una caratteristica fondamentale dell’XML è l’estensibilità. L’autore di un documento XML può creare nuovi tag per descrivere i contenuti semantici dei propri dati. Ciò ha portato alla necessità di definire delle regole grammaticali, o vincoli, alle quali gli elementi devono attenersi. Queste regole grammaticali sono definite nelle specifiche XML e sono codificate nel Document Type Definition.

3 22 Dicembre 2005Stefano Clemente3 Le regole grammaticali o vincoli specificano: qual è l’insieme degli elementi e degli attributi che si possono usare nel documento XML quali sono le relazioni gerarchiche fra gli elementi qual è l’ordine in cui gli elementi appariranno nel documento XML quali elementi ed attributi sono opzionali Quando un documento XML è ben formato e rispetta le regole del DTD a cui si riferisce si dice che è un documento XML valido. Documento XML valido

4 22 Dicembre 2005Stefano Clemente4 Tipologie DTD Le DTD possono essere di due tipologie: PUBBLICHE  PUBBLICHE: sono depositate e note a tutti. E’ possibile trovarle in archivi (repository) di DTD su Internet. HTML per esempio è definito come DTD pubbliche depositate presso il W3C. DI SISTEMA  DI SISTEMA: sono disponibili e fruibili tramite l’azienda o la realtà che le ha prodotte. Non sono note al mondo intero e per sfruttarle occorre rivolgersi a chi le ha prodotte, anche solo per scaricarle.

5 22 Dicembre 2005Stefano Clemente5 DTD interne ed esterne Quando lavoriamo con documenti XML, se vogliamo associare loro delle DTD possiamo inserirle come parte integrante del loro contenuto (DTD interna), oppure possiamo fare riferimento a una definizione esterna, di sistema o pubblica (DTD esterna). Le DTD vanno comunque dichiarate nel prologo del documento XML. Sintassi DTD esterna: a seconda che si voglia indicare una DTD di sistema o pubblica. Sintassi DTD interna:

6 22 Dicembre 2005Stefano Clemente6 Alcune osservazioni Come si intuisce dagli esempi precedenti, il simbolo di apertura di un’istruzione DTD è Tali istruzioni rappresentano dei marcatori particolari: il cui contenuto deve corrispondere a comandi previsti dalla definizione di DTD. Nei prossimi lucidi ci occuperemo di queste istruzioni analizzando quelle di uso più comune. Prima però vediamo un esempio...

7 22 Dicembre 2005Stefano Clemente7 Creazione di una DTD semplice Consideriamo il file .xml. .xml Si noti che il codice contiene informazioni aggiuntive nel prologo del documento: si tratta di una DTD interna che identifica gli elementi che possono essere presenti nel documento e il tipo di dati che deve contenere. Se questo documento viene eseguito visualizzando la pagina XML (ad esempio con IE5), il documento avrà questo aspetto:

8 22 Dicembre 2005Stefano Clemente8 Esempio validazione (1) Modifichiamo la struttura del file .xml in questo modo ERR.xml e proviamo a validare i due documenti. .xml ERR.xml Risultato validazione del documento .xml:

9 22 Dicembre 2005Stefano Clemente9 Esempio validazione (2) Risultato validazione del documento ERR.xml:

10 22 Dicembre 2005Stefano Clemente10 Definizione di elementi (1) Per definire all’interno di una DTD la presenza di un elemento (tag) occorre utilizzare la parola chiave ELEMENT, la quale accetta la seguente sintassi dove:  nome è il nome che il tag avrà nel documento XML (ovviamente deve rispettare le regole che rendono i documenti XML ben formati)  regola_dtd indica il tipo di contenuto che questo tag avrà ed eventualmente la sua relazione con altri contenuti descritti nella DTD.

11 22 Dicembre 2005Stefano Clemente11 Definizione di elementi (2) I possibili valori che può assumere regola_dtd sono:  ANY: indica che il contenuto del tag può essere qualunque cosa, cioè tag e/o testo.  PCDATA (Parsed Character Data): dichiara che il tag può contenere solo e unicamente contenuto di tipo testo, sintatticamente corretto dal momento che i parser dovranno leggerlo e interpretarlo.  EMPTY: comunica al parser che il tag sarà costituito solo di attributi e non conterrà al suo interno nè testo nè altri tag.  GRUPPI DI ELEMENTI

12 22 Dicembre 2005Stefano Clemente12 Definizione di elementi (3) Vediamo qualche esempio:  Tag chiamato Titolo che contiene al suo interno solo testo:  Tag chiamato Libro che può contenere sia testo che tag:  Tag chiamato Libro che non ha contenuto e rappresenta le sue informazioni solo tramite attributi:

13 22 Dicembre 2005Stefano Clemente13 Definizione gruppi (1) Per gruppi di elementi si intende la possibilità per un determinato tag di contenere non solo testo, non solo qualsiasi combinazione di testo e tag, ma bensì una precisa sequenza di tag e/o gruppi di tag che rappresentano diverse alternative. XML tascabile Mondadori Informatica Libri XML tascabile Mondadori Informatica Libri Esempio: consideriamo il seguente documento XML. Vogliamo descrivere il tag Struttura utilizzando una DTD.

14 22 Dicembre 2005Stefano Clemente Definizione gruppi (2) Volendo descrivere il tag Struttura possiamo utilizzare la seguente sintassi DTD: tramite la quale indichiamo che il tag Struttura deve contenere un tag di nome Pagine, uno di nome Capitoli e uno di nome Appendici.

15 22 Dicembre 2005Stefano Clemente15 Definizione gruppi (3) In una definizione di DTD completa, dovremo quindi indicare sia la definizione del tag contenitore che dei tag contenuti. Il blocco di definizione del tag Struttura e dei tag al suo interno contenuti sarà: In questo modo, non solo formiamo i dettagli sulla natura di Struttura, ma anche sui tag in essa contenuti.

16 22 Dicembre 2005Stefano Clemente16 Definizione gruppi (4) Per indicare delle condizioni in alternativa tra loro si utilizza il carattere pipe |. Esempio: indica che il tag Struttura dovrà contenere o un tag Pagine o un tag Capitoli, non entrambi e tanto meno nessuno dei due. E’ anche possibile utilizzare più parentesi tonde annidate le une nelle altre per raggruppare le informazioni all’interno di una DTD. Esempio: dichiara che nel tag Struttura possiamo trovare o un tag Pagine o una coppia di tag Capitoli e Appendici, rappresentati esattamente nell’ordine indicato.

17 22 Dicembre 2005Stefano Clemente17 Molteplicità Qualora sia necessario indicare la presenza di più occorrenze di uno stesso tag all’interno di una struttura dobbiamo ricorrere a una simbologia apposita, per mezzo della quale indichiamo quante istanze di un determinato tag possiamo consentire all’interno di un documento XML. Tale sintassi è: dove al posto di [Molteplicità] possiamo trovare uno dei seguenti simboli: SIMBOLO SIGNIFICATO ? 0 o 1 volte + Da 1 a  volte * Da 0 a  volte

18 22 Dicembre 2005Stefano Clemente18 Molteplicità: esempi  significa che il tag Libro potrà contenere un numero di tag Autore in quantità variabile tra 1 e .  significa che il tag Libro potrà avere un solo Autore, oppure potrà essere privo di Autore.  significa che il tag Libro potrà avere un numero di tag Autore in quantità variabile tra 0 e .

19 22 Dicembre 2005Stefano Clemente19 Definizione di attributi (1) Per definire gli attributi di un documento XML si usa il comando ATTLIST, secondo la seguente sintassi: dove:  elemento è il nome del tag del quale stiamo definendo l’attributo  nome_attributo è ovviamente il nome dell’attributo  tipo è la definizione del tipo di valore associato all’attributo  valore_default è un eventuale valore di default (predefinito)

20 22 Dicembre 2005Stefano Clemente20 Definizione di attributi: esempio Indica che stiamo definendo un attributo di nome ISBN tale attributo deve essere associato a un tag di nome Libro tale attributo può contenere qualsiasi carattere, tranne & ' " ( CDATA ) il valore di default dell’attributo è “N.D.”

21 22 Dicembre 2005Stefano Clemente21 Definizione di attributi (2) Se vogliamo fornire un set di valori per un attributo possiamo utilizzare la seguente sintassi: dove il simbolo di pipe | indica proprio l’alternativa tra i possibili valori. Notare l’ultima informazione “mensile” : serve per indicare che nel caso in cui l’attributo Tipo non venga fornito il suo valore predefinito deve essere mensile.

22 22 Dicembre 2005Stefano Clemente22 Valori di default di attributi Quando si definiscono gli attributi per gli elementi è anche possibile dichiarare dei vincoli relativi alla presenza o meno degli stessi tag. Si utilizzano le seguenti parole chiave: VINCOLOSIGNIFICATO #IMPLIED Il valore dell’attributo non è obbligatorio. #REQUIREDIl valore dell’attributo è obbligatorio. #FIXED Il valore dell’attributo è una costante che non può essere modificato.

23 22 Dicembre 2005Stefano Clemente23 Esempi  Definiamo un tag Libro descritto da un tag Titolo, da uno o più tag Autore e da un attributo ISBN obbligatorio.  La seguente istruzione

24 22 Dicembre 2005Stefano Clemente24 Tipi di dato per attributi Quando definiamo degli attributi XML possiamo associare loro dei tipi di dato, tra quelli definiti dal W3C. Tipi di DatoDescrizione CDATADati di tipo carattere. ENTITYEntità esterna dichiarata nella DTD. IDIdentificatore univoco di un elemento. IDREFID univoci che puntano a elementi con un attributo ID. NMTOKENIl valore dell’attributo è formato da lettere, cifre, punti, caratteri di sottolineatura, trattini e due punti. NOTATIONNotazione dichiarata nella DTD. Sequenze di valori Corrisponde a una enumerazione.

25 22 Dicembre 2005Stefano Clemente25 Entità interne Tramite le DTD possiamo definire delle entità. Per entità si intendono dei nostri entity-name che corrispondano a caratteri, parole o frasi da noi impostati. La sintassi da utilizzare per definire delle entità è la seguente: In questo modo si dichiarano entità interne, in quanto il loro valore è fornito esplicitamente all’interno della DTD. Esempio: Per un esempio completo vedi il documento DTDEntità.xml.DTDEntità.xml

26 22 Dicembre 2005Stefano Clemente26 Entità esterne Se vogliamo ottenere il valore di una entity da un documento esterno possiamo utilizzare una delle tre seguenti forme: 1) Entità esterna caricata direttamente dalla URL. 2) Entità esterna caricata direttamente dalla URL solo nel caso in cui non sia già nota al parser tramite il suo nome pubblico. 3) Entità esterna da non interpretare con il perser ( NDATA ) e il cui tipo di formato è indicato tramite il parametro tipo_notazione. E’ anche possibile utilizzare le entità all’interno della definizione di altre entità, cioè annidare le entità le une all’interno delle altre.

27 22 Dicembre 2005Stefano Clemente27 Esempio completo di DTD: vedi il documento Libro.xml Libro.xml

28 22 Dicembre 2005Stefano Clemente28 Document Type Definition Sommario  In questa lezione abbiamo appreso: cos’è una Document Type Definition validazione di documenti XML sintassi di una DTD elementi, attributi, entità di una DTD  Passi successivi: la prossima lezione sarà dedicata alla formattazione di contenuti.formattazione di contenuti

29 Formattazione di contenuti: introduzione a CSS  Introduzione ai fogli di stile  Introduzione a CSS

30 22 Dicembre 2005Stefano Clemente30 Introduzione ai fogli di stile (1) Quando dobbiamo presentare le informazioni contenute nei documenti XML, non possiamo accontentarci di un file puramente testuale e neppure delle funzionalità di browser come Internet Explorer, che applica un minimo di formattazione ai contenuti XML.

31 22 Dicembre 2005Stefano Clemente31 Introduzione ai fogli di stile (2)  E’ necessario presentare le informazioni come se fossero dotate di un loro aspetto grafico senza però perdere la caratteristica più importante di XML: la separazione dei dati dalla loro presentazione.  Uno strumento per raggiungere questo risultato è rappresentato dai fogli di stile CSS (Cascading Style Sheet) che definiscono regole di formattazione per i tag utilizzati.  Inizialmente i fogli di stile CSS sono nati per essere usati con HTML! Un foglio di stile è un documento separato che contiene regole di formattazione e visualizzazione per un documento HTML o XML.

32 22 Dicembre 2005Stefano Clemente32  Sono “cascading” perchè possono essere definiti “in cascata”, l’uno dentro l’altro o, meglio, l’uno che completa gli altri in livelli di raffinamento successivo: prima si definiscono alcune caratteristiche di stile generali poi si integrano queste caratteristiche in cascata con altri CSS che le specificano più in particolare. Introduzione ai fogli di stile (3) In sostanza: Dentro un file CSS (che ha estensione.css) ci sono le indicazioni per come visualizzare i vari TAG.

33 22 Dicembre 2005Stefano Clemente33 HTML e CSS (1) Consideriamo il seguente documento HTML (Esempio.html):Esempio.html Pagina HTML formattata con i CSS Testo di un paragrafo. Testo di un blocco DIV. Mentre questo è un testo normale nel documento HTML. Per mezzo di un foglio di stile CSS possiamo fare in modo che il tag P e il tag DIV imprimano una particolare formattazione grafica, diversa da quella associata al tag BODY.

34 22 Dicembre 2005Stefano Clemente34 HTML e CSS (2) Esempio di CSS (Stile.css) per il documento HTML precedente:Stile.css P {font-Family: Arial; font-Size: 12pt; color: red;} DIV {font-Family: Verdana; font-Size: 8pt; color: blue;} BODY {font-Family: Arial; font-Size: 10pt; color: black;} Con una sintassi facilmente intuibile, il foglio di stile assegna a:  Tutti i tag di nome P un font Arial, 12 punti, rosso.  Tutti i tag di nome DIV un font Verdana, 8 punti, blu.  Al contenuto del tag BODY un font Arial, 10 punti, nero.

35 22 Dicembre 2005Stefano Clemente35 HTML e CSS (3) La sintassi per assegnare uno stile segue la regola: nome_selettore { attributo: valore; attributo: valore;... } dove nome_selettore è il nome del tag sul quale si vuole intervenire, attributo è l’attributo da cambiare e valore è il valore assegnato all’attributo. Se un valore è costituito da più di una parola, deve essere racchiuso fra doppi apici. Esempio: P {font-Family: “sans serif”} I selettori possono essere raggruppati fra di loro, separandoli con una virgola. Esempio: h1,h2,h3,h4,h5,h6 {color: green} per avere dello stesso colore i tag di struttura da h1 a h6.

36 22 Dicembre 2005Stefano Clemente36 HTML e CSS (4) Per applicare il foglio di stile Stile.css al documento HTML Esempio.html basta fare riferimento al file CSS all’interno dell’header del documento HTML mediante l’istruzione: Il nuovo file HTML (EsempioCSS.html) verrà visualizzato in questo modo:EsempioCSS.html

37 22 Dicembre 2005Stefano Clemente37 XML e CSS (1) Le regole appena viste sono applicabili non solo a documenti HTML, ma anche a un qualsiasi documento XML a patto che:  i nomi dei tag HTML vengano sostituiti con i nomi dei tag XML  la sintassi per associare un CSS a un documento XML sia diversa. Titolo del documento Testo all'interno del documento Esempio: consideriamo il documento Documento.xmlDocumento.xml Scriviamo un documento CSS che definisca un formato per i tag Documento, Titolo e Paragrafo (vedi file Stile2.css).Stile2.css

38 22 Dicembre 2005Stefano Clemente38 XML e CSS (2) Titolo {font-Family: Arial; font-Size: 12pt; color: red; display: block;} Paragrafo {font-Family: Verdana; font-Size: 8pt; color: blue; display: block;} Documento {font-Family: Arial; font-Size: 10pt; color: black; display: inline;} Stile2.css L’attributo display indica come deve essere gestito il testo contenuto nel tag rispetto al contenuto testuale circostante. In particolare:  block: significa che prima e dopo il testo si avranno dei simboli di a capo automatico ( ) come se si trattasse di un tag P o DIV  inline: indica al browser che il testo del tag deve essere accodato al testo precedente e successivo, a meno che uno di questi ultimi non sia di tipo block  none: permette di nascondere il testo e quindi non visualizzare a schermo alcune informazioni, in realtà presenti nel documento XML originale.

39 22 Dicembre 2005Stefano Clemente39 XML e CSS (3) Per inserire in un documento XML un foglio di stile CSS (Stile2.css) si usa una processing instruction che ha la seguente sintassi: Se inseriamo questa istruzione nel documento Documento.xml (vedi Documento2.xml) otteniamo a video il seguente output:Documento.xml Documento2.xml

40 22 Dicembre 2005Stefano Clemente40 XML e CSS (4) Finora abbiamo solo considerato la formattazione di elementi in funzione del loro nome. In realtà la sintassi dei CSS permette anche di lavorare sulle relazioni di parentela tra gli elementi e sull’esistenza o meno di attributi e nodi figli. RegolaFormattazione applicata a *Tutti gli elementi, qualunque sia il loro nome. TitoloTutti gli elementi di nome Titolo. Titolo, ParagrafoTutti gli elementi di nome Titolo o di nome Paragrafo. Capitolo ParagrafoTutti gli elementi di nome Paragrafo che sono contenuti, a qualsiasi livello di profondità, in Capitolo. Capitolo>ParagrafoTutti gli elementi di nome Paragrafo che sono figli di Capitolo. Prezzo[Valuta]Tutti gli elementi di nome Prezzo che abbiano anche l’attributo Valuta, indipendentemente dal suo valore. Prezzo[Valuta=“Euro”]Tutti gli elementi di nome Prezzo che abbiano l’attributo Valuta con valore “Euro”.

41 22 Dicembre 2005Stefano Clemente41 XML e CSS (5) ESEMPIO Indichiamo tramite un CSS che il tag Prezzo del documento Libro (Libro.xml) deve essere scritto in rosso se la Valuta è Lire e in verde se la Valuta è Euro:Libro.xml Prezzo[Valuta=“Lire”] {color: red;} Prezzo[Valuta=“Euro”] {color: green;} Nascondiamo tramite un CSS tutte le informazioni del tag Struttura del documento Libro: Struttura {display: none;} Salviamo queste regole in un file CSS (StileNewLibro.css) e applichiamole al documento Libro (ovviamete adattato, vedi NewLibro.xml) per vedere a video il risultato.StileNewLibro.css NewLibro.xml

42 22 Dicembre 2005Stefano Clemente42 Esempi

43 Introduzione a XSL (eXtensible Stylesheet Language)

44 22 Dicembre 2005Stefano Clemente44 Introduzione a XSL Tutte le volte che abbiamo l’esigenza, non solo di colorare o spostare a schermo i contenuti di un documento XML, ma anche di filtrarli, riorganizzarli come gerarchia, eseguire dei calcoli, e altro ancora, i CSS non possono esserci d’aiuto. I CSS si occupano solo della formattazione del testo contenuto all’interno dei tag di un documento XML. Per superare questo limite dei CSS, il W3C ha prodotto un linguaggio di stile pensato specificatamente per XML: eXtensible Stylesheet Language (XSL).

45 22 Dicembre 2005Stefano Clemente45 CSS e XSL  I fogli di stile CSS applicano le regole di formattazione direttamente al contenuto del documento per creare i risultati desiderati e possono essere utilizzati sia con i documenti HTML sia con i documenti XML.  I fogli di stile XSL eseguono invece una trasformazione (in altri formati, es. PDF, XML, HTML) del contenuto del documento e possono essere usati solo con documenti XML.  Un'altra differenza significativa consiste nel fatto che i CSS contengono solo regole di formattazione, mentre i fogli XSL contengono anche regole di trasformazione.

46 22 Dicembre 2005Stefano Clemente46 I fogli di stile XSL offrono lo stesso livello di formattazione e di flessibilità dei fogli di stile CSS, ma utilizzano metodi diversi. XSL consiste di un insieme di strumenti: XSLT (eXtensible Stylesheet Language for Transformation): un linguaggio per la trasformazione di documenti XML in altri documenti (es: per trasformare un XML in un HTML o in un XML di un altro DTD) XSL FO (Formatting Object): un linguaggio per la formattazione di documenti XML (simile a CSS) XSL (1) Nota: XSL FO non è supportato dai browser ed esistono solo pochi strumenti che oggi lo sfruttano (es: esiste uno strumento che è in grado di trasformare dei file XML in PDF sulla base della specifica XSL FO). Ci si aspetta che in un breve futuro sia supportato dai browser direttamente... Xpath: un linguaggio per riferire o definire parti di un documento XML (es: il contenuto di un tag all’interno di un tag )

47 22 Dicembre 2005Stefano Clemente47 XSL (2) L’idea è quella di partire da un documento sorgente XML e trasformarlo in un differente documento destinazione XML. A questo scopo:  XSLT sono le regole che dicono come i vari pezzi devono essere trasformati  Xpath sono le indicazioni che dicono a quali pezzi gli XSLT devono fare riferimento Poiché un foglio di stile XSL è a sua volta un documento XML (ben formato), deve iniziare con la dichiarazione (nel prologo)

48 22 Dicembre 2005Stefano Clemente48 XSL (3) Un documento XSL è costituito secondo il seguente schema: Namespace alias per il Namaspace versione di XSLT

49 22 Dicembre 2005Stefano Clemente49 XSL: esempio Prima trasformazione da XML a HTML Prova di scrittura documento HTML Prima trasformazione da XML a HTML Prova di scrittura documento HTML primo.xsl applica a tutto il documento

50 22 Dicembre 2005Stefano Clemente50 XSLT Per provare le trasformazioni XSLT sfruttiamo il supporto nativo fornito a XSLT da Microsoft Internet Explorer 6.0 e da Mozilla. Produrremo quindi trasformazioni da XML a HTML. E’ sufficiente inserire nel prologo di documento XML una processing instruction che colleghi l’XSL all’XML nel modo seguente: primo.xml In questo caso al documento (praticamente vuoto tranne che per il tag root di nome documento ) verrà applicata la trasformazione primo.xsl.

51 22 Dicembre 2005Stefano Clemente51 Esempio primo.xml Applichiamo la trasformazione XSLT descritta nel file primo.xsl al documento primo.xml e visualizziamo il risultato con un browser:primo.xsl primo.xml Elaborazione XSL (primo.xsl)

52 22 Dicembre 2005Stefano Clemente52 Direttive XSL (1)  XSL usa uno o più template per individuare un elemento o un gruppo di elementi del documento XML attraverso la seguente sintassi: che permette di associare il template specificato con un elemento XML (specificando il valore "/" si associa il template all'intero documento XML).  Un tag molto usato è ; ad esempio, con il modello abbinato alla radice si può scrivere: Il tag indica al parser di continuare a scandire il documento XSL alla ricerca di altri modelli da applicare ai nodi sottostanti, ovvero i nodi figli.

53 22 Dicembre 2005Stefano Clemente53 Direttive XSL (2)  All’interno del template che abbiamo associato al nodo root possiamo leggere e scrivere in uscita il valore di un qualsiasi nodo utilizzando il comando value-of : Per esempio la scrittura (inserita nella template che fa il matching del nodo root): restuisce il contenuto testuale del tag di nome id, del primo tag cliente del figlio clienti.

54 22 Dicembre 2005Stefano Clemente54 Direttive XSL (3) Elemento XSLDescrizione

55 22 Dicembre 2005Stefano Clemente55 Direttive XSL (4) Elemento XSLDescrizione

56 22 Dicembre 2005Stefano Clemente56

57 22 Dicembre 2005Stefano Clemente57 Linguaggi di markup personalizzati Caso di studio: XHTML

58 22 Dicembre 2005Stefano Clemente58 Linguaggi di markup personalizzati XML è un metalinguaggio, cioè un linguaggio che permette di creare altri linguaggi. Nei prossimi lucidi verranno elencati alcuni dei più noti linguaggi di markup che sono stati creati con XML. Poi vedremo, come esempio, uno di questi linguaggi (scelto perchè è uno dei più semplici): MathML.

59 22 Dicembre 2005Stefano Clemente59 Alcuni linguaggi di markup  EXtensible Hyper Text Markup Language (XHTML):  Mathematical Markup Language (MathML):  Chemical Markup Language (CML):  Wireless Markup Language (WML):  Geography Markup Language (GML):  Synchronized Multimedia Integration Language (SMIL):  Scalable Vector Graphics (SVG):  Bean Markup Language (BML):  Extensible 3D Language (X3D): ...

60 22 Dicembre 2005Stefano Clemente60 Caso di studio: XHTML

61 22 Dicembre 2005Stefano Clemente61 XHTML  XHTML sta per eXtensible Hyper Text Markup Language  XHTML è stato pensato per estendere (e sostituire) HTML  XHTML è molto simile a HTML 4.01  XHTML è una versione più “rigida e pulita” di HTML  XHTML è la riformulazione di HTML definito come un’applicazione XML.

62 22 Dicembre 2005Stefano Clemente62 XHTML è uno standard Web XHTML 1.0 è diventato una Raccomandazione ufficiale del W3C nel Gennaio del Se una specifica diventa una Raccomandazione ufficiale W3C significa che tale specifica è ormai STABILE, cioè che è stata revisionata con successo dal W3C membership e che quindi può essere considerata uno standard Web (ha superato tutto il lungo processo di revisione). XHTML è considerato la nuova generazione di HTML, ma ci vorrà tempo perchè tutti i browsers e gli applicativi software siano in grado di leggerlo e processarlo. XHTML è una combinazione di HTML e XML: consiste di tutti gli elementi di HTML 4.01 (compatibilità con HTML 4.01) con la sintassi di XML.

63 22 Dicembre 2005Stefano Clemente63 Perchè XHTML? Si è ormai arrivati ad un punto nel quale molte pagine Web contengono “bad” HTML. Consideriamo ad esempio il seguente codice: This is bad HTML Bad HTML Visualizza Questo codice HTML viene visualizzato correttamente dal browser nonostante non sia “ben formato”. XHTML, integrando HTML e XML, permette di scrivere documenti HTML ben formati.

64 22 Dicembre 2005Stefano Clemente64 Nei prossimi lucidi vedremo i 10 cambiamenti necessari per trasformare un documento HTML 4.01 in uno XHTML. HTML XHTML

65 22 Dicembre 2005Stefano Clemente65 1. Documenti conformi alle regole XML  Gli elementi devono essere annidati in modo corretto. HTML: This text is bold and italic XHTML: This text is bold and italic  I documenti devono essere ben formati. Tutti gli elementi XHTML devono essere annidati all’interno dell’elemento root. Tutti gli altri elementi possono avere sotto-elementi (figli). I figli devono essere in coppie e correttamente annidati all’interno del loro elemento padre STRUTTURA BASE DI UN DOCUMENTO

66 22 Dicembre 2005Stefano Clemente66 2. Nomi elementi in minuscolo  I documenti XHTML sono applicazioni XML. XML è case-sensitive: tag come e sono interpretati come elementi diversi! This is a paragraph. This is a paragraph. Questo è sbagliato! Questo è corretto!

67 22 Dicembre 2005Stefano Clemente67 3. Elementi XHTML devono essere chiusi  Tutti gli elementi XHTML devono essere chiusi. Gli elementi non vuoti devono avere un tag di chiusura. This is a paragraph. This is a list item. This is a paragraph. This is a list item. Questo è sbagliato! Questo è corretto!

68 22 Dicembre 2005Stefano Clemente68 4. Anche gli elementi vuoti devono essere chiusi  Gli elementi vuoti devono avere un tag di fine oppure devono finire con />. This is a line break. Check out this horizontal rule: What a cool image! This is a line break. Check out this horizontal rule: What a cool image! Questo è sbagliato! Questo è corretto!

69 22 Dicembre 2005Stefano Clemente69 5. Nomi attributi  I nomi degli attributi devono essere in minuscolo. Questo è sbagliato! Questo è corretto!

70 22 Dicembre 2005Stefano Clemente70 6. Valori attributi  I valori degli attributi devono essere tra virgolette. Questo è sbagliato! Questo è corretto!

71 22 Dicembre 2005Stefano Clemente71 7. Gli attributi devono avere valori Questo è sbagliato! Questo è corretto!

72 22 Dicembre 2005Stefano Clemente72 8. Attributo “name” sostituito con “id”  HTML 4.01 definisce un attributo “name” per gli elementi: a, applet, frame, iframe, img, map. In XHTML si usa l’attributo id al posto di “name”. Questo è sbagliato! Questo è corretto!

73 22 Dicembre 2005Stefano Clemente73 9. XHTML DTD definisce elementi obbligatori  Tutti i documenti XHTML devono avere una dichiarazione DOCTYPE. Gli elementi html, head e body devono essere presenti e l’elemento title deve essere presente all’interno di head. Indicare qui il titolo Corpo del documento Può non avere il tag di chiusura! Modello di documento XHTML:

74 22 Dicembre 2005Stefano Clemente obbligatoria  La dichiarazione DOCTYPE deve essere sempre la prima linea in un documento XHTML. DOCTYPE definisce il tipo di documento. Il tipo di documento viene indicato con un XHTML DTD (Document Type Definition). Un XHTML DTD descrive, con un linguaggio preciso e computer- readable, la sintassi e la grammatica da rispettare per qualsiasi documento XHTML. Attualmente ci sono 3 differenti XHTML DTD.

75 22 Dicembre 2005Stefano Clemente75 Tipi di documento XHTML 1.XHTML 1.0 Strict: questo DTD è consigliato quando la presentazione del documento è controllata da un CSS. 2.XHTML 1.0 Transitional: questo DTD è consigliato quando si vuole supportare browsers che non gestiscono CSS. 3.XHTML 1.0 Frameset: questo DTD è consigliato quando si vuole supportare i frames.

76 22 Dicembre 2005Stefano Clemente76 Namespace XHTML L’elemento radice deve indicare la dichiarazione di un namespace XML usando l’attributo xmlns. Il namespace deve essere: “http://www.w3.org/1999/xhtml” Indicare qui il titolo Corpo del documento Nuovo modello di documento XHTML

77 22 Dicembre 2005Stefano Clemente77 Prologo Il prologo di un documento XHTML è composto da due parti: la dichiarazione XML la definizione del DOCTYPE (vedi lucidi precedenti) La dichiarazione XML ( ) rende esplicito il fatto che il documento è XML. Tale dichiarazione NON è obbligatoria, ma il suo uso è consigliato dal W3C per ogni documento XML. Schema PROLOGO XHTML

78 22 Dicembre 2005Stefano Clemente78 Riepiloghiamo con un esempio Esempio di pagina XHTML Salve Questo è un primo esempio di pagina XHTML! PROLOGO ELEMENTO RADICE TESTATA CORPO

79 22 Dicembre 2005Stefano Clemente79 Validare un documento XHTML Un documento XHTML è valido se rispetta le regole definite nel DTD XHTML. Perchè un documento XHTML possa essere correttamente validato, deve contenere una dichiarazione di DTD al suo interno (vedi dichiarazione DOCTYPE). Per validare un documento XHTML rispetto a un certo DTD è necessario quindi un validatore. Per usare il validatore XHTML del W3C basta andare alla pagina Web (provarlo per esercizio!)http://validator.w3.org


Scaricare ppt "Document Type Definition  Document Type Definition (DTD)  Documento XML valido  Sintassi del DTD  Elementi, attributi e entità."

Presentazioni simili


Annunci Google