La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni:



Documenti analoghi
La struttura: DTD. Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino. laura.farinetti@polito.it

Document Type Definition (DTD)

extensible Markup Language

G I O R D A N I A L E S S A N D R A I T T S E R A L E G. M A R C O N I

Laboratorio di Basi di Dati e Multimedia

Linguaggi per il web oltre HTML: XML

XML: La nascita del linguaggio

Creare documenti XML. La natura epistemologica della codifica. Perché comprare XML? La struttura gerarchica ordinata. Riassumendo le componenti

Working Draft 0.5 (Telefonia)

APPENDICE C extensible Markup Language

a cura di Maria Finazzi

Progettaz. e sviluppo Data Base

Guida all uso di Java Diagrammi ER

Manuale di realizzazione dei modelli di documento

XML. XML è contemporaneamente: XML non è:

XML. Concetti principali. Risultato possibile. Differenze tra XML e HTML

XSL: extensible Stylesheet Language

Formattare il contenuto Introduzione all uso di Text Wiki. Nicola Fontana

Direzione Centrale Entrate Direzione Centrale Sistemi Informativi e Tecnologici. Roma, Messaggio n. 5880

Organizzazione degli archivi

Introduzione alla teoria dei database relazionali. Come progettare un database

EXPLOit Content Management Data Base per documenti SGML/XML

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

XML: extensible Markup Language

Introduzione ai database relazionali

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Modellazione e Gestione di Informazioni non Strutturate

I Sistemi Informativi

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

Informatica A per Ingegneria Gestionale ( ) Il linguaggio HTML. Elisa Quintarelli-Laura Mandelli. HyperText Markup Language

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Capitolo 4 Pianificazione e Sviluppo di Web Part

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Strutturazione logica dei dati: i file

2.3 Cenni sui fogli di stile CSS per XML

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Progettazione di Basi di Dati

Guida all uso delle Web View su ios

MANUALE D USO DELLA PIATTAFORMA ITCMS

/XML ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 XML

XML exstensible Markup Language

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Inquadramento XML. Il problema dell Information- Integration. Esempio

HTML+XML= XHTML. Che cos è l XHTML

Creare diagrammi di Gantt con Visio 2003

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

XML e PHP. Gestire XML con PHP. Appendice

Infrastrutture INFormatiche Ospedaliere 2 Corso di laurea di Ingegneria Medica. Indice

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

XML (extensible Markup Language)

Programmi e Oggetti Software

Strumenti di modellazione. Gabriella Trucco

GESTIONE della BASE di DATI

Database. Si ringrazia Marco Bertini per le slides

5.6.1 REPORT, ESPORTAZIONE DI DATI

SPECIFICHE E LIMITI DI EXCEL

Sgravi Contrattazione di Secondo Livello: dettaglio dei Controlli, dei Formati e dei messaggi di errore.

CONCETTO DI ANNIDAMENTO

Product Shipping Cost Guida d'installazione ed Utilizzo

Basi di dati 9 febbraio 2010 Compito A

Sicurezza dei dati. Xml Encryption e Digital Signature. Sicurezza dei dati. XML Encryption. Svantaggio di SSL. SSL (Secure Socket Layer)

Corso di Informatica di base per le discipline umanistiche - XPATH

Esame dell 8 settembre 2012

XML. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A

Costruzione del layout in gino cms

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

FISH Sardegna ONLUS. Manuale Utente.

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

STAMPA UNIONE DI WORD

RISOLUTORE AUTOMATICO PER SUDOKU

Capitolo 13. Interrogare una base di dati

XML. Parte VI - Introduzione e nozioni fondamentali di sintassi. XML: Extensible Markup Language:

Università degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web T A.A Esercitazione 2 XML, DTD, XSD, Parser SAX/DOM

Corso html 5. Di Roberto Abutzu. *********** Quarta parte: Body ed elementi strutturali. ********** Cos'è il Body e gli elementi strutturali?

HTML 6. I frame. Sintassi di base. I frame e DOCTYPE FRAME. ...head... <FRAMESET lista_attributi> <FRAME SRC= URL lista_attributi>

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

Uso di base delle funzioni in Microsoft Excel

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

DATABASE. A cura di Massimiliano Buschi

Introduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language. a.a. 2004/05 Tecnologie Web 1

Come archiviare i dati per le scienze sociali

XML e Basi di Dati Corso di Basi di Dati 1. XML e basi di dati. Angelo Montanari. Dipartimento di Matematica e Informatica Università di Udine

Progettazione : Design Pattern Creazionali

Università degli Studi di Padova Corso di Laurea in Informatica

Editing e gestione delle views per il modulo Landing Page Espositore

REPORT DI VALUTAZIONE DELL ACCESSIBILITÀ

Ogni documento digitalizzato, carta attivo o passivo, viene di infatti accompagnato identità da una sorta di elettron

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

La progettazione dell interfaccia HCI. Fabio Vitali

