Tecnologie di Sviluppo per il Web

26
G. Mecca – [email protected] – Università della G. Mecca – [email protected] – Università della Basilicata Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

description

Tecnologie di Sviluppo per il Web. XML: Dettagli e Approfondimenti. versione 2.0. Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina). XML >> Sommario. Dettagli e Approfondimenti. Un Ulteriore Esempio Il Sistema PdD - PowerPoint PPT Presentation

Transcript of Tecnologie di Sviluppo per il Web

Page 1: Tecnologie di Sviluppo per il Web

G. Mecca – [email protected] – Università della Basilicata G. Mecca – [email protected] – Università della Basilicata

Tecnologie di Sviluppo per il Web

XML:Dettagli e Approfondimenti

versione 2.0Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons

(vedi ultima pagina)

Page 2: Tecnologie di Sviluppo per il Web

2G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Dettagli e Approfondimenti Un Ulteriore Esempio

Il Sistema PdD Dettagli sulla Sintassi

EntitàDTD

Validatori

XML >> Sommario

Page 3: Tecnologie di Sviluppo per il Web

3G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Un Ulteriore Esempio Il Sistema PdD

un sistema per la costruzione di questionari cartacei ed elettronici

Esigenzacostituire e gestire archivi di domande per

varie disciplinecreare e stampare questionari sulla base

degli archiviXML è una soluzione ideale

XML >> Dettagli e Approfondimenti >> Un Ulteriore Esempio

Page 4: Tecnologie di Sviluppo per il Web

4G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Un Ulteriore Esempio Idea

costituire archivi di domande e questionari come file XML

sulla base di un DTD fissato Attenzione

fisicamente si tratta di file di testoma la struttura logica che c’è dietro è quella

di un albero

XML >> Dettagli e Approfondimenti >> Un Ulteriore Esempio

>> PdD-archivioQuesitiGeografia.xml>> DOM Inspector

Page 5: Tecnologie di Sviluppo per il Web

5G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Dettagli sulla Sintassi Regole generali

sensibile alle maiuscoleconvenzione: minuscole

Identificatori (nomi)iniziano per lettera oppure _ oppure :sequenza di lettere, cifre, _

Namespaceattributi speciali degli elementi

<collezioneQuesiti xmlns:pdd=“http://www.db.unibas.it”><pdd:quesito>...</pdd:quesito>

XML >> Dettagli e Approfondimenti >> Dettagli Sulla Sintassi

Page 6: Tecnologie di Sviluppo per il Web

6G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Dettagli sulla Sintassi Contenuto di un documento XML Istruzioni di Elaborazione

es: prologo <? xml version=“1.0 ?>es: foglio di stile

<?xml-stylesheet type="text/xsl" href="PdD-stile.xsl"?>

Dichiarazione di DTD (DOCTYPE) >> Descrizione dell’albero

elementi, attributi, valorialtri oggetti: commenti, entità

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 7: Tecnologie di Sviluppo per il Web

7G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Dettagli sulla Sintassi Elementi

tag di apertura (“start tag”) es: <quesito>tag di chiusura (“end tag”) es: </quesito>tag di elem. vuoto (“empty element tag”)

es: <soluzione lettera="b" /> Elemento principale

deve essere unicoes: <collezioneQuesiti disciplina="Geografia"> ...

</collezioneQuesiti>

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 8: Tecnologie di Sviluppo per il Web

8G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Dettagli sulla Sintassi Attributi

<soluzione lettera="b" /> Valori

stringhe di caratteri Commenti

<!-- testo del commento --> Entità

definizioni di costanti o “macro”

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 9: Tecnologie di Sviluppo per il Web

9G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Entità Due categorie

general entity, parameter entity (nel DTD >>) General Entity

definite nel DTD, utilizzate nel documentoes: quesiti di analisi <!ENTITY pigreco “3.1412”>utilizzo della costante: &<nome>; es: &pigreco;possono essere definite all’esterno

<!ENTITY capitolo1 SYSTEM “cap1.xml”>per includere il contenuto di cap1.xml in libro.xml

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 10: Tecnologie di Sviluppo per il Web

10G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Entità Esistono varie entità predefinite di XML

corrispondono ai caratteri riservati della sintassiesempi: &lt; <

&gt; > &amp; & &apos; ‘ &quot; “

Più in generaleesiste un’entità predefinita per ogni carattere del set

di caratteri ISO/IEC 10646&#<n>, dove <n> è il codice esadecimale del

carattere ISO es: &#62 equivale a &gt; (>)

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 11: Tecnologie di Sviluppo per il Web

11G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD Schema per il documento XML

vincoli sulla struttura dell’albero Sintassi per i DTD

non è basata su XML Esempio

<!ELEMENT archivioDomande (elencoArgomenti, elencoQuesiti)><!ATTLIST archivioDomande

disciplina CDATA #REQUIRED><!ELEMENT elencoArgomenti (argomento)* >...

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 12: Tecnologie di Sviluppo per il Web

12G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD Riferimento al DTD

nodo DOCTYPEriporta il riferimento all’URI del DTD (relativo

o assoluto)es: <!DOCTYPE archivioDomande SYSTEM

