G. Mecca – [email protected] – Università della Basilicata Tecnologie di Sviluppo per il Web XML:...

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)

Transcript of G. Mecca – [email protected] – Università della Basilicata Tecnologie di Sviluppo per il Web XML:...

Page 1: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Dettagli e Approfondimenti

Un Ulteriore EsempioIl Sistema PdD

Dettagli sulla SintassiEntitàDTD

Validatori

XML >> Sommario

Page 3: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Un Ulteriore Esempio

Il Sistema PdDun sistema per la costruzione di questionari

cartacei ed elettronici Esigenza

costituire e gestire archivi di domande per varie discipline

creare e stampare questionari sulla base degli archivi

XML è una soluzione ideale

XML >> Dettagli e Approfondimenti >> Un Ulteriore Esempio

Page 4: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Un Ulteriore Esempio

Ideacostituire archivi di domande e questionari

come file XMLsulla base di un DTD fissato

Attenzionefisicamente 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Dettagli sulla Sintassi

Regole generalisensibile 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Dettagli sulla Sintassi

Elementitag 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Dettagli sulla Sintassi

Attributi<soluzione lettera="b" />

Valoristringhe di caratteri

Commenti<!-- testo del commento -->

Entitàdefinizioni di costanti o “macro”

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 9: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Entità

Due categoriegeneral entity, parameter entity (nel DTD >>)

General Entitydefinite 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Entità

Esistono varie entità predefinite di XMLcorrispondono 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

DTD

Schema per il documento XMLvincoli sulla struttura dell’albero

Sintassi per i DTDnon è 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

DTD

Riferimento al DTDnodo DOCTYPEriporta il riferimento all’URI del DTD (relativo

o assoluto)es: <!DOCTYPE archivioDomande SYSTEM

"pdd_0_2.dtd">

Attenzionela presenza dello schema è opzionaledocumenti validi e documenti ben formati

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 13: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

DTD

DTD internoil 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

DTD

Identificatore del DTDnormalmente: identificatore di “sistema”

(SYSTEM) Identificatori pubblici

alcuni 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

DTD

Contenuto del DTDdichiarazione 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

DTD

Utilizzo tipicodefinisco 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

DTD

Utilizzo di EMPTYper 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

DTD

Utilizzo di ANYper 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

DTD

Definizione degli attributi<!ATTLIST nomeEl listaDefAttributi>

Definizione dell’attributonomeAttr tipo vincolo

Esempio<!ATTLIST soluzione

lettera CDATA #REQUIRED>

XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi

Page 21: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

DTD

Tipo dell’attributoCDATA: 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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

DTD

Vincoli sull’attributo#REQUIRED obbligatorio

es: <!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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Validatori

Esistono vari validatorialcuni supportano solo DTDaltri anche XMLSchema

Browsertutti i principali browser effettuano la

convalida dell’XMLIE6, Mozilla, Netscape

XML >> Dettagli e Approfondimenti >> Validatori

Page 24: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Validatori

In questo corsoxmlvalid, semplice da usare, efficace

Altri esempiRXP – Univ. of Edimburgh

http://www.ltg.ed.ac.uk/~richard/xml-check.htmlXSV – Univ. of Edimburgh, W3C

http://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: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Riassumendo

Un Ulteriore EsempioIl Sistema PdD

Dettagli sulla SintassiEntitàDTD

Validatori

XML >> Sommario

Page 26: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è

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

Termini della Licenza

Termini 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.