DTD Document Type Definition per XML

Slides:



Advertisements
Presentazioni simili
I Namespace Mario Arrigoni Neri.
Advertisements

WWW XML-Namespace Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u Lesigenza e il funzionamento dei Namespace in XML.
DTD Document Type Definition per XML
Introduzione al DTD Mario Arrigoni Neri.
A. FERRARI Alberto Ferrari. L'HyperText Markup Language (HTML) (traduzione letterale: linguaggio di marcatura per ipertesti) è un linguaggio usato per.
1 Introduzione ad XML. 2 Problemi con SGML Complesso da comprendere ed utilizzare Non è pensato per la rete: mancano link ipertestuali e specifiche grafiche.
Document Type Definition per XML Presentazione 8.1 Informatica Generale (Prof. Luca A. Ludovico)
DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation.
DTD & XML Schema Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è
XML Prof. Barbara Pernici Politecnico di Milano. Introduzione a XML.
XML Prof. Barbara Pernici Politecnico di Milano aggiornato 10/12/2002.
XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE.
Lezione 5 Attributi, Entità, Parametri e Namespaces.
DTD, Entità, Parametri, Namespace
XML per documenti e applicazioni transazionali su Internet Alessio Saltarin Progetto XML Factory.
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML Elaborazione di Franco Grivet Chin.
Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)
Importanza DTD La DTD (Document Type Definition) consente di dichiarare in maniera univoca la struttura di markup mediante la definizione dello schema.
1 Documenti XML validi La Document Type Definition Dichiarazione di elementi.
DTD Schema W3C. Dichiarazione di elementi Dichiarazioni globali Dichiarazioni globali Dichiarazioni locali (figli di altri elementi)
Introduzione a XML applicazioni in open archives Azalea III Incontro di Formazione, Roma 2-3 febbraio 2004.
Informatica Umanistica A.A. 2007/2008 LEZIONE 4 eXtensible Markup Language (XML) INTRODUZIONE.
Roma, 16 giugno 2005 AZALEA Un sistema di conoscenza in oncologia a disposizione di pazienti e cittadini Gli aspetti informatici.
Programmazione Web eXtensible Markup Language (XML) 2014/2015Programmazione Web - XML1.
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Introduzione alle Griglie computazionali - aa Introduzione alle griglie computazionali Introduzione alle griglie computazionali Università degli.
Capitolo 3 … XML: eXtensible Markup Language  Introduzione  Logical Structures  Document Type Definition  Namespace  XML - Schema …
WWW La sintassi di SGML  XML Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo in breve tutti gli aspetti di SGML che sono in comune con XML:
Documenti XML ben formati Entità– Sezioni condizionali.
WWW Introduzione ad XML Da slide di Fabio Vitali.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
CSS ( Cascading Style Sheets) Fogli di Stile Linguaggi di formattazione stilistica e strutturale di un documento HTML o di una serie di documenti in cascata.
+ Common actions Nicolò Sordoni. + Azioni comuni Esistono una serie di azioni di uso comune, che vengono messe a disposizione dalla piattaforma tramite.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Basi di dati - Fondamenti
IDUL 2010 XML 1.
Il modello logico Il modello logico.
Sistemi e Applicazioni per l’Amministrazione Digitale
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Rileaborato da M. Lenzerini - Basi di dati
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
CRITTOGRAFIA Per crittografia si intende la protezione delle informazioni mediante l'utilizzo di codici e cifre. La crittografia è un componente fondamentale.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
I FILES AD ACCESSO SEQUENZIALE
FAQ.
Studente : Andrea Cassarà Classe: 5AII A.S. 2014/2015 Link Sito
Creazione di pagine per Internet
Progettazione logica: Il modello relazionale
A cura di Ivano Stranieri
XML Schema.
Java World Cicli e Array.
Basi di dati - Fondamenti
I FILE di dati in C#.
SQL per la modifica di basi di dati
Introduzione a PowerPoint
8. Altri oggetti JavaScript
Progettazione di una base di dati
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Esercitazione guidata 1
Selezione e Proiezione
La programmazione strutturata
Da HTML a XHTML A. Ferrari Alberto Ferrari.
Transcript della presentazione:

DTD Document Type Definition per XML

Cosa è una DTD Una DTD è un documento Una DTD serve a definire i blocchi legali di un documento XML Definisce la struttura di un documento XML Un documento XML è well-formed se è conforme alla sintassi XML Un documento XML è valido se è anche conforme ad una DTD.

Perché usare una DTD Ogni documento XML può portare con sé, o riferirsi a, una descrizione del proprio formato corretto. Gruppi di persone possono accordarsi su un formato comune per lo scambio di dati Una applicazione può verificare automaticamente la validità dei dati scambiati sulla base della DTD.

Usare una DTD Una DTD può essere dichiarata in linea: Esempio: <!DOCTYPE root-element [element-declarations]> Esempio: <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>MyLove</to> <from>Gege</from> <heading>Reminder</heading> <body> Non ti scordar di me</body> </note>

