Tecnologie di Sviluppo per il Web
description
Transcript of 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)
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
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
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
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
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
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
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
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
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: < <
> > & & ' ‘ " “
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: > equivale a > (>)
XML >> Dettagli e Approfondimenti >> Dettagli sulla Sintassi
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.