WWW XML Schema Fabio Vitali. WWW Fabio Vitali2 Sommario Oggi esaminiamo in breve XML Schema u Perché non bastano i DTD u Tipi ed elementi u Definizione.

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.
Introduzione ad XML Mario Arrigoni Neri.
XML - Schema 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.
Lezione 18 MIDI e XML Programmazione MIDI (Prof. Luca A. Ludovico)
Document Type Definition per XML Presentazione 8.1 Informatica Generale (Prof. Luca A. Ludovico)
PHP.
DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation.
XSLT (eXtensible Stylesheet Language Transformation) Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis
Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.
Query OQL e XQUERY a confronto
Il Sistema MOMIS Il progetto MOMIS (Mediator EnvirOnment for Multiple Information Sources) consiste nella realizzazione di un sistema intelligente d integrazione.
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è
XML Prof. Alfredo Pulvirenti. XML XML (eXtensible Markup Language) è un meta linguaggio. Può essere definito come un insieme di regole e convenzioni che.
TW Analisi dei documenti n Classificazione dei componenti n Selezione dei componenti, costruzione della gerarchia, dei blocchi informativi e degli elementi.
WWW Link in XML Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XLink.
XML Prof. Barbara Pernici Politecnico di Milano. Introduzione a XML.
XML e XSL. XSL - eXtensible Stylesheet Language XSL è un linguaggio di annotazione che serve a "trasformare" la struttura di un documento in formato XML.
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
Tecnologia dei Servizi Grid e cloud computing - Lezione 004a 0 Lezione 4a - 22 ottobre 2009 Il materiale didattico usato in questo corso è stato mutuato.
Introduzione e nozioni fondamentali di sintassi
XML per documenti e applicazioni transazionali su Internet Alessio Saltarin Progetto XML Factory.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Modello E-R Generalizzazioni
Java base I: Sintassi e tipi di dati
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML Elaborazione di Franco Grivet Chin.
Esercizio 1 Convertire il seguente DTD (esercizio 1 sui DTD) in XML Schema:
Corso di PHP.
XSLT Trasformazioni XSL Ing. Luca Sabatucci. XSLT Uno dei vantaggi principali nell'utilizzo dell'Extensible Markup Language è la facilità con cui si possono.
Namespace Spazio dei nomi Ing. Luca Sabatucci. Scopo I Namespace servono a: I Namespace servono a: distinguere tra elementi e attributi con lo stesso.
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.
Linguaggi di schema per XML e modelli astratti di documenti Tesi di Laurea di Daniele Gubellini Relatore: Chiar.mo Prof. Fabio Vitali Bologna, 23 marzo.
Javascript: fondamenti, concetti, modello a oggetti
Esempi di XML Fabio Vitali.
Creare pagine web Xhtlm. Struttura di una pagina.
HTML Lezione 3 Stili.
Programma delle lezioni LABORATORIO B  Lezione 01: 27/02martedi  Lezione 02: 06/03martedi  Lezione 03: 13/03martedi  Lezione 04:
JavaScript Generalità Cos'è JavaScript?
HTML I tag HTML (parte 1). I tag HTML  I comandi che il browser interpreta  Etichette per marcare l’inizio e la fine di un elemento HTML  Formato e.
Introduzione a Javascript
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
HTML e CSS C. Gena, C. Picardi, J. Sproston HTML e CSS.
WWW XSLT Ing. Michele Vindigni. WWW 2 Introduzione Oggi esaminiamo in breve: u XSLT, ovvero il linguaggio trasformazione per documenti XML con sintassi.
A.a. 2004/05Tecnologie Web1 Introduzione a XML: Document Type Definition; parser XML; XML-schema; eXtensible Stylesheet Language.
Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Capitolo 3 … XML: eXtensible Markup Language  Introduzione  Logical Structures  Document Type Definition  Namespace  XML - Schema …
LTW Annotazioni sul progetto Fabio Vitali. LTW Scopo del progetto Realizzare un sito Web per la lettura e la ricerca di testi e dati su un argomento specifico.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Cenni Su SGML, HTML, XML SGML (Standard Generalized Markup Language) è il padre di tutti i linguaggi "Markup" – Lo svantaggio è la "pesantezza" dei suoi.
WWW XBase, XPath e XPointer Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XBase, XPath e XPointer.
WWW XSLT Fabio Vitali. WWW Fabio Vitali2 Introduzione Oggi esaminiamo in breve: u XSLT, ovvero il linguaggio di stile di XML.
WWW Domande Fabio Vitali. WWW Fabio Vitali2 Domanda 1 Vorrei sapere se quando definiamo un tag a livello di working group, cioè per definire i tag comuni.
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:
WWW XML Schema Fabio Vitali. WWW Fabio Vitali2 Sommario Oggi esaminiamo in breve XML Schema u Perché non bastano i DTD u Tipi ed elementi u Definizione.
WWW XML Schema Fabio Vitali. WWW A seguire: Motivazione (1)2/47 Sommario Oggi esaminiamo in breve XML Schema u Perché non bastano i DTD u Tipi ed elementi.
Master in Telemedicina HTML per iniziare Maria Simi, dicembre 2004 [da un tutorial di Rigget]
Documenti XML ben formati Altre componenti di un documento XML – Struttura dei documenti XML.
Documenti XML ben formati Entità– Sezioni condizionali.
Cloud informatica V anno.
2 Indice Un esempio Che cosa è A cosa serve Confronto con HTML Punti di forza La sua struttura.
XML Schema.
Transcript della presentazione:

