La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Lezione 5 DTD, Entità, Parametri, Namespace. la DTD La DTD (Document Type Definition) ha il compito di fornire informazioni su come sarà fatto un documento.

Presentazioni simili


Presentazione sul tema: "Lezione 5 DTD, Entità, Parametri, Namespace. la DTD La DTD (Document Type Definition) ha il compito di fornire informazioni su come sarà fatto un documento."— Transcript della presentazione:

1 Lezione 5 DTD, Entità, Parametri, Namespace

2 la DTD La DTD (Document Type Definition) ha il compito di fornire informazioni su come sarà fatto un documento. Essa associa, cioè, una struttura logica al testo. La DTD non è un elemento obbligatorio in un file XML (a differenza che in un file SGML)

3 la DTD L'XML ha una propria DTD (attualmente descritto nella specifica REC-xml ) in cui vengono elencate le regole della specifica stessa del linguaggio. Con l'XML è anche introdotta una classe di documenti che fa riferimento alla sola DTD dell'XML; la creazione di una DTD personale non è quindi indispensabile.

4 XML – documenti well formed un documento XML è ben formato se e solo se: tutti i suoi tag sono chiusi, nellordine corretto esiste un solo elemento radice i valori degli attributi sono scritti tra virgolette gli elementi non hanno due attributi con lo stesso nome i nomi degli elementi e degli attributi non contengono i caratteri & NB: i parser XML sono in grado di trattare solo i documenti XML ben formati

5 DTD type valid I documenti con le specifiche del DTD XML possono essere trovati agli indirizzi: La seguente URL contiene un controllore di validità Se un documento è conforme alle specifiche di un DTD personale, allora si dice che è TYPE VALID ("valido").

6 Esempio di un DTD Per esempio, dato il seguente DTD personale:

7 Documento type valid il seguente documento risulta TYPE VALID: Luigi Rossi

8 Esempio 2 Consideriamo il seguente DTD, che definisce la struttura di un documento che contiene un indirizzo postale:

9 Osservazioni Osservazioni: il nome del document type ("indirizzo") è puramente arbitrario, avremmo potuto scrivere anche address" o altro...; il root element deve avere (obbligatoriamente) lo stesso nome del document type (nell' esempio, "indirizzo");

10 Osservazioni Una volta definito la DTD, un documento TYPE VALID di tipo "indirizzo avrà la seguente forma: Giuseppe Garibaldi Pinerolo (TO) Italia 12345

11 Dove si trova la DTD? la DTD di un file XML può trovarsi: DENTRO il file stesso (internal set): questo sistema comporta uno svantaggio in termini di condivisione in quanto la DTD non può essere usata per altri documenti XML simili; FUORI dal file (external set): qui, invece, la DTD è condivisibile e riutilizzabile.

12 External set In caso di external set la DTD di riferimento viene caricata tramite il sistema operativo (SYSTEM). La URL della risorsa può: essere un percorso sul file system locale. Esempio: oppure essere un indirizzo esterno: Chiaramente la seconda soluzione offre maggiore accessibilità alla DTD.

13 Tipi di content specification Abbiamo già visto un esempio di "content specification" quando abbiamo elencato gli elementi di "indirizzo": "nome", "via", "citta", "stato", "CAP: #PCDATA (Parsed characted data) indica un contenuto misto (testo e/o marcatori). Il processore XML analizzarà i marcatori, ma la DTD non ne specifica la struttura. Una specifica #CDATA, al contrario, indica al processore XML che non deve analizzare il contenuto, ma è tuttavia formato da caratteri Una specifica #NDATA indica invece che il contenuto di un tag potrebbe essere anche un file binario arbitrario (p.es. una immagine)

14 Altri tipi di content specification TIPOCONTENUTO PERMESSO EMPTY (vuoto)nessuno ANYqualsiasi MIXEDDati o sotto-elementi ELEMENTSOLO sotto elementi

15 Esempio TIPOCOME SI DICHIARA EMPTY (vuoto) ANY (qualunque cosa) MIXED MIXED ELEMENT

16 Elementi alternativi E` possibile specificare che un certo elemento può essere composto da uno di due elementi in alternativa: Questo esempio definisce l' elemento "figura" (per esempio di un libro) dicendo che una figura ha SEMPRE una didascalia più un'immagine o un pezzo di codice a scelta.

17 ….. … djkla;jdksla;jdlks;jkf; djskl;wueoruoireweui jdksla;fjkdls;a

18 Il numero degli elementi Per indicare opzionalità o ripetizioni si usano i modificatori già incontrati nelle espressioni regolari: ? ? = l' elemento che precede sarà presente da 0 a 1 volta * = l' elemento che precede sarà presente 0 o più volte + = l' elemento che precede sarà presente 1 o più volte Esempio: L' elemento sottotitolo, se cè, è unico. L' elemento "paragrafo" deve essere presente per lo meno UNA volta. L' elemento "note" può essere ripetuto infinite volte oppure essere totalmente assente.

19 DTD: Esempio 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. Alcune caratteristiche per la definizione di antologia di poesie 1. Una antologia contiene un certo numero di poesie e nient'altro. 2. Una poesia contiene a volte un singolo elemento di titolo che precede la prima strofa, e non contiene mai nessun altro elemento. 3.A parte il titolo, una poesia consiste solo di strofe. 4. Una strofa consiste solo di versi ed ogni verso è contenuto in una strofa. 5. Una strofa non può essere seguita da nulla tranne che da un'altra strofa, oppure dalla fine della poesia. 6. Un verso non può essere seguito da nulla se non da un altro verso, oppure dall'inizio di una nuova strofa.

20 Esempio Antologia

21 Con questi elementi possiamo dichiarare una poesia come composta da una o più strofe, versi liberi o quartine, definite ad esempio come: Notare la differenza tra: Altro esempio: ritornello

22 Contenuti misti Vincoli sul modo per esprimere contenuti misti: 1.#CDATA, se appare, deve essere la prima delle alternative. 2.#CDATA deve apparire solo una volta e solo nel gruppo più esterno. 3.Se il gruppo che lo contiene viene ripetuto, bisogna usare la notazione *.

23 Attributi Come definire attributi in XML: 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

24 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;

25 Obbligatorietà dei valori 1.#REQUIRED: un valore deve essere specificato. 2.#IMPLIED: non deve essere specificato nessun particolare valore. 3."valore di default Esempi:

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

27 Per far riferimento serve un elemento composto solo da un attributo di tipo IDREF: Blakes poem on the sick rose

28 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…) -->

29 Tre tipi di entità non predefinite Entità interne &tei; Text Encoding Initiative Entità esterne Entità pubbliche

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

31 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)

32 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;

33 Parametri: esempio Con questo sistema i due attributi iden e rend vengono assgnati insieme a myElement. Nome parametro elenco attributi

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

35 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:...

36 Namespace con prefissi Shall I compare thee to a summer s day ? …

37 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

38 Altro esempio di uso di namespace Addresses Mr. Simon Schuster


Scaricare ppt "Lezione 5 DTD, Entità, Parametri, Namespace. la DTD La DTD (Document Type Definition) ha il compito di fornire informazioni su come sarà fatto un documento."

Presentazioni simili


Annunci Google