Usare una DTD Può essere definita mediante un riferimento esterno: <!DOCTYPE root-element SYSTEM "filename"> Esempio: File XML: <?xml version="1.0"?> <!DOCTYPE note SYSTEM "note.dtd"> <note> <to>MyLove</to> <from>Gege</from> <heading>Reminder</heading> <body> Non ti scordar di me </body> </note> DTD file: <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>

I blocchi di una DTD Elements  body, messaggio – I blocchi che costituiscono un documento XML Tags  <element_name> </element_name> - Annotano (mark up) gli elementi Attributes  <element_name id=“1”> - Forniscono valori per gli elementi, qualificandoli Entities  < (<), > (>) , " (“) – definiscono testo comunemente usato PCDATA  Parsed Character Data – testo che verrà analizzato da un parser CDATA  Character Data – testo che non verrà analizzato da un parser

La dichiarazione di un elemento XML in una DTD <!ELEMENT element-name category> oppure <!ELEMENT element-name (element-content)> Esempi: <!ELEMENT br EMPTY>  <br /> <!ELEMENT element-name (#PCDATA)>  <!ELEMENT from (#PCDATA)> <!ELEMENT element-name ANY>  <!ELEMENT note ANY> <!ELEMENT element-name (child-element-name)> oppure <!ELEMENT element-name (child-element-name,child-element-name,.....)> <!ELEMENT note (to,from,heading,body)>

<. ELEMENT note (to,from,heading,body)> < <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> Quando i figli vengono dichiarati in sequenza separata da virgole devono apparire nel medesimo ordine. I figli devono pure essere dichiarati e possono avere altri figli

Cardinalità degli elementi <!ELEMENT element-name (child-name)>  Cardinalità 1 <!ELEMENT element-name (child-name+)>  Cardinalità almeno 1 <!ELEMENT element-name (child-name*)>  Cardinalità 0 o più <!ELEMENT element-name (child-name?)>  Cardinalità 0 o 1 Dichiarazioni e/o  <!ELEMENT note (to,from,header,(message|body))> <!ELEMENT note (#PCDATA|to|from|header|message)*>

Attributi <!ATTLIST element-name attribute-name attribute-type default-value> Esempio DTD: <!ATTLIST payment type CDATA "check"> Esempio XML: <payment type="check" />

Attributi attribute-type CDATA character data (en1|en2|..) lista enumerata ID id univoco IDREF id di un altro elemento IDREFS Lista di altri id NMTOKEN nome XML valido NMTOKENS Lista di nomi XML validi ENTITY Entità ENTITIES Lista di entità NOTATION Nome di una notation xml: Valore XML predefinito

Value default value #REQUIRED il valore deve essere presente #IMPLIED il valore non deve essere presente #FIXED value valore costante Default: <!ELEMENT square EMPTY> <!ATTLIST square width CDATA "0">  <square width="100" /> Implied: <!ATTLIST contact fax CDATA #IMPLIED>  <contact fax="555-667788" /> Required: <!ATTLIST person number CDATA #REQUIRED>  <person number="5677" /> Fixed: <!ATTLIST sender company CDATA #FIXED "Microsoft">  <sender company="Microsoft" />

Entità Oltre a quelle standard possono essere definite in una DTD, sia internamente che come riferimento esterno Interno:<!ENTITY entity-name "entity-value"> <!ENTITY writer "Donald Duck."> <author>&writer;</author> Esterno: <!ENTITY entity-name SYSTEM "URI/URL"> <!ENTITY writer SYSTEM "http://www-ictserv.poliba.it/entita/entita.xml">

<h:html xmlns:ama="http://www.amazon.it/books” xmlns:h="http://www.w3.org/HTML/1998/html4"> <h:head><h:title>Book Review</h:title></h:head> <h:body> <ama:bookreview style=“rilegato” h:style=“{font-size=18;}”> <ama:title>3 Uomini in barca</ama:title> <h:table> <h:tr><h:td>Author</h:td> <h:td>Price</h:td> <h:td>Pages</h:td> <h:td>Date</h:td> </h:tr> <h:tr> <h:td><ama:author>Jerome K. Jerome</ama:author></h:td> <h:td><ama:price>25.000</ama:price></h:td> <h:td><ama:pages>352</ama:pages></h:td> <h:td><ama:publisher>Mondadori</ama:publisher></h:td> </h:tr> </h:table> </ama:bookreview> </h:body> </h:html>

I namespace sono stati introdotti dopo i DTD, e quindi esprimere namespace nei DTD non è facile. L'unico modo è di esprimere come nomi validi i nomi qualificati, bloccando il prefisso. <!DOCTYPE a:item [ <!ELEMENT a:item (a:title, a:publisher)> <!ATTLIST a:item xmlns:a CDATA #FIXED "http://www.betterbooks.org"> <!ELEMENT a:title (#PCDATA) > <!ELEMENT a:publisher (#PCDATA) > ]> <a:item xmlns:a="http://www.betterbooks.org"> <a:title>The Importance of Namespaces</a:title> <a:publisher>BestPublishersInTheWorld</a:publisher> </a:item> Da notare che la dichiarazione di namespace va sia nel DTD (viene considerata un attributo), sia nel documento (come dichiarazione vera e propria)