"pdd_0_2.dtd"> Attenzione

la presenza dello schema è opzionaledocumenti validi e documenti ben formati

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 13: Tecnologie di Sviluppo per il Web

13G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD DTD interno

il DTD può essere contenuto nel file XML<!DOCTYPE archivioDomande [

<!ELEMENT archivioDomande

(elencoArgomenti,elencoQuesiti)><!ATTLIST archivioDomande

disciplina CDATA #REQUIRED…

]>

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 14: Tecnologie di Sviluppo per il Web

14G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD Identificatore del DTD

normalmente: identificatore di “sistema” (SYSTEM)

Identificatori pubblicialcuni DTD molto utilizzati hanno un “nome”

pubblico (PUBLIC); es: il DTD di XHTML<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN“ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 15: Tecnologie di Sviluppo per il Web

15G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD Contenuto del DTD

dichiarazione di elementidichiarazioni di attributodichiarazione di entità

Parameter Entitypezzi di DTD da riutilizzare varie voltesono utilizzate nel DTD e non nel doc. xml

(differenza con le entità generali)

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 16: Tecnologie di Sviluppo per il Web

16G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD Utilizzo tipico

definisco la struttura di un albero in un DTDriutilizzo la struttura in un altro DTD senza

doverla ridefinire Esempio

collezioneProve.dtd: collezione di questionari<!ENTITY % collezioneQuesiti SYSTEM

“collezioneQuesiti_0_2.dtd”>nel DTD: %collezioneQuesiti;

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

>> collezioneProve.dtd

Page 17: Tecnologie di Sviluppo per il Web

17G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD Definizione degli elementi

<!ELEMENT nome (contenuto)>es: <!ELEMENT elencoQuesiti (quesito)* >

Una sola dichiarazione per ogni nome Modello di contenuto (“content model”)

ELEMENT ONLY elementi combinati con * + ?TEXT (#PCDATA) MIXED (#PCDATA | <el1> | <el2> | … )*EMPTYANY

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 18: Tecnologie di Sviluppo per il Web

18G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD Utilizzo di EMPTY

per quegli elementi che hanno attributi ma non hanno contenuto nè sottoelementi

è quasi sempre possibile evitarlo, tranne che a scopo di presentazione (es: HTML)

Esempio<!ELEMENT soluzione EMPTY><soluzione lettera="b" /><!ELEMENT difficolta EMPTY><difficolta valore="0" />

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 19: Tecnologie di Sviluppo per il Web

19G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD Utilizzo di ANY

per quegli elementi di cui non si vuole vincolare il contenuto

Esempio<!ELEMENT risposta ANY>nelle risposte proposte per una domanda è

opportuno poter specificare elementi diversi; es: immagini, o testo formattato

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 20: Tecnologie di Sviluppo per il Web

20G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD Definizione degli attributi

<!ATTLIST nomeEl listaDefAttributi> Definizione dell’attributo

nomeAttr tipo vincolo Esempio

<!ATTLIST soluzione lettera CDATA #REQUIRED>

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 21: Tecnologie di Sviluppo per il Web

21G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD Tipo dell’attributo

CDATA: testoID: identificatore; non ammette duplicatiIDREF: riferimento ad un ID (integr. ref.)IDREFS: riferimenti ad una lista di ID

(integrità referenziale) tipo enumerato: (val1 | val2 | … | valn)

es: centesimi (“1” | “2” | “5” | “10” | “20” | “50””) NMTOKEN, NMTOKENS

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 22: Tecnologie di Sviluppo per il Web

22G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

DTD Vincoli sull’attributo

#REQUIRED obbligatorioes: <!ATTLIST soluzione lettera CDATA #REQUIRED>

#IMPLIED opzionale es: <!ATTLIST elencoQuesiti disciplina CDATA #IMPLIED>

valore opzionale con v. standardes: <!ATTLIST difficolta valore CDATA "1">

#FIXED valore valore fissatoes: <!ATTLIST difficolta valore "1“ #FIXED>

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 23: Tecnologie di Sviluppo per il Web

23G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Validatori Esistono vari validatori

alcuni supportano solo DTDaltri anche XMLSchema

Browsertutti i principali browser effettuano la

convalida dell’XMLIE6, Mozilla, Netscape

XML >> Dettagli e Approfondimenti >> Validatori

Page 24: Tecnologie di Sviluppo per il Web

24G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Validatori In questo corso

xmlvalid, semplice da usare, efficace Altri esempi

RXP – Univ. of Edimburghhttp://www.ltg.ed.ac.uk/~richard/xml-check.html

XSV – Univ. of Edimburgh, W3Chttp://www.w3.org/2001/03/webdata/xsv

Altri validatorihttp://w3.org/XML, http://www.w3.org/XML/Schema

XML >> Dettagli e Approfondimenti >> Validatori

Page 25: Tecnologie di Sviluppo per il Web

25G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Riassumendo Un Ulteriore Esempio

Il Sistema PdD Dettagli sulla Sintassi

EntitàDTD

Validatori

XML >> Sommario

Page 26: Tecnologie di Sviluppo per il Web

26G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Termini della LicenzaTermini della Licenza

This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.