I link e l'ipertestualità

HTML HyperText Markup Language:

LISTA TITOLI ACCESSI

Applicazioni e Architetture Internet. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

Transcript:

XML: DTD Da un punto di vista cronologico, il primo approccio per la definizione di grammatiche per documenti XML è rappresentato dai Document Type Definition (DTD). Un DTD è un documento che descrive i tag utilizzabili in un documento XML, la loro reciproca relazione nei confronti della struttura del documento ed altre informazioni sugli attributi di ciascun tag. La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni: <!ELEMENT> <!ATTLIST> <!ENTITY> <!NOTATION>

XML: DTD Il DTD è OPZIONALE ed è un insieme di regole per definire la struttura di un documento XML. Queste regole definiscono quali elementi possono e/o devono essere usati nel documento quali attributi si possono usare per ogni elemento inoltre impongono dei vincoli sulle relazioni tra elementi

XML: DTD I DTD sono utili per chi deve intepretare il documento XML (programmatori o parser) sono utili per definire fogli di stile sono utili per verificare la validità di un documento XML sono utili per creare interfacce dinamiche per documenti XML sono utili per l'interscambio di documenti

XML: DTD I DTD possono essere considerati con una struttura ad albero: I nodi rappresentano elementi ed attributi Gli archi rappresentano le relazioni elemento/sottoelemento o elemento/attributo

XML: DTD I DTD possono essere interni o esterni, (anche misto). Un DTD esterno ha il vantaggio di poter essere più facilmente condiviso e riutilizzato. Viene generalmente utilizzato da organizzazioni che hanno la necessità di rendere standard la struttura logica dei documenti: W3C <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> Un DTD interno è contenuto all'interno del documento XML stesso.

XML: DTD <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>pippo</to> <from>pluto</from> <heading>reminder</heading> <body>ricordati di chiamare Paperino</body> </note>

XML: DTD <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE note SYSTEM "note.dtd"> <note> <to>pippo</to> <from>pluto</from> <heading>reminder</heading> <body>ricordati di chiamare Paperino</body> </note> <?xml version="1.0" encoding="utf-8"?> <!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>

XML: DTD <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> PUBLIC se il DTD esterno è uno standard SYSTEM se il DTD esterno è personale Si usa il carattere + per indicare che il DTD è riconosciuto da un'organismo di controllo per gli standard (es. ISO), - nel caso in cui non lo sia. //proprietario//dtd_descr//lingua URL del DTD

XML: DTD Secondo le specifiche W3C i parser NON TOLLERANO ERRORI, quindi possono fermarsi al primo errore che incontrano nell'analisi del documento XML. Questa scelta è stata fatta per rendere i parser semplici da implementare e per la natura stessa di XML (compatibilità ed indipendenza dalla piattaforma e dal parser). I parser HTML sono molto meno restrittivi come abbiamo già visto, rendendoli notevolmente più complessi ed incompatibili tra loro. Gli errori che i parser possono incontrare durante l'analisi sono: FATAL ERROR ERROR

XML: DTD Una violazione di un vincolo espresso in un DTD viene considerata ERROR, mentre una violazione di una regola di buona formattazione viene considerata un FATAL ERROR Secondo le specifiche un fatal error è più grave di un error. FATAL ERROR: il parser può continuare l'analisi del documento per cercare altri errori ma non deve continuare a fornirne il contenuto del documento all'applicazione. ERROR: il parser può continuare l'analisi del documento per cercare altri errori e può continuare a fornirne il contenuto del documento all'applicazione, è compito di quest'ultima decidere cosa fare (ignorarlo, segnalarlo etc...)

XML: DTD RIASSUMENDO, un DTD dichiara: NOME degli elementi permessi CONTENUTO di ogni tipo di elemento STRUTTURA del documento (ordine e sequenze) PROPRIETA' degli elementi (attributi) ENTITA' (sostituzioni)

XML: DTD ELEMENTS OPERATORI ORDINALI, sequenza scelta OPERATORI CARDINALI + indica che l'elemento è presente una o più volte * indica che l'elemento è presente zero o più volte? indica che l'elemento è presente zero o una sola volta

XML: DTD ELEMENTS <!ELEMENT Frutta (Fragole, (Mele Arance))> <Frutta> <Fragole>...</Fragole> <Mele>...</Mele> </Frutta> <Frutta> <Fragole>...</Fragole> <Arance>...</Arance> </Frutta>

XML: DTD ELEMENTS <!ELEMENT Frutta (Fragole+, (Mele Arance)*)> <Frutta> <Fragole>...</Fragole> <Fragole>...</Fragole> <Mele>...</Mele> <Arance>...</Arance> <Arance>...</Arance> </Frutta>

