DTD e XML Schema UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico
Laboratorio Informatico in Database Turistici Barbara Re2 Agenda DTD XML Schema
Laboratorio Informatico in Database Turistici Barbara Re3 Per esercitarsi Microsoft XML validator Da scaricare dallarea down_load e caricare sul proprio computer
Laboratorio Informatico in Database Turistici Barbara Re4 XML ben formati ed XML validi I due diversi livelli di controllo del documento generano due livelli di correttezza XML ben formato XML valido Es: Titolo è ben formato ma non è tipicamente valido La buona formazione può essere valutata conoscendo solo XML La validazione dipende dalla specifica applicazione XML e cioè dallo specifico linguaggio
Laboratorio Informatico in Database Turistici Barbara Re5 La forma di un documento XML Ogni documento XML inizia con un prologo che contiene una XML declaration eventualmente una Doctype Declaration (la dichiarazione della DTD a cui il documento si riferisce) eventualmente una serie di processing instruction Le processing instruction sono utilizzate raramente, servono più che altro per laggiunta di fogli di stile
Laboratorio Informatico in Database Turistici Barbara Re6 La Document Type Definition Una DTD è costituita da un elenco di dichiarazioni (markup declaration) che descrivono la struttura del documento Le dichiarazioni di una DTD definiscono gli elementi strutturali (element) di un documento mediante un identificatore generico il modello di contenuto di ogni elemento (content model) ovvero gli elementi che contiene ed i loro rapporti (un elemento può essere vuoto) la lista degli attributi associati a ciascun elemento e il loro tipo
Laboratorio Informatico in Database Turistici Barbara Re7 La dichiarazione di tipo Il è la dichiarazione del tipo di documento. Essa permette alle applicazioni XML di determinare le regole sintattiche da applicare alla verifica e validazione del documento La dichiarazione non è, ma contiene o fa riferimento alla Document Type Definition, dove vengono elencati gli elementi validi e i loro vincoli Il DTD può essere posto in un file esterno, internamente al documento, o in parte esternamente ed in parte internamente
Laboratorio Informatico in Database Turistici Barbara Re8 Dichiarazione del DTD: 1. La prima forma di dichiarazione indica che il DTD è contenuto in un file esterno (external subset). 2. La seconda forma precisa il DTD internamente (internal subset). 3. La terza forma precisa una parte del DTD come contenuta in un file esterno ed una parte come propria del documento.
Laboratorio Informatico in Database Turistici Barbara Re9 Tipi di elementi Il DTD definisce i tipi di elementi che possono occorrere nel file xml Per ogni tipo di elemento viene indicato il tipo di contenuto, che può essere: Any content: indica che ogni contenuto è ammissibile. Es: Empty content: un elemento vuoto non può contenere alcun testo tra il tag di inizio e quello di chiusura e può quindi essere rappresentato da un tag vuoto. Es: Simple content: è un elemento il cui contenuto è composto da testo. In questo caso #PCDATA è acronimo di Parsed Character Data. Es: Element content: è il caso tipico in cui il contenuto è composto da sottoelementi. Es: Mixed content: sono elementi che contendono testo misto ad altri elementi
Laboratorio Informatico in Database Turistici Barbara Re10 Element content - sequenza Un elemento composto da una sequenza deve contenere una lista dei sottoelementi elencati, con un elemento per ogni tipo I singoli sottoelementi sono divisi da virgole DTDXML valido
Laboratorio Informatico in Database Turistici Barbara Re11 Element content - alternativa Indica che il contenuto deve essere uno tra quelli elencati I singoli sottoelementi sono divisi da barre verticali (lor del C) DTDXML valido
Laboratorio Informatico in Database Turistici Barbara Re12 Element content - ripetizione E possibile definire in vari modi le cardinalità dei sottoelementi: Nessuna specifica: largomento deve comparire esattamente una volta è permesso solo ?: opzione. Specifica che il sottoelemento è facoltativo sono leciti sia che +: ripetizione. Il sottoelemento deve figurare una o più volte,, ecc... *: ripetizione. Il sottoelemento può figurare un numero qualsiasi di volte, o anche non figurare affatto,,, ecc...
Laboratorio Informatico in Database Turistici Barbara Re13 Element content complessi I costrutti possono combinarsi dando origine ad espressioni regolari ogni sezione ha un titolo, può avere un abstract opzionale, seguito da almeno un paragrafo Dentro allelemento sezione ci deve essere un titolo, seguito da almeno un abstract o un para, che poi possono ripetersi in qualunque ordine e numero Ogni elemento sezione è composto da un titolo, da una sequenza opzionale di abstract e da una sequenza si para composta da almeno un para Ogni sezione è data da un titolo, da uno tra sottotitolo ed abstract, che possono però anche mancarem e da una serie di para Come sopra, ma sottotitolo ed abstract possono coesistere
Laboratorio Informatico in Database Turistici Barbara Re14 Contenuto misto In XML il contenuto di testo #PCDATA ed il contenuto di elementi possono combinarsi solo nella forma seguente: Ogni paragrafo contiene un testo in cui si possono trovare, opzionalmente, degli elementi ed. Es: Questo testo contiene delle sezioni in grassetto ed in corsivo, ma potrebbe anche non averne
Laboratorio Informatico in Database Turistici Barbara Re15 Esercizio 1 Definire il documento xml relativo a questo schema ]>
Laboratorio Informatico in Database Turistici Barbara Re16 Soluzione Esercizio 1 Megatrends 2000 J. Naisbitt 1991 Avon Book ]>
Laboratorio Informatico in Database Turistici Barbara Re17 Esercizio 2 Definire lo schema relativo a questo documento xml Aleksandar Nevski S. Eisenstein N. Cherkasov
Laboratorio Informatico in Database Turistici Barbara Re18 Soluzione Esercizio 2 ]> Aleksandar Nevski S. Eisenstein N. Cherkasov
Laboratorio Informatico in Database Turistici Barbara Re19 Attributi Il DTD permette anche di vincolare gli attributi dei singoli tag, cioè dei singoli elementi. In generale gli attributi vengono specificati con ATTLIST: I tipi definiscono linsieme o la tipologia dei valori assumibili dallattributo I modificatori identificano le condizioni di obbligatorietà o opzionalità dellattributo ed, eventualmente, un valore di default per lo stesso
Laboratorio Informatico in Database Turistici Barbara Re20 Attributi stringa In questo caso lattributo lang è una stringa Se lattributo è presente nel file il suo valore è quello specificato Altrimenti viene assunto il valore di default Italiano … Remember the meeting … Ricordati lappuntamento
Laboratorio Informatico in Database Turistici Barbara Re21 Attributi per enumerazione Il titolo di ogni persona assume valori nellinsieme indicato In mancanza del parametro si assume per default Mr Luke Brown
Laboratorio Informatico in Database Turistici Barbara Re22 Tipi di attributi predefiniti DTD definisce alcuni tipi speciali, che aiutano il progettista soprattutto per quanto riguarda le relazioni tra elementi ID: identificativo univoco allinterno del file IDREF: riferimento ad un identificativo univoco definito nel file IDREFS: come IDREF, ma può esserci una lista di riferimenti NMTOKEN o NMTOKENS: stringa (o lista di stringhe) di caratteri senza spazi o caratteri di interpunzione ENTITY o ENTITIES: il valore deve essere unentità
Laboratorio Informatico in Database Turistici Barbara Re23 Modificatori Valore di default: espresso da una stringa indica il valore da assegnare allattributo in mancanza di diverse indicazioni Valore fisso: definito da #FIXED più il valore. Lattributo assume obbligatoriamente il valore assegnato e lautore del documento XML non può modificarlo: Specifica di obbligatorietà: #REQUIRED. Indica che lattributo deve essere sempre presente in ogni elemento Specifica di opzionalità: #IMPLIED. Indica che lattributo è opzionale e può non essere specificato dallautore del documento. Se combinato con ID indica che il sistema genererà un identificativo automaticamente
Laboratorio Informatico in Database Turistici Barbara Re24 Entità Le entità del DTD sono frammenti ricorrenti di contenuti testuali a cui vengono associati degli identificatori che possono essere espansi come macro allinterno del documento prima di procedere al parsing vero e proprio La definizione avviene secondo lo schema: Lutilizzo avviene inserendo nel testo la sequenza: &nomeEntità; Esempio: Introduzione ad XML &autore;
Laboratorio Informatico in Database Turistici Barbara Re25 Entità esterne Le entità esterne vengono recuperate da un file esterno allXML Es: E possibile specificare entità da non parsare, tipicamente come entità di dati binari.. &text;
Laboratorio Informatico in Database Turistici Barbara Re26 Entità predefinite Sono predefinire tutte le entità associabili ai singoli caratteri sulla base del codice (unicode) degli stessi. Ad esempio lentità corrisponde al carattere ASCII 10. Alcuni caratteri, tra cui < ed &, creano problemi quando vengono mischiati al testo. Per questo sono predefinire alcune entità che possono sostituire questi caratteri: Equivalente a : << >> && ' "
Laboratorio Informatico in Database Turistici Barbara Re27 Entità parametriche Sono entità definite nel DTD ed utilizzate allinterno del DTD stesso Vengono sostituite durante la lettura del DTD Contengono frammenti ricorrenti del modello di contenuto Es: volendo definire in un unico punto il tipo di testo che contiene sezioni in grassetto:
Laboratorio Informatico in Database Turistici Barbara Re28 Cosa cè di sbagliato nelle DTD Troppo document oriented DTD è stato sviluppato per interfacciarsi con tool per il trattamento del testo Limitato nella rappresentazione di strutture complesse Non cè la nozione di ereditarietà/sub-typing Content-model ambiguo Troppi modi per rappresentare la stessa cosa I nomi sono globali, non locali
Laboratorio Informatico in Database Turistici Barbara Re29 Utilizzo delle DTD Validazione Storage XML efficiente (persistenza, estensione, o database storage) Documentazione Parsing efficiente Design di tool di supporto
Laboratorio Informatico in Database Turistici Barbara Re30 Esercizio 3 Dato lXML in figura creare una corrispondente DTD ed effettuare la validazione
Laboratorio Informatico in Database Turistici Barbara Re31 Esercizio 3 Dato il seguente schema dare il documento xml ed effettuare la validazione
Laboratorio Informatico in Database Turistici Barbara Re32 Ci sono domande?
Laboratorio Informatico in Database Turistici Barbara Re33 XML Schema
Laboratorio Informatico in Database Turistici Barbara Re34 XML Schema Schema è un termine generale, dal vocabolario inglese: a structured framework or plan Quando si parla di XML Schema si intende usualmente il W3C XML Schema Language … e il suo acronimo XSD DTD, XML Schema, e RELAX NG sono tutti linguaggi di schema XML
Laboratorio Informatico in Database Turistici Barbara Re35 Perchè XML Schema? DTD fornisce specifiche deboli Nessuna restrizione sul contenuto del testo Poco controllo sui contenuti misti (mixed content, text + elements) Poco controllo sullordinamento degli elementi DTD è scritto in un formato non-XML Parser separati per DTD e XML XML Schema Definition Language risolve questi problemi Più controllo su strutture e contenuti XSD è scritto in XML
Laboratorio Informatico in Database Turistici Barbara Re36 DTD e XML Schema a confronto 5 indica che lelemento quantity contiene dati di caratteri Questo elemento può essere validato per confermare che ha effettivamente un contenuto (PCDATA) ciao è conforme Se lapplicazione che elabora il documento XML ha bisogno di verificare se il contenuto dellelemento quantity è numerico non ci sono soluzioni con la DTD
Laboratorio Informatico in Database Turistici Barbara Re37 Riferirsi ad uno schema Per la DTD il riferimento va prima del root element:... Per lXML Schema il riferimento va nel root element: (dove trovare lo Schema definition voluto)...
Laboratorio Informatico in Database Turistici Barbara Re38 Il documento XSD: lo schema Lestensione è.xsd Lelemento root è Il documento XSD parte con: Attenzione: documento XSD stesso è scritto in XML
Laboratorio Informatico in Database Turistici Barbara Re39 Lelemento può avere attributi xmlns:xs=" Specifica dove i tag dello schema sono specificati elementFormDefault="qualified" Tutti gli elementi devono essere qualificati da un namespace È altamente desiderabile qualificare ogni tag
Laboratorio Informatico in Database Turistici Barbara Re40 Elementi semplici e complessi Un elemento semplice contiene solo testo Non ha attributi Non contiene altri elementi Non può essere vuoto Ci possono essere varie restrizioni applicate al contenuto Un elemento complesso Può avere attributi Può essere vuoto, contenere testo, altri elementi, o sia testo che altri elementi.
Laboratorio Informatico in Database Turistici Barbara Re41 Definire un elemento semplice Un elemento semplice è definito come dove: name è il nome dellelemento Valori comuni per type sono xs:booleanxs:integer xs:datexs:string xs:decimalxs:time Altri attributi di element sono default="default value se non ci sono altri valori specificati fixed="value" nessun altro valore specificato
Laboratorio Informatico in Database Turistici Barbara Re42 Definire un attributo Gli attributi sono dichiarati sempre come tipi semplici Definito come dove: name e type sono gli stessi che per xs:element Altri attributi che gli elementi semplici possono avere: default=" default value " se nessun valore è specificato fixed=" value nessun altro valore può essere specificato use="optional" non richiesto (default) use="required" richiesto
Laboratorio Informatico in Database Turistici Barbara Re43 Restrizioni, o facets La forma generale delle restrizioni è: (o xs:attribute )... the restrictions... Ad esempio:
Laboratorio Informatico in Database Turistici Barbara Re44 Restrizioni su numeri minInclusive -- numero deve essere di value minExclusive -- numero deve essere > di value maxInclusive -- numero deve essere di value maxExclusive -- numero deve essere < di value totalDigits -- numero deve avere value cifre fractionDigits -- numero deve avere non più di value cifre dopo il punto decimale
Laboratorio Informatico in Database Turistici Barbara Re45 Restrizioni su stringhe length -- la stringa deve contenere value caratteri minLength -- la stringa deve contenere almeno value caratteri maxLength -- la stringa deve contenere non più di value caratteri pattern -- value è una espressione regolare da soddisfare whiteSpace -- dice come trattare gli spazi bianchi value="preserve" li mantiene value="replace" rinpiazza con spazi value="collapse" rimuove gli spazi iniziali, finali e rimpiazza le sequenze con uno spazio singolo
Laboratorio Informatico in Database Turistici Barbara Re46 Enumerazioni Restringe il range di possibili valori ad una loro enumerazione Esempio:
Laboratorio Informatico in Database Turistici Barbara Re47 Elementi Complessi Un elemento complesso è definito da:... information about the complex type... Esempio:
Laboratorio Informatico in Database Turistici Barbara Re48 Definizioni locali e globali Elementi di chiarati al top level dello sono disponibili per luso in tutto lo schema Elementi dichiarati in un xs:complexType sono locali Così, in Gli elementi firstName e lastName sono dichiarati solo localmente Lordine delle dichiarazioni nel top level dello non specifica lordine di apparizione nel documento che usa tale schema
Laboratorio Informatico in Database Turistici Barbara Re49 Dichiarazione ed uso Per sfruttare un tipo lo si usa in type="..." Esempi: Lo scope (visibilità) è importante: non si può usare un tipo al di fuori del suo scope
Laboratorio Informatico in Database Turistici Barbara Re50 xs:sequence Consente di specificare lordine di apparizione degli elementi
Laboratorio Informatico in Database Turistici Barbara Re51 xs:all xs:all consente lapparizione in qualsiasi ordine A dispetto del nome i membri del gruppo xs:all possono occorrere una sola volta o per niente Si può usare minOccurs="0" per specificare che un elemento è opzionale (il valore di default è 1) In questo contesto, maxOccurs è sempre 1
Laboratorio Informatico in Database Turistici Barbara Re52 Definisce un insieme di elementi tra cui effettuare una scelta
Laboratorio Informatico in Database Turistici Barbara Re53 Riferimenti Dopo avere definito elementi con name="...", si può far loro riferimento con ref="..." Esempi: Oppure
Laboratorio Informatico in Database Turistici Barbara Re54 Elementi misti Elementi misti possono contenere sia testo che altri elementi Attributo mixed = "true sullelemento xs:complexType Il testo stesso non è menzionato nellelemento e può essere messo dove si vuole
Laboratorio Informatico in Database Turistici Barbara Re55 Estensioni Un tipo complesso può essere la base di un nuovo tipo...new stuff...
Laboratorio Informatico in Database Turistici Barbara Re56 Tipi di stringa predefiniti Abbiamo detto che un tipo semplice è definito da: Alcuni possibili tipi: xs:string -- una stringa xs:normalizedString -- una stringa che non contiene tabs, newlines, or carriage returns xs:token -- una stringa che non contiene whitespace oltre che gli spazi singoli Restrizioni sulle stringhe: enumeration, length, maxLength, minLength, pattern, whiteSpace
Laboratorio Informatico in Database Turistici Barbara Re57 Date e tempo xs:date -- Una data nel formato CCYY-MM-DD, for example, xs:time -- Una data nel formato hh:mm:ss (hours, minutes, seconds) xs:dateTime -- Il formato è CCYY-MM-DD T hh:mm:ss La T è parte della sintassi Restrizioni consentite: enumeration, minInclusive, minExclusive, maxInclusive, maxExclusive, pattern, whiteSpace
Laboratorio Informatico in Database Turistici Barbara Re58 Tipi numerici predefiniti Tipi numerici predefiniti: Allowable restrictions on numeric types: enumeration, minInclusive, minExclusive, maxInclusive, maxExclusive, fractionDigits, totalDigits, pattern, whiteSpace xs:decimalxs:positiveInteger xs:bytexs:negativeInteger xs:shortxs:nonPositiveInteger xs:intxs:nonNegativeInteger xs:long
Laboratorio Informatico in Database Turistici Barbara Re59 Esercizio Scrivere uno schema per il seguente documento University Square San Mateo County Summer Hill Homes Exit University, off 101. Right on Donahoe from the high $500's Ponderosa Series. 3 and 4 BR homes with Craftsman details from 1,761 to 2,024 sq ft Thurs-Sun 650/ M Sonsara Contra Costa County Taylor Woodrow Homes Moraga. Camino Ricardo and Morago Way from the high $800's 3 to 5 BR homes with great views. Luxury Homes in a great location Daily 925/ Vintners Green Alameda County Greystone Homes I-680 to 84. Rt on 84, go several mi. 84 turns into Holmes. Left on Alden Lane. from the mid $600's 3, 4 & 5 bedroom single-family homes Daily 925/ Dublin Ranch Alameda County Shore Homes 680 at Dublin Canyon from the $ 's Master planned community, 3-6 BR Shore Home Tues-Sun 925/
Laboratorio Informatico in Database Turistici Barbara Re60 Soluzione
Laboratorio Informatico in Database Turistici Barbara Re61 Ci sono domande?