1 documenti xml validi la document type definition dichiarazione di elementi

33
1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

Upload: ornella-micheli

Post on 02-May-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

1

Documenti XML validi

La Document Type Definition

Dichiarazione di elementi

Page 2: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

2

LA DTD La DTD è una descrizione formale della

struttura di una classe di documenti.

Sono specificati: Elementi Attributi Entità Notation

Page 3: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

3

Secondo livello di correttezza

Un documento che rispetta i vincoli della propria DTD si definisce VALIDOVALIDO

Page 4: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

4

Inserire una DTD in un file XMLInternaInterna

<!DOCTYPE bibliografia [Dichiarazioni]>

EsternaEsterna

<!DOCTYPE bibliografia SYSTEM “bibliografia1.dtd”>

Page 5: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

5

Priorità

Le dichiarazioni di una DTD interna vengono elaborate prima delle dichiarazioni di una DTD esterna

Page 6: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

6

Esempio<antologia> <poesia><titolo>I</titolo> <stanza>

<verso>Voi ch'ascoltate in rime sparse il suono</verso><verso>di quei sospiri ond'io nudriva 'l core</verso><verso>in sul mio primo giovenile errore</verso><verso>quand'era in parte altr'uom da quel ch'i' sono,</verso>

</stanza> <stanza>

<verso>del vario stile in ch'io piango et ragiono</verso><verso>fra le vane speranze e 'l van dolore</verso><verso>ove sia chi per prova intenda amore</verso><verso>spero trovar pietà, nonché perdono.</verso>

</stanza> </poesia></antologia>

Page 7: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

7

La sua DTD