WWW XML Schema Fabio Vitali

WWW Fabio Vitali2 Sommario Oggi esaminiamo in breve XML Schema u Perché non bastano i DTD u Tipi ed elementi u Definizione di elementi ed attributi u Altri aspetti rilevanti di XML Schema

WWW Fabio Vitali3 Motivazione (1) Inizialmente si pensava che XML servisse solo per i documenti XML è più semplice di SGML, è più generale ed aperto di HTML, è lo strumento ideale per esprimere documenti di testo, siano essi libri, manuali o pagine Web. Quindi l’enfasi iniziale era su internazionalizzazione, strutturazione, facilità di conversione, ecc. Raccoglieva in pieno l’eredità di SGML. Lo sviluppo di XML era difatti condotto da membri della comunità SGML.

WWW Fabio Vitali4 Motivazione (2) Nasce poi l’idea che XML possa servire per qualcosa di più: XML è (anche) un linguaggio di markup per trasferire dati: un meccanismo per convertire dati dal formato interno dell’applicazione ad un formato di trasporto, facile da convertire in altri formati interni. Non pensato per la visione umana, ma per essere prodotto ed usato da programmi. XML è un’interfaccia (Adam Bosworth): u Un’interfaccia tra autore e lettore, attraverso XSL e XLink, per portare significato tra creatore ed utente u Un’interfaccia tra applicazione ed applicazione, attraverso XML Schema, per esprimere contratti sui formati, e verificarne il rispetto.

WWW Fabio Vitali5 Motivazione (3) Tutta la faccenda del trasferimento dei dati si semplifica: i documenti strutturati e gerarchici sono un formato ragionevole di sintassi praticamente per qualunque cosa: documenti di testo, record di database, ecc. Nella W3C Note di Agosto 1999 ( ) "Many data-oriented applications are being defined which build their own data structures on top of an XML document layer, effectively using XML documents as a transfer mechanism for structured data; ”

WWW Fabio Vitali6 Validazione e buona forma La buona forma di un documento XML è una proprietà puramente sintattica. La validazione, viceversa, è la verifica di un impegno preso sopra al formato, ad un livello già semantico: u Mi impegno a scrivere dei documenti che siano formati da capitoli, ciascuno con un titolo e vari paragrafi, e ogni immagine con la sua didascalia. Per esprimere documenti di testo, i DTD probabilmente bastano, ma per esprimere blocchi di dati strutturati, è necessario un meccanismo di verifica più raffinato. XML Schema è stato pensato per fornire quel supporto di validazione che i DTD permettono solo parzialmente, in particolare sul contenuto degli elementi e degli attributi del documenti XML.