XML: DTD ELEMENTS Per la definizione dei tag che non contengono sottoelementi dobbiamo distinguere il caso dei tag vuoti dai tag che racchiudono testo. Nel caso di tag vuoto la definizione è <!ELEMENT NomeElemento EMPTY> Nel caso di elementi che racchiudono testo abbiamo una definizione analoga alla seguente: <!ELEMENT Testo (#PCDATA)> Esiste la possibilità di definire elementi il cui contenuto non è definito a priori, possono cioè essere vuoti o contenere altri elementi senza vincoli particolari. <!ELEMENT NomeElemento ANY>

XML: DTD ELEMENTS Un'ulteriore possibilità è quella di avere del contenuto misto (mixed content) <!ELEMENT esempio (#PCDATA sub super)*> <!ELEMENT sub (#PCDATA)> <!ELEMENT super (#PCDATA)> <esempio>h<sub>2</sub>o non è altro che acqua</esempio> <esempio>e=mc<super>2</super></esempio>

XML: DTD ELEMENTS <!ELEMENT foo (A, (B C))> <!ELEMENT foo (A, B?, C)> <!ELEMENT foo (A?, (( B, C) D), E?)> <!ELEMENT foo ((A, B)+ (C D))> <!ELEMENT foo (A, (B, C)*, D+)>

XML: DTD ATTRIBUTES <!ATTLIST articolo titolo tipo #REQUIRED> Indica che l'elemento <articolo> prevede un attributo titolo che può avere come valore una qualsiasi combinazione di caratteri (CDATA). L'indicazione #REQUIRED indica che la presenza dell'attributo è obbligatoria. #REQUIRED obbligatorio #IMPLIED opzionale #FIXED fisso (specificato)

XML: DTD ATTRIBUTES TIPI DEGLI ATTRIBUTI CDATA stringhe ID identificatore univoco nel documento (solo uno) IDREF riferimento ad un elemento con attributo ID IDREFS serie di IDREF separati da spazi ENTITY nome di una predefinita entità ENTITIES serie di ENTITY separati da spazi NMTOKEN una parola (solo lettere, numeri, -, _,., : NMTOKENS serie di NMTOKEN separati da spazi NOTATION un'entità dichiarata nel DTD [Enumerazione] serie di valori definiti dall'utente

XML: DTD ATTRIBUTES <!ELEMENT articolo(paragrafo+)> <!ELEMENT paragrafo (immagine*, testo+, codice*)> <!ELEMENT immagine EMPTY> <!ELEMENT testo (#PCDATA)> <!ELEMENT codice (#PCDATA)> <!ATTLIST articolo titolo CDATA #REQUIRED> <!ATTLIST paragrafo titolo CDATA #IMPLIED tipo (abstract bibliografia note) #IMPLIED > <!ATTLIST immagine file CDATA #REQUIRED>

XML: DTD ENTITIES Quando il testo per un entity reference viene sostituito dal parser, il risultato deve essere XML ben formato. Le entità non possono fare riferimento a sè stesse o ad altre entità. ESEMPI DI ENTITA' ERRATE <!ENTITY self Dancing with my&self; > <!ENTITY una riferimento a &altra; > <!ENTITY altra riferimento a &una; >

XML: DTD ENTITIES Parameter Entities <!ENTITY % ParametriPersona altezza CDATA #REQUIRED peso CDATA #IMPLIED > <!ATTLIST DettagliPersona % ParametriPersona eta CDATA #IMPLIED > <!ATTLIST DettagliPersona altezza CDATA #REQUIRED peso CDATA #IMPLIED eta CDATA #IMPLIED >

XML: DTD NOTATION I Notations permettono di definire all'interno del DTD alcune parti del documento che non siano XML, descrivendone il formato e facendo in modo che l'applicazione che gestisce il documento possa interpretarle. <!NOTATION name system "external_id"> name identifica il formato utilizzato nel documento ed external_id spesso identifica il MIME-type. Ad esempio, volendo includere un'immagine gif nel documento: <!NOTATION GIF system "image/gif">

XML: DTD NOTATION Oppure <!NOTATION png SYSTEM " http://www.sito.it/pngviewer.exe"> I dati specificati in questo modo saranno utilizzati ad esempio: <!ENTITY logo SYSTEM http://www.sito.it/img/logo.png NDATA png>

XML: DTD NOTATION <!ELEMENT img EMPTY> <!ATTLIST img src CDATA #REQUIRED type NOTATION (gif jpg png) #IMPLIED> Potrebbe essere la definizione di un'immagine in XHTML, ovviamente deve essere data una definizione NOTATION per ogni tipo di immagine.

XML: DTD CONCLUSIONI Tuttavia i DTD hanno i seguenti limiti: la sintassi utilizzata per definire un DTD non segue le stesse regole di XML i DTD non consentono di specificare un tipo di dato per il valore degli attributi i DTD non consentono di specificare il numero minimo o massimo di occorrenze di un tag in un documento Queste limitazioni hanno spinto alla definizione di approcci alternativi per definire grammatiche per documenti XML. Tra questi approcci il più noto è XML Schema.