Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoEmanuele Trevisan Modificato 11 anni fa
1
Document Type Definition per XML Presentazione 8.1 Informatica Generale (Prof. Luca A. Ludovico)
2
Un documento XML Data on the Web:... Morgan Kaufmann Serge Abiteboul Foundation of Databases Addison Wesley Serge Abiteboul...... Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
3
Tipi di Documento Idea base: associare un tipo al documento XML Un documento XML contiene informazione codificata secondo le regole sintattiche dellXML. –Vedi presentazione 7.1 Un tipo di documento rappresenta una classe di documenti con una struttura ed una semantica simile Esempi: articoli di giornale, ricette di cucina, note, partiture, … Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
4
Document Type Definition (DTD) Il/la Document Type Definition (definizione del tipo di documento) fornisce un significato standard per descrivere dichiarativamente la struttura di un tipo di documento. Lo scopo è definire le componenti ammesse nella costruzione di un documento XML. Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
5
Cosa fa un DTD Definisce: –gli elementi leciti all'interno del documento. Non si possono usare altri elementi se non quelli definiti; –la struttura di ogni elemento, ossia cosa può contenere ciascun elemento, l'ordine, la quantità di elementi che possono comparire e se sono opzionali o obbligatori; –una serie di attributi per ogni elemento e che valori possono o devono assumere questi attributi. Fornisce infine alcuni meccanismi per semplificare la gestione del documento, come la possibilità di dichiarare entity e la possibilità di importare parti di altri DTD. Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
6
DTD Un DTD è logicamente composto da due parti: 1. Element Type Definition 2. Attribute List Declaration Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
7
Element Type Definition (1/2) La Element Type Definition specifica: –Struttura del documento –Contenuti consentiti (content model) Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
8
Element Type Definition (2/2) Ciascun elemento deve essere dichiarato in un DTD con definizioni di tipo di elemento. Tali definizioni hanno la forma Esempio (guardare solo la sintassi) Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
9
Modello di contenuto Allinterno del modello di contenuto vengono elencati gli eventuali sottoelementi. –La virgola, implica una sequenza di sotto-elementi –Il pipe | implica una scelta tra sotto-elementi Cardinalità dei sotto-elementi (da specificare subito dopo il loro nome): –Non specificata 1 e 1 solo –? 0 o 1 –* da 0 a molti –+ da 1 a molti Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
10
Esempi di definizione di elementi Sintassi DTD: Elemento vuoto (empty content) In ogni file XML aderente a un DTD siffatto, troveremo: oppure Sintassi DTD: Elemento con testo semplice (simple content) In ogni file XML aderente a un DTD siffatto, troveremo: Il mio titolo Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
11
Esempi di definizione di elementi Sintassi DTD: Elementi con sottoelementi (element content) In un file XML aderente a un DTD così fatto, potremo trovare: … oppure … Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
12
Esempi di definizione di elementi Sintassi DTD: <!ELEMENT libro (titolo, autore*, anno_pubblicazione?)> Elementi con sottoelementi (element content) In un file XML aderente a un DTD così fatto, potremo trovare: Titolo del libro Primo autore Secondo autore Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
13
Esempi di definizione di elementi Sintassi DTD: Elemento con contenuto misto (mixed content) In un file XML aderente a un DTD così fatto, potremo trovare: Oggi appuntamento con Luca alle 15.30 Il 15/10/2010 appuntamento con il Dott. Antonio Rossi Cosa sarebbe successo omettendo nella sintassi del DTD lasterisco? Cosa sarebbe successo scegliendo una virgola al posto del pipe? Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
14
Attribute-List Declaration E la lista (opzionale) degli (eventuali) attributi permessi o richiesti per ogni elemento. Ogni attributo è specificato da: nome, tipo, e altre informazioni. Le dichiarazioni degli attributi hanno la forma: Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1 <!ATTLIST nome_elemento nome_attributo1 (tipo) valori_predefiniti … nome_attributoN (tipo) valori_predefiniti>
15
Tipi di attributo Si hanno tre gruppi di tipi di attributo: –string types ossia stringhe di tipo CDATA; –enumerated types per i quali viene indicata una serie di valori validi fra cui scegliere; –tokenized types indicati da token dichiarati quali ID, IDREF e IDREFS. Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1 <!ATTLIST nome_elemento nome_attributo1 (tipo) valori_predefiniti … nome_attributoN (tipo) valori_predefiniti>
16
Esempi con tipi tokenized Attributi di tipo ID: quando si vuole che il valore dellattributo sia univoco nel documento XML. Ad esempio: – … –Attributi di tipo IDREF: quando si vuole far riferimento a valori di attributi ID specificati nel documento XML. Ad esempio: – … ove matricola fa riferimento a un valore immesso nella scheda anagrafica Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
17
Valori predefiniti per gli attributi #REQUIRED Specifica che l'attributo è obbligatorio. #IMPLIED L'attributo è facoltativo. #FIXED Fornisce una dichiarazione di costante per il valore di un attributo. Se il valore nel documento è diverso da quello dichiarato nel DTD, il documento non è valido. Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1 <!ATTLIST nome_elemento nome_attributo1 (tipo) valori_predefiniti … nome_attributoN (tipo) valori_predefiniti>
18
Esempi Sia dato ad esempio: (definizione di elemento) <!ATTLIST Indirizzo nome_via CDATA #REQUIRED n_civico CDATA #IMPLIED> Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
19
Scheda di una raccolta di libri Data on the Web:... Morgan Kaufmann Serge Abiteboul Foundation of Databases Addison Wesley Serge Abiteboul... Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
20
DTD di una raccolta di libri <!DOCTYPE Books[ <!ATTLIST articleLink xmlns:xlink CDATA #FIXED http://w3c.org/xlink xlink:type CDATA #FIXED simple xlink:href CDATA #REQUIRED> ]> Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
21
Esercizio: dal DTD a un documento XML <!ATTLIST articolo titolo CDATA #REQUIRED> <!ATTLIST paragrafo titolo CDATA #IMPLIED tipo (abstract|bibliografia|note) #IMPLIED > <!ATTLIST immagine file CDATA #REQUIRED> Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
22
Una possibile soluzione Questo è il paragrafo 1. Questo è il paragrafo 2......e questo è altro testo. ABC-123_XYZ Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
23
Esercizio: dal documento XML al DTD J.K. Rowlings Harry Potter e la pietra filosofale Salani J.R. Tolkien Il signore degli Anelli Bompiani 24 … Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
24
Una possibile soluzione <!ATTLIST libri aggiornamento CDATA #IMPLIED> <!ATTLIST libreria nome CDATA #REQUIRED indirizzo CDATA #IMPLIED> <!ATTLIST libro codice ID #REQUIRED> <!ATTLIST editore anno CDATA #IMPLIED> <!ATTLIST prezzo valuta CDATA #REQUIRED> Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1 In blu le scelte sulla cardinalità forzate dal testo. Le altre scelte risultano logiche ma non sono necessarie per la validità dellXML contro questo DTD
25
Esercizio Si crei un documento XML ben formato contenente le informazioni su un rivenditore di auto usate. Il rivenditore dispone di più autovetture. Le auto devono essere raggruppate per casa automobilistica tramite unopportuna marcatura. Ogni auto, infine, è caratterizzata da una targa, un colore, un anno di immatricolazione e un chilometraggio attuale (esprimibile in km o in miglia). Il documento XML deve contenere almeno un attributo e almeno un elemento vuoto. Si dia esempio di tale documento ipotizzando un totale di 3 auto, di cui due della stessa casa automobilistica. Si scriva un DTD che generalizza il documento così creato. Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1
26
Soluzione: un documento XML Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1 AB123CV 1987 120000 DB478CH 2001 56000 AC111JK 2005 7000
27
Soluzione: un possibile DTD Informatica Generale (Prof. Luca A. Ludovico) Presentazione 8.1 <!ATTLIST casa nome CDATA #REQUIRED> <!ATTLIST colore tonalità CDATA #REQUIRED> <!ATTLIST chilometraggio unita_misura (km|miglia) #REQUIRED>
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.