WWW Fabio Vitali7 XML Schema e DTD I DTD non sono espressi con XML, così da dover creare strumenti appositi per la validazione. I DTD non distinguono tra nome del tag e tipo del tag, ed hanno solo due tipi: complesso (cioè strutturato) e semplice (cioè CDATA o #PCDATA). XML Schema, invece, fornisce un set complesso di tipi, a cui i tag e il loro contenuto debbono aderire. Inoltre permette di agire in maniera object-oriented, permettendo di ampliare i tipi disponibili e di estenderne e precisarne le proprietà. Infine, XML Schema è scritto in XML, permettendo l’uso di applicazioni XML per la verifica della validità dei dati espressi.

WWW Fabio Vitali8 XML Schema E’ una delle attività del working group su XML. Ha prodotto 7 generazioni di working draft, di cui l’ultima, del 24 ottobre 2000, dovrebbe essere pressoché definitiva. E’ diviso in tre parti: u XML Schema Part 0: Primer (un’introduzione) u XML Schema Part 1: Structures (struttura del documento XML Schema) u XML Schema Part 2: Datatypes (modello dei dati e meccanismi di estensione dei tipi) Doveva essere una Recommendation W3C prima dell’estate. Poi sovrapposizioni di contenuto con XML-Query hanno ritardato lo sviluppo. Adesso è Proposed Recommendation.

WWW Fabio Vitali9 Formato di un XML Schema Un documento di XML Schema è racchiuso in un elemento, e può contenere, in varia forma ed ordine, i seguenti elementi:  ed per inserire, in varia forma, altri frammenti di schema da altri documenti  e per la definizione di tipi denominati usabili in seguito  ed per la definizione di elementi ed attributi globali del documento.  e per definire serie di attributi e gruppi di content model complessi e denominati.  per definire notazioni non XML all’interno di un documento XML  per esprimere commenti per esseri umani o per applicazioni diverse dal parser di XML Schema.

WWW Fabio Vitali10 I tipi in XML Schema XML Schema usa i tipi per esprimere vincoli sul contenuto di elementi ed attributi. u Un tipo semplice è un tipo di dati che non può contenere markup e non può avere attributi. In pratica è una sequenza di caratteri. u Un tipo complesso è un tipo di dati che può contenere markup e avere attributi. Esiste un grande numero di tipi predefiniti, di tipo semplice: string, decimal, float, boolean, uriReference, date, time, ecc. Ogni tipo è caratterizzato da alcune proprietà, dette facets, che ne descrivono vincoli e formati (permessi ed obblighi). E’ data possibilità di derivare nuovi tipi, sia per restrizione che per estensione di permessi ed obblighi.

WWW Fabio Vitali11 Due esempi

WWW Fabio Vitali12 Derivazione di tipi I tipi possono formare un albero complesso di derivazioni, permettendo a nuovi tipi di attingere a definizioni di altri tipi. E’ possibile estendere i tipi in due maniere: u Per restrizione ( ) ad esempio specificando facets aggiuntivi. u Per estensione ( ) ad esempio estendendo il content model lecito. N.B.: l’estensione non ha senso per i tipi semplici.

WWW Fabio Vitali13 Facets Per ogni tipo io posso precisare dei facets, delle caratteristiche indipendenti tra di loro che specificano aspetti del tipo: u length, minLength, maxLength: numero richiesto, minimo e massimo di caratteri u minExclusive, minInclusive, maxExclusive, maxInclusive: valore massimo e minimo, inclusivo ed esclusivo u precision, scale: numero di cifre significative e di decimali significativi u pattern: espressione regolare che il valore deve soddisfare u enumeration: lista all’interno dei quali scegliere il valore (simile alla lista di valori leciti degli attributi nei DTD). u period, duration, encoding, ecc.

WWW Fabio Vitali14 Esempi di derivazione (1)

WWW Fabio Vitali15 Esempi di derivazione (2)

WWW Fabio Vitali16 Definire elementi ed attributi n Si usano gli elementi e. n Se sono posti all’interno del tag schema sono elementi ed attributi globali (possono essere root di documenti). n Altrimenti sono usabili solo all’interno di elementi che li prevedono come tipo. n Questi hanno vari attributi importanti: u Name: il nome del tag o dell’attributo u Ref: il nome di un elemento o attributo definito altrove (globale) u Type: il nome del tipo, se non esplicitato come content u maxOccurs, minOccurs: il numero minimo e massimo di occorrenze u Fixed, default, nullable, ecc.: specificano valori fissi, di default e determinano la possibilità di elementi nulli.

WWW Fabio Vitali17 Content model complessi (1) Come nei DTD si usano virgole e caret per specificare obblighi e scelte tra gli elementi di un content model complesso, così in XML schema si usano, e. Questi sostituiscono anche le parentesi. u (A, B) diventa u (A | B) diventa

WWW Fabio Vitali18 Content model complessi (2) u (A, ( B | C)) diventa u (A & B & C) (operatore di SGML) diventa

WWW Fabio Vitali19 Content model complessi (3) Il content model misto aggiunge semplicemente l’attributo mixed con valore “true”. Il content model vuoto viene specificato con un tipo complesso e privo di elementi. Un content model PCDATA con l’elemento “ ”. Così:  (#PCDATA | B | C )* diventa  EMPTY diventa

WWW Fabio Vitali20 Attributi La dichiarazione di attributi può avvenire con l’elemento, dentro alla dichiarazione dell’elemento corrisponde a:

WWW Fabio Vitali21 Gruppi e gruppi di attributi E’ possibile raccogliere i gruppi e gli attributi in gruppi:

WWW Fabio Vitali22 Annotazioni Nei DTD l’unico posto dove mettere note e istruzioni di compilazione sono i commenti. Però i commenti sono a perdere: possono essere mangiati in qualunque fase dell’elaborazione. In XML Schema, invece, esiste un posto specifico dove mettere note ed istruzioni, l’elemento. L’elemento può contenere elementi (pensati per essere letti da esseri umani) oppure elementi, pensati per essere digeriti da applicazioni specifiche elemento pippo

WWW Fabio Vitali23 I namespace (1) La dichiarazione di targetNamespace definisce il namespace del documento da validare. Gli attributi elementFormDefault e attributeFormDefault permettono di controllare se l’uso del prefisso è necessario per i tipi non globali. <schema xmlns=" xmlns:po=" targetNamespace=" elementFormDefault="unqualified" attributeFormDefault="unqualified">

WWW Fabio Vitali24 I namespace (2) Poiché gli attributi elementFormDefault e attributeFormDefault sono definiti come “unqualified”, solo i tipi globali debbono avere il prefisso, gli altri no.... Alternativamente, si può usare il namespace di default e non usare mai prefissi:...

WWW Fabio Vitali25 I namespace (3) Quello che i namespace permettono di fare è di specificare regole di validazione solo su alcuni e non tutti i namespace del documento: <any namespace=" minOccurs="1" maxOccurs="unbounded"/> Nell’attributo namespace dell’elemento posso specificare o un namespace vero e proprio, o i valori: u ##any: qualunque XML ben formato u ##local: qualunque XML non sia qualificato (cioè privo di dichiarazione di namespace) u ##other: qualunque XML tranne il target namespace

WWW Fabio Vitali26 Altri aspetti Inclusioni e importazioni u In XML Schema, esistono meccanismi per dividere lo schema in più file, o per importare definizioni appartenenti ad altri namespace.  Unicità e chiavi u In XML Schema, è possibile richiedere che certi valori siano unici, o che certi valori siano chiavi di riferimenti, analoghi alla coppia ID/IDREF in XML “classico”. Tuttavia, è possibile specificare pattern molto complessi come elementi chiave.

WWW Fabio Vitali27 Riferirsi ad uno schema … Con l’attributo schemaLocation dentro all’istanza del documento XML diamo un suggerimento sulla posizione dello schema al validatore (ma la stessa informazione può essere data off-line, ad esempio perché predefinita, o in un header della connessione HTTP).

WWW Fabio Vitali28 Conclusioni Oggi abbiamo parlato di XML Schema: u Motivazioni e status u Organizzazione dei tipi u Definizione di elementi ed attributi u Content model, gruppi ed altri aspetti

WWW Fabio Vitali29 Riferimenti n D.C. Fallside XML Schema Part 0: Primer, W3C Candidate Recommendation, 24 ottobre 2000, H. S. Thompson, D. Beech, M. Maloney, N. Mendelsohn, XML Schema Part 1: Structures, W3C Candidate Recommendation, 24 ottobre 2000, P. V. Biron, A. Malhotra, XML Schema Part 2: Datatypes, W3C Candidate Recommendation, 24 ottobre 2000, Henry S. Thompson, XML Schema: An Intensive One-Day Tutorial, WWW’99 Conference, ftp://ftp.cogsci.ed.ac.uk/pub/ht/tutorials/docs/Schem a%20XML99.ppt R. L. Costello, XML Schemas, schema.zip