<!ELEMENT antologia (poesia+)><!ELEMENT poesia (titolo?, stanza+)><!ELEMENT titolo (#PCDATA)><!ELEMENT stanza (verso+)><!ELEMENT verso (#PCDATA)>

Page 8: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

8

DTD - SintassiDichiarazioneDichiarazione

<!KEYWORD nome contenuto>

KEYWORD:KEYWORD:ELEMENTATTLISTENTITYNOTATIONDOCTYPE

Page 9: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

9

Dichiarazione di elementi

<!ELEMENT GenericIdentifier (content model)>

Page 10: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

10

GIPuò contenere: Caratteri alfabetici maiuscoli o minuscoli Numeri Trattini Underscore Punti

Page 11: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

11

GI 2Non può contenere: Spazi Altra punteggiatura (?^%&,;!\/) Virgolette Caratteri accentati Parentesi Operatori matematici

Page 12: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

12

GI 3 = NMTOKENDeve cominciare con una lettera o

un underscore

ATTENZIONE!

UN GI DEVE ESSERE UNICO IN UNA UN GI DEVE ESSERE UNICO IN UNA DTDDTD

XML XML È È CASE SENSITIVE!!!CASE SENSITIVE!!!

Page 13: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

13

Content ModelPuò essere espresso con:

Altri elementi<!ELEMENT antologia (poesia+)

Keyword: #PCDATA: Parsed Character Data<!ELEMENT verso (#PCDATA)>

EMPTY: elementi vuoti (SENZA parentesi) <!ELEMENT pagina EMPTY>

Page 14: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

14

Indicatori di occorrenza

una occorrenza * zero o più occorrenze ? zero o una occorrenza + una o più occorrenze

Page 15: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

15

Esempi<!ELEMENT antologia (poesia+)>= antologia deve contenere almeno una poesia

<!ELEMENT poesia (titolo?, stanza+)>= poesia può contenere un titolo (ma non due) e

deve contenere almeno una stanza

<!ELEMENT stanza (verso*)>= stanza può contenere dei versi

Page 16: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

16

Connettori

| almeno uno degli elementi della lista deve comparire

, entrambi gli elementi devono comparire nell’ordine specificato

Page 17: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

17

Esempi (titolo?, stanza+)= un titolo opzionale seguito da una o più stanze

(titolo? | stanza+)1. sequenza vuota2. una sequenza composta o da un titolo o da un certo numero di stanze, ma

non da un titolo seguito da stanze

(titolo? | stanza+)*1. sequenza vuota2. una sequenza composta da un titolo (ma mai più di uno alla volta!) e un

numero imprecisato di stanze, in qualsiasi ordine (titolo stanza stanza… titolo stanza titolo stanza stanza stanza titolo…)

3. un numero imprecisato di stanze senza titolo

Esercizio 3

Page 18: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

18

Model Groups

Strutturazione complessa del contenuto di un elemento composto da sequenze di elementi o di testo

Page 19: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

19

Esempio praticoantologia può contenere tre tipi di poesie:

1. Versi sciolti2. Stanze3. Distici

Ora:<!ELEMENT poesia (titolo?, stanza+)><!ELEMENT stanza (verso+)><!ELEMENT verso (#PCDATA)>

Page 20: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

20

Elementi da aggiungere<!ELEMENT distico (primoVerso,

secondoVerso) >

<!ELEMENT primoVerso (#PCDATA) >

<!ELEMENT secondoVerso (#PCDATA)>

Page 21: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

21

Tre tipi di poesia

<!ELEMENT poesia (titolo?, (stanza+ | distico+ | verso+))>

È diverso da

<!ELEMENT poesia (titolo?, (stanza | distico | verso )+ )>

Page 22: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

22

Mixed Content Model

<!ELEMENT verso (#PCDATA | nome) *>

REGOLEREGOLE:1. #PCDATA deve occupare il primo posto2. | è l’unico connettore accettato3. * indicatore di occorrenza obbligatorio da

applicare al gruppo

Page 23: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

23

ESEMPIO COMPLESSO<!ELEMENT ritornello (verso+)>

<!ELEMENT poesia (titolo?, (verso+ | (ritornello?, (stanza, ritornello?)+))) >

Esercizio 4 Esercizio 5 (a casa)

Page 24: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

24

Documenti XML validi

Dichiarazione di attributi

Page 25: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

25

Dichiarazione di attributi<!ELEMENT poesia (titolo?, stanza+)>

<!ATTLIST poesiaid ID #IMPLIEDstatus (bozza | revisionato | pubblicato) "bozza" >

Page 26: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

26

Attributi - sintassi

<!ATTLIST nomeElementonomeAttributo valoriAttributo valoreDefault nomeAttributo2 valoriAttributo2 valoreDefault2 …>

Page 27: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

27

Nomi Attributo<!ATTLIST poesia

id ID #IMPLIEDstatus (bozza | revisionato | pubblicato) "bozza" >

Stesse regole previste per i GI NomeAttributo = NMTOKEN

Il nome di un attributo deve essere UNICO all’interno di una lista

Page 28: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

28

Valore attributo<!ATTLIST poesia

id ID #IMPLIEDstatus (bozza | revisionato | pubblicato) "bozza" >

1. Lista di valori fra parentesi, separati da |Es: (bozza | revisionato | pubblicato)

2. KeywordEs: ID

Page 29: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

29

Keyword contenuto attributi CDATA NMTOKEN NMTOKENS ID IDREF IDREFS ENTITY ENTITIES

Page 30: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

30

Valore di default<!ATTLIST poesia

id ID #IMPLIEDstatus (bozza | revisionato | pubblicato) "bozza" >

Un valore espresso fra virgoletteEs: “bozza”

#KeywordEs: #IMPLIED

Page 31: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

31

Keyword valore di default attributi

#REQUIRED: un valore deve essere specificato necessariamente;

#IMPLIED: un valore non deve essere necessariamente specificato;

#FIXED "valore": (richiede un valore oltre alla parola chiave) se l’attributo compare con un valore diverso da quello indicato verrà considerato erroneo.

Esercizio 6

Page 32: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

32

Attributi ID e IDREF(S): cross referencesEsempio Nella DTD:<!ATTLIST poesia

id ID #IMPLIED >

<!ELEMENT riferimento EMPTY ><!ATTLIST riferimento

target IDREF#REQUIRED>

Page 33: 1 Documenti XML validi La Document Type Definition Dichiarazione di elementi

33

Nel testo:

<poesia id="vita1">…Il primo sonetto del Canzoniere <riferimento

target="vita1" />...

Esercizio 7 (a casa)