Document Type Definition (DTD)



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

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

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

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

XML: La nascita del linguaggio

extensible Markup Language

Inquadramento XML. Il problema dell Information- Integration. Esempio

Laboratorio di Basi di Dati e Multimedia

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

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

XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS

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

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

Guida all uso di Java Diagrammi ER

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

INTEGRAZIONE DI DOCUSOFT CON UN ALTRO SOFTWARE GESTIONALE CON IL MODULO ACQUIRE&VIEW

LISTA TITOLI ACCESSI

Tecnologie Web T DTD Document Type Definition

XML: sintassi. Prof. Carlo Blundo Tecnologie di Sviluppo per il Web 1

Lezione 6: Form 27/04/2012

XML e standard connessi. XML, XML-Names, XSL, XPointer, XLink

Tecnologie Web T Introduzione a XML

Introduzione a XML. Language

Tecniche Multimediali

Dispensa YACC: generalità

Corso di Informatica (Basi di Dati)

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

Il Modello Relazionale

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

XML: extensible Markup Language

Esercitazione XML. Tecniche di Programmazione avanzata Corso di Laurea Specialistica in Ingegneria Telematica Università Kore Enna A.A.

PSDR - IMPORTAZIONE FLUSSI IN FORMATO XML

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Linguaggi per il web oltre HTML: XML

HTML+XML= XHTML. Che cos è l XHTML

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Nota illustrativa. Si riportano di seguito:

TRASMISSIONI TELEMATICHE DICHIARAZIONI ISEEU

Basi di dati 9 febbraio 2010 Compito A

a cura di Maria Finazzi

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

Corso sul linguaggio SQL

SPECIFICHE TECNICHE DEL PACCHETTO DI ARCHIVIAZIONE

XML e PHP. Gestire XML con PHP. Appendice

Capitolo 4 Pianificazione e Sviluppo di Web Part

Introduzione a LyX. Creazione di un documento Struttura e stile Modelli di documento Automatismi Riferimenti...

SPECIFICA TECNICA PER I SISTEMI DI ACQUISIZIONE SECONDARI (SAS)

Fondamenti di Programmazione

Introduzione al Foglio Elettronico

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

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

XML. XML è contemporaneamente: XML non è:

Definire linguaggi XML XSchema

Architetture Web I Server Web e gli Standard della Comunicazione

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

2 - Modifica Annulla Selezione finestra. S.C.S. - survey CAD system FIGURA 2.1

Definire gli attributi dei blocchi

2 - Modifica Annulla ANNULLA TOPOGRAFICO ANNULLA TOPOGRAFICO MULTIPLO FIGURA 2.1

XML (extensible Markup Language)

Uso di base delle funzioni in Microsoft Excel

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

Progettazione di un Database

Gestione delle tabelle

Excel avanzato. I nomi. Gli indirizzi e le formule possono essere sostituiti da nomi. Si creano tramite Inserisci Nome Definisci

5.2.1 RELAZIONI TRA TABELLE Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

XML Schema Definition (XSD)

Modulo 4: Ereditarietà, interfacce e clonazione

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

6. XML E RAPPRESENTAZIONE DEL FORMATO DI RISPOSTA

Modellazione dei dati in UML

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Transcript:

Laboratorio di Programmazione Distribuita Document Type Definition () Dott. Marco Bianchi Università degli Studi di L'Aquila bianchi@di.univaq.it http://di.univaq.it/~bianchi

Relazione tra classi e oggetti in OO Definizione Classe Slide... Ennesima istanza di classe Slide String titolo= Overview ;...... Seconda istanza di classe Slide String titolo= Overview ;... Prima istanza di classe Slide String titolo= Wake up to WonderWidgets! ;...

Ruolo del Document Type Definition... <address> <name> <address> <name> <title>mr.</title> <first-name>sam</first-name> <last-name>fisher</last-name> </name> <street>2002 Main Street</street> <city state="nc">anytown</city> <postal-code>34829</postal-code> </address> <title>mrs.</title> <first-name>mary</first-name> <last-name>mcgoon</last-name> </name> <street>1401 Main Street</street> <city state="nc">anytown</city> <postal-code>34829</postal-code> </address>

Un e un documento che definisce in modo formale, utizzando una grammatica Extended Backus-Naur Form (EBNF), le regole di una classe di documenti XML In un si possono dichiarare: Gli elementi utilizzabili, in che ordine e con quante occorrenze possono essere nidificati tra loro Quali attributi sono applicabili a ciascun elemento, se sono obbligatori e quali sono i loro valori predefiniti Le entità e le annotazioni utilizzabili all interno del documento XML o del stesso

Perchè usare un Gruppi indipendenti di persone possono accordarsi su un comune per definire un formato per i dati Un puo essere usato per verificare la validita dei dati Avvertenza: il non e obbligatorio!

Dichiarazione di un Interna al documento XML: <!DOCTYPE root-element [element-declarations]> Esterna al documento XML : <!DOCTYPE root-element SYSTEM URI >

Esempio interno <?xml version="1.0"?> <!DOCTYPE nota [ <!ELEMENT nota (a,da,testo)> <!ELEMENT a (#PCDATA)> <!ELEMENT da (#PCDATA)> <!ELEMENT testo (#PCDATA)> ]> <nota> <a>carlo</a> <da>paolo</da> <testo>ci vediamo alle 12</testo> </nota>

Esempio esterno <?xml version="1.0"?> <!DOCTYPE nota SYSTEM nota.dtd > <nota> <a>carlo</a> <da>paolo</da> <testo>ci vediamo alle 12</testo> </nota> <!ELEMENT nota (a,da,testo)> <!ELEMENT a (#PCDATA)> <!ELEMENT da (#PCDATA)> <!ELEMENT testo (#PCDATA)> nota.dtd

Dichiarazione di elemento Esistono quattro categorie di contenuti degli elementi: ELEMENT EMPTY ANY MIXED Sintassi: <!ELEMENT element-name (element-content)> oppure <!ELEMENT element-name category>

Elementi contenenti solo character data Vengono dichiarati con la categoria (#PCDATA) <!ELEMENT element-name (#PCDATA)> Esempio : <!ELEMENT da (#PCDATA)> Esempio XML: <da>paolo</da>

Elementi con figli (in sequenza) Gli elementi con uno o piu figli sono dichiarati con il nome dei figli tra parentesi, separati da virgole che determinano il loro ordine nel documento <!ELEMENT element-name (child-element-name)> oppure <!ELEMENT element-name (child-elementname, child-element-name,...)> Esempio : <!ELEMENT nota (a,da,testo)>

Quante occorrenze dello stesso elemento? Esattamente una occorrenza: <!ELEMENT element-name (child-name)> Esempio : <!ELEMENT nota (messaggio)> Esempio XML: <nota> <messaggio>... </messaggio> </nota>

Quante occorrenze dello stesso elemento? Almeno una occorrenza: <!ELEMENT element-name (child-name+)> Esempio : <!ELEMENT nota (messaggio+)> Esempio XML errato: <nota></nota>

Quante occorrenze dello stesso elemento? Zero o piu occorrenze: <!ELEMENT element-name (child-name*)> Esempio : <!ELEMENT nota (messaggio*)> Esempio XML: <nota> <messaggio>... </messaggio> <messaggio>... </messaggio> </nota>

Quante occorrenze dello stesso elemento? Zero o una occorrenza: <!ELEMENT element-name (child-name?)> Esempio : <!ELEMENT nota (messaggio?)> Esempio XML errato: <nota> <messaggio>... </messaggio> <messaggio>... </messaggio> </nota>

Scelta fra contenuti Una occorrenza oppure un'altra: <!ELEMENT element-name (child1 child2)> Esempio : <!ELEMENT nota (a,da,(msg txt))> Esempi XML: <nota> <a>... </a> <da>... </da> <msg>... </msg> </nota> <nota> <a>... </a> <da>... </da> <txt>... </txt> </nota>

Esempi di dichiarazioni di elemento <!ELEMENT film((titolo anno)+)> <!ELEMENT film((titolo*, anno?, genere)* genere)> <!ELEMENT artist((firstname*, lastname) group)>

EMPTY Gli elementi vuoti vengono dichiarati con la parola chiave EMPTY <!ELEMENT element-name EMPTY> Esempio : <!ELEMENT br EMPTY> Esempio XML: <br/>

ANY Gli elementi generici vengono dichiarati con parola chiave ANY <!ELEMENT element-name ANY> Esempio : <!ELEMENT documento ANY> <!ELEMENT lettera (...)> <!ELEMENT libro (...)> <!ELEMENT appunti (...)> <!ELEMENT nota (...)>

Contenuto misto Testo oppure elementi non in sequenza: <!ELEMENT element-name (#PCDATA child1...)*> Esempio : <!ELEMENT nota (#PCDATA da a messaggio)*> Esempio XML <nota> <messaggio>... </messaggio> Un po' di testo <da>... </da> Ancora testo </nota>

Limitazioni <!ELEMENT item (#PCDATA (#PCDATA, item+)> Parser Error: Illegal mixed content model for 'item' <!ELEMENT item (#PCDATA)> <!ELEMENT item (#PCDATA, item+)> Parser Warning: Duplicate definition for 'item'

Dichiarazione di attributi Sintassi per la dichiarazione di attributo: <!ATTLIST element-name attribute-name attribute-type default-value> Esempio : <!ATTLIST pagamento type CDATA assegno"> Esempio XML: <pagamento type= assegno" />

Dichiarazione di attributi: note Tutte le dichiarazioni attlist per lo stesso elemento vengono fuse dal parser XML. In caso di conflitti su attributi ridefiniti, la prima definizione ha la precedenza. Si possono dichiarare un numero arbitrario di attributi in ogni ATTLIST.

Valori possibili di attribute-type Sintassi per la dichiarazione di attributo: <!ATTLIST element-name attribute-name attribute-type default-value> Possibili valori di attribute-type: CDATA character data (n1 n2 ) uno fra gli n1, n2, ID un identificatore unico IDREF riferimento ad un ID

Valori possibili di default-values Sintassi per la dichiarazione di attributo: <!ATTLIST element-name attribute-name attribute-type default-value> value valore di default se non esplicitamente specificato #REQUIRED valore obbligatorio #IMPLIED valore facoltativo #FIXED value valore di default unico ammissibile

Dichiarazioni interne di entita carattere Sintassi: <!ENTITY entity-name "entity-value"> Esempio : <!ENTITY autore "Paperino"> <!ENTITY copyright "Copyright Disney."> Esempio XML: <autore>&autore;&copyright;</autore>

Dichiarazioni esterne di entita carattere Sintassi: <!ENTITY entity-name SYSTEM URI > Esempio : <!ENTITY autore SYSTEM "http://www.w3c.org/entities.xml"> <!ENTITY copyright SYSTEM "http://www.w3c.org/entities.dtd"> Esempio XML: <autore>&autore;&copyright;</autore>

Entità parametriche Sintassi <!ENTITY % name content> Simili alle entità generali, possono essere usate solo all interno del, rendendolo parametrico. Per utilizzare un'entità parametrica: %name; Sono validi tutti i contenuti visti per le entità generali parsed (interne ed esterne).

Definire un namespace nel Nel : <!ELEMENT title ()> <!ATTLIST title xmlns CDATA #FIXED http://www.example.com/slideshow > Nel documento: <title xmlns= http://www.example.com/slideshow > Overview </title>

Validazione automatica Esistono programmi per la validazione automatica di documenti XML testano sia la ben formatezza che la validita Esempio: Sun Multi-Schema XML Validator

Progettare una struttura dati XML

Consigli per una buona progettazione Quando possibile, usare un già esistente: Si risparmia tempo Favorisce l'interscambio di dati Scegliere opportunamente attributi o elementi: <slide title= This is the title >...</slide> oppure <slide><title>this is the title</title>...</slide>

Attributi o Elementi: scelte forzate Elementi più convenienti quando: I dati contengono sottostrutture I dati contengono linee multiple Sono possibili occorrenze multiple I dati cambiano frequentemente Attributi più convenienti quando: Semplici stringhe che cambiano raramente Quando i possibili valori sono limitati

Attributi o Elementi: scelte stilistiche Le scelte stilistiche possono riguardare: Visibilità Dati visibili all'utente finale modellati come elementi Consumer/Provider Dati inseriti da utente modellati come elementi Container vs. Contents Caratteristiche del contenuto modellati come attributi

Esercizi & Laboratorio XML

Case Study: per agenda giornaliera <planner> <year value="2000"> <date month="7" day="15"> <note time="1430">doctor's appointment</note> <note time="1620">physics class at BH291C</note> </date> <date month="7" day="4"> <note>independence Day</note> </date> <date month="7" day="20"> <note time="1900">party at Joe's</note> </date> <date month="7" day="20"> <note time="1300">meeting in room 14-C</note> </date> </year> </planner>

Definizione degli elementi <planner> <year> <date> <note>doctor's appointment</note> <note>physics class at BH291C</note> </date> <date> <note>independence Day</note> </date>... </year> </planner> <!-- for day planner --> <!ELEMENT planner ( year* )> <!ELEMENT year ( date+ )> <!ELEMENT date ( note+ )> <!ELEMENT note ( #PCDATA )>

Aggiungere gli attributi <planner> <year value="2000"> <date month="7" day="15"> <note time="1430">doctor's appointment</note> <note time="1620">physics class at BH291C</note> </date> <date month="7" day="4"> <note>independence Day</note> </date>... </year> </planner> <!-- for day planner -->... <!ATTLIST year value CDATA #REQUIRED> <!ATTLIST date month CDATA #REQUIRED> <!ATTLIST date day CDATA #REQUIRED> <!ATTLIST note time CDATA #IMPLIED>

Il completo <!-- for day planner --> <!ELEMENT planner ( year* )> <!ELEMENT year ( date+ )> <!ATTLIST year value CDATA #REQUIRED> <!ELEMENT date ( note+ )> <!ATTLIST date month CDATA #REQUIRED> <!ATTLIST date day CDATA #REQUIRED> <!ELEMENT note ( #PCDATA )> <!ATTLIST note time CDATA #IMPLIED>

Documento valido <!DOCTYPE planner SYSTEM planner.dtd > <planner> <year value="2000"> <date month="7" day="15"> <note time="1430">doctor's appointment</note> <note time="1620">physics class at BH291C</note> </date> <date month="7" day="4"> <note>independence Day</note> </date> <date month="7" day="20"> <note time="1900">party at Joe's</note> </date>... </year> </planner>

Esercizio: Drugs Scrivere una per il seguente documento; poi, cambiate la sequenza di due elementi nel documento sorgente. Convalidate il documento e apportate le modifiche necessarie al affinchè risulti valido. <?xml version="1.0"?> <!DOCTYPE planner SYSTEM drugs01.dtd > <drugs> <drug> <name>aspirin</name> <content>0.4 g. acetisalicil acid, 0.24g. ascorbine acid</content> <therapy>analgetic </therapy> <available>yes</available> <analogon>andol</analogon> <contraindication>ulcer</contraindication> </drug> </drugs>

Risorse on-line www.oasis-open.org Per cercare standard industriali www.dtd.com Un repository di per documenti XML www.xml101.com/dtd Contiene tutorial e spiegazioni per creare www.w3schools.com/dtd Contiene tutorial ed esempi sulle www.schema.net Un repository di con link e risorse correlate ad XML

Domande?