La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Lezione 5 Attributi, Entità, Parametri e Namespaces.

Presentazioni simili


Presentazione sul tema: "Lezione 5 Attributi, Entità, Parametri e Namespaces."— Transcript della presentazione:

1 Lezione 5 Attributi, Entità, Parametri e Namespaces

2 Attributi Come definire attributi in una DTD: <!ATTLIST poesia iden ID #IMPLIED status (bozza | rivisto | pubblicato) "bozza" > Lattributo ident di poesia è di tipo ID e può mancare (essere implicito) Lattribito status di poesia ha 3 valori possibili: bozza, rivisto e pubblicato; se non è presente in valore da assumere è bozza

3 Attributi: tipi di valori possibili CDATA: (character data) Il valore dellattributo può contenere qualsiasi carattere valido, inclusi spazi e punteggiatura; PCDATA: (Parsed character data) Il valore dellattributo può contenere qualsiasi carattere valido, inclusi spazi e punteggiatura; eventuali etichette comprese nel valore, possono essere riconosciute come tali dal parser XML; NMTOKEN: (named token) Il valore dellattributo può contenere solo i caratteri che sono validi allinterno di un nome o di un identificatore generico; NMTOKENS: (named tokens) Il valore dellattributo può contenere uno o più valori NMTOKEN separati da uno o più spazi bianchi; ID: (identifier ) Il valore dellattributo deve essere una singola parola iniziante con un carattere alfabetico, che possa essere usata come identificatore univoco (un dato valore può essere usato una volta sola come valore di qualsiasi attributo ID); IDREF: (identifier reference) Il valore dellattributo deve contenere una singola parola che è stata usata altrove come identificatore univoco di qualche elemento; IDREFS: (identifier references) Il valore dellattributo può contenere uno o più valori IDREF separati da uno o più spazi bianchi; ENTITY: Il valore dellattributo deve contenere un valore NMTOKEN precedentemente dichiarato come il nome di una entità XML (vedi oltre); ENTITIES: Il valore dellattributo può contenere uno o più valori ENTITY, separati da uno o più spazi bianchi;

4 Obbligatorietà dei valori 1.#REQUIRED: un valore deve essere specificato. 2.#IMPLIED: non deve essere specificato nessun particolare valore. 3."valore di default Esempi: <!ATTLIST poesia iden ID #IMPLIED status (bozza | rivisto | pubblicato) #REQUIRED lingua CDATAitaliano>

5 Identificatori e riferimento Attributo utile solo per elementi a cui pensiamo di dover poi far riferimento Esempio:

6 Per far riferimento serve un elemento composto solo da un attributo di tipo IDREF: <!ATTLIST poesiaRef target IDREF #REQUIRED > Blakes poem on the sick rose

7 Entità predefinite Le entità predefinite possono spesso rappresentare singoli caratteri, tramite il loro numero di codice (esprimibile con la forma: &#num; dove num è un numero di ASCII/Latin-1/UNICODE…) -->

8 Tre tipi di entità non predefinite Entità interne &tei; Text Encoding Initiative Entità esterne <!ENTITY ChapTwo SYSTEM "http://www.tei-c.org/P4X/p4chap2.xml"> Entità pubbliche <!ENTITY p3.sg PUBLIC "-//TEI//TEXT Guidelines Chapter on XML//EN" "p4chap2.xml">

9 Entità dentro definizioni Un esempio di entità definita in una DTD ed usata alla riga successiva, per definire una nuova entità: &xml- url; ">

10 Se una entità viene dichiarata più di una volta, solo il primo valore dichiarato è valido &personaggio; ==> pluto NB: Ciò si discosta del normale comportamento delle variabili nei linguaggi di programmazione; normalmente lultima assegnazione è quella che vale)

11 Parametri Un parametro è un insieme di attributi a cui viene dato un nome, in modo da poterlo usare con più elementi. Per fare riferimento ad un parametro si usa la forma: %nomeparametro;

12 Parametri: esempio <!ENTITY % a.global iden ID #REQUIRED Rend CDATA #IMPLIED> <!ATTLIST myElement %a.global; another CDATA #IMPLIED > Con questo sistema i due attributi iden e rend vengono assegnati insieme a myElement. Nome parametro elenco attributi

13 Un esempio di documento completo Un documento marcato in XML consiste di: Una dichiarazione XML che indica proprietà generali del documento. Una Document Type Declaration (o DOCTYPE), che assegna l' elemento root e la DTD (necessaria solo se si vuole che il documento XML possa essere dichiarato formalmente valido da un parser) L' elemento root, che contiene il testo e le successive marcature. <!DOCTYPE antologia [ ]> The SICK ROSE O Rose thou art sick. The invisible worm, That flies in the night In the howling storm: Has found out thy bed Of crimson joy: And his dark secret love Does thy life destroy.

14 Namespace Il meccanismo dei namespace (spazi dei nomi) consente ad un documento in XML di caricare ed usare più di una DTD, ciascuna con il suo set di marcatori. I marcatori diventano disponibili allinterno del marcatore in cui la DTD è stata caricata con la la istruzione xmlns Un opportuno sistema di prefissi distingue i marcatori di DTD diverse (risolvendo eventuali omonimie) Esempio:...

15 Namespace con prefissi <verso xmlns:gram=http://www.gram.org/morfo.dtd xmlns:form=http://www.shake.org/sonnet.dtd> Shall I compare thee to a summer s day ? …

16 I marcatori che vengono caricati da un particolare namespace hanno significato solo allinterno di quel namespace. Il significato dei prefissi dipende del namespace più interno in cui sono definiti (se ci sono più namespace con prefissi con lo stesso nome, il particolare prevale sul generale). La URL data nella definizione del namespace non viene controllata in fase di validazione

17 Esercizi di creazione DTD Provate a creare una DTD che copra (almeno) testi teatrali della seguente forma: T1: Titolo Autore1 Atto Descrizione di scena Personaggio : testo Atto Personaggio: testo Epilogo T2: Titolo Autore1, autore2 Personaggio: testo Descrizione di scena Personaggio: testo Descrizione di scena Epilogo T3: Titolo Autore1 Atto Personaggio: testo Atto Personaggio: testo Epilogo Indice T4: Titolo Autore1 Personaggio: testo Descrizione di scena Personaggio: testo Epilogo Postfazione T5: Titolo Autore1 Monologo Postfazione Si ricordi: A? = A è opzionale A+ = A appare almeno 1 volta A* = A appare 0 o più volte (A | B) = o A o B (A, B) = A seguito da B

18 Esercizi di creazione DTD Mickey Mouse, via degli Aranci 12, Topolinia Sig. Mickey Mouse, via degli Aranci n. 12., Topolinia (TO) Fam. Mouse, via degli Aranci 12, 38160, Topolinia, Italia Provate a creare una DTD che copra le seguenti forme di indirizzo:

19 Esercizi di creazione DTD Disponibile su http://www.pellegrinoartusi.it/la_cucina_ar tusiana.htm http://www.pellegrinoartusi.it/la_cucina_ar tusiana.htm O sulla biblioteca di Liber liber, in HTML: http://www.liberliber.it/biblioteca/index.ht m http://www.liberliber.it/biblioteca/index.ht m Provate a creare una DTD che copra la (intricata) struttura di uno dei primissimi libri di cucina italiani: La Scienza in Cucina e lArte di Mangiar Bene, di Pellegrino Artusi.


Scaricare ppt "Lezione 5 Attributi, Entità, Parametri e Namespaces."

Presentazioni simili


Annunci Google