Elementi di modellazione e programmazione di contenuti digitali



Documenti analoghi
Elementi di modellazione e programmazione di contenuti digitali

Elementi di modellazione e programmazione di contenuti digitali

extensible Markup Language

2 Reti di Calcolatori XML

Definire linguaggi XML XSchema

Elementi di modellazione e programmazione di contenuti digitali

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

APPENDICE C extensible Markup Language

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

Specifiche tecniche di trasmissione per i Comuni

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

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

Linguaggi ed Applicazioni mul1mediali

Soluzione dell esercizio del 2 Febbraio 2004

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE

URI. Introduzione. Pag. 1

Tecnologie Web T XML Schema

Introduzione alla teoria dei database relazionali. Come progettare un database

Funzioni in C. Violetta Lonati

Risoluzione di travature reticolari iperstatiche col metodo delle forze. Complemento alla lezione 43/50: Il metodo delle forze II

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

Esercizio data base "Biblioteca"

4 3 4 = 4 x x x 10 0 aaa

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Progettaz. e sviluppo Data Base

Database. Si ringrazia Marco Bertini per le slides

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

TECN.PROG.SIST.INF. XML. Roberta Gerboni

Specifiche struttura del file dei rilievi Descrizione e XML Schema

OSSERVATORIO RIFIUTI SOVRAREGIONALE ~ ~ ~ IMPORTAZIONE AUTOMATICA DELLE IMFORMAZIONI SUI RIFIUTI RITIRATI E PRODOTTI DAGLI IMPIANTI.

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Traccia di soluzione dell esercizio del 25/1/2005

Per la gestione automatica. delle forniture telematiche. Tante forniture un unica soluzione

Database 1 biblioteca universitaria. Testo del quesito

Progettazione di Basi di Dati

ITIS Mattei Sondrio. Appunti veloci su moodle versione 2.7

ALGEBRA DELLE PROPOSIZIONI

Guida all uso di Java Diagrammi ER

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Manuale Utente Albo Pretorio GA

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Capitolo 4 Pianificazione e Sviluppo di Web Part

Modelli di presentazione dei documenti XML

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

il DM "Modifiche al Regolamento recante norme concernenti l'autonomia

Come modificare la propria Home Page e gli elementi correlati

Lezione V. Aula Multimediale - sabato 29/03/2008

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Stampa unione -contratto di tirocinio. Documentazione

Versione 7.0 Taglie e Colori. Negozio Facile

CMS MUSEO&WEB. Mappe grafiche. Andrea Tempera (OTEBAC) 12 aprile 2010

PIANO DI LAVORO. docente: Lancellotti Canio. classe: 5^ A IGEA. disciplina: ECONOMIA AZIENDALE. consegnato in data: 11 dicembre 2012

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

Gestione ex Inpdap SISTEMA INFORMATIVO DOMANDE DI PRESTAZIONI PENSIONISTICHE E NON PENSIONISTICHE

Creare un sito Multilingua con Joomla 1.6

Matematica in laboratorio

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

LE FUNZIONI A DUE VARIABILI

Corso di PHP. Prerequisiti. 1 - Introduzione

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

XML Schema Definition (XSD)

Pagina 2 di 14. Indice

Uso dei modelli/template

Raggruppamenti Conti Movimenti

risulta (x) = 1 se x < 0.

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

5. Limiti di funzione.

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Manuale di realizzazione dei modelli di documento

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Corrispondenze e funzioni

database: modello entityrelationship

<utente> <nome>mario</nome> <cognome>rossi</cognome> <saldo>1230</saldo> </utente> Tag di chiusura dato. Tag di apertura

per scrivere un articolo da prima pagina! per inviare una newsletter Come si crea Comunicazione Anfaa Edizione 4a.2013

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

Programma Gestione Presenze Manuale autorizzatore. Versione /08/2010. Area Sistemi Informatici - Università di Pisa

Indagini sul personale dipendente Applicazione web per la raccolta dei dati Guida tecnica

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

Corso di HTML. Prerequisiti. Modulo L3. 1-Concetti generali. Browser Rete Internet Client e server. M. Malatesta 1-Concetti generali-12 28/07/2013

Google AdWords. Corrispondenze Parole Chiave

MODELLO RELAZIONALE. Introduzione

Allegato 2 XML-Schema per l alimentazione del ReGIndE TipiBaseReGIndE.xsd

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Lezioni di Matematica 1 - I modulo

Come inserire un articolo nella Vetrina

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

COME CREARE UN SONDAGGIO CON SCELTA SU MOODLE

I file di dati. Unità didattica D1 1

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

Autorità Nazionale Anticorruzione e per la valutazione e la trasparenza delle amministrazioni pubbliche

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Capitolo 13. Interrogare una base di dati

Transcript:

Eementi di modeazione e programmazione di contenuti digitai Corso di Laurea Magistrae in Metodoogie informatiche per e discipine umanistiche Ing. Michea Paoucci Department of Systems and Informatics University of Forence Via S. Marta 3, 50139, Firenze, Itay te: +39-055-4796523, fax: +39-055-4796363 Lab: DISIT, Sistemi Distribuiti e Tecnoogie Internet http://www.disit.dsi.unifi.it/ paoucci@dsi.unifi.it http://www.dsi.unifi.it/~nesi, http://www.dsi.unifi.it/~paoucci, http://www.axmedis.org http://mobmed.axmedis.org/ 1

Eementi di modeazione e programmazione di contenuti digitai Corso di Laurea Magistrae in Metodoogie informatiche per e discipine umanistiche Parte I: xm-schema Parte II: Esercitazione 2

Storia XML Schema E una dee attività de working group su XML. E`diventata recommendation ne 2001. E suddiviso nee seguenti tre parti: XML Schema Part 0: Primer (un introduzione) http://www.w3.org/tr/xmschema-0/ XML Schema Part 1: Structures (struttura de documento XML Schema) http://www.w3.org/tr/xmschema-1/ XML Schema Part 2: Datatypes (modeo dei dati e meccanismi di estensione dei tipi) http://www.w3.org/tr/xmschema-2/ 3

Come definire un xm-schema (1) Anaogamente ad un Dtd, un XML Schema è una descrizione formae di una grammatica (tipo di documento) per un inguaggio di mark-up basato su XML Tuttavia, se si ha bisogno di un maggiore controo sugi eementi che possono trovarsi a'interno di uno specifico tipo di documenti XML, i Dtd non risutano più sufficienti un XML-Schema, a differenza di un Dtd che utiizza una propria sintassi specifica, usa a stessa sintassi XML per definire a grammatica di un inguaggio di mark-up Un XML-Schema è un documento XML che descrive a grammatica di un inguaggio XML utiizzando un inguaggio di mark-up specifico 4

Come definire un xm-schema (2) In quanto documento XML, un XML Schema ha un root eement che contiene tutte e regoe di definizione dea grammatica La struttura generae di uno schema XML è a seguente: <?xm version="1.0"?> <xs:schema xmns:xs="http://www.w3.org/2001/xmlschema">... Definizione dea grammatica... </xs:schema> L'eemento root de documento è rappresentato da tag <xs:schema> che indica a parser che in questo documento saranno utiizzati dei tag definiti da namespace standard de W3C I namespace rappresentano un meccanismo per identificare tag appartenenti ad una specifica grammatica. Ne nostro caso questi tag speciai sono caratterizzati da prefisso xs: 5

Come definire un xm-schema (3) XML-Schema prevede i tag <xs:eement> per a definizione degi eementi utiizzabii in un documento XML, specificando ne'attributo name i nome de reativo tag. A'interno di ciascun tag <xs:eement> si può indicare i tipo di dato de'eemento e definire gi eventuai attributi Ad esempio, a seguente definizione specifica 'eemento testo che può contenere sotanto stringhe: <xs:eement name="testo" type="xs:string"/> 6

Formato di un XML-schema Un documento di XML Schema è racchiuso in un eemento <xs:schema>, e può contenere, in varia forma ed ordine, i seguenti eementi: <xs:import> ed <xs:incude> per inserire, in varia forma, atri frammenti di schema da atri documenti <xs:simpetype> e <xs:compextype> per a definizione di tipi denominati usabii in seguito <xs:eement> ed <xs:attribute> per a definizione di eementi ed attributi gobai de documento. <xs:attributegroup> e <xs:group> per definire serie di attributi e gruppi di content mode compessi e denominati. <xs:notation> per definire notazioni non XML a interno di un documento XML <xs:annotation> per esprimere commenti per esseri umani o per appicazioni diverse da parser di XML Schema. 7

Tipi di dato sempice e compesso Per comprendere megio ed apprezzare a potenza degi XML-Schema occorre anaizzare ne dettagio i concetto di tipo di dato: esistono due categorie di tipi di dato: sempici e compessi Un tipo sempice è un tipo di dati che non può contenere mark-up e non può avere attributi. In pratica è una sequenza di caratteri Un tipo compesso è un tipo di dati che può contenere mark-up e avere attributi. E' 'equivaente di un tipo strutturato o misto Gi attributi sono sempre di tipo sempice I tipi compessi e acuni tipi sempici de documento istanza sono definiti neo XML-Schema Gi atri tipi sempici fanno parte de repertorio dei tipi sempici buit-in di XML-Schema 8

XML-Schema: tipo di dato sempice XML Schema introduce i concetto di tipo di dato sempice per definire gi eementi che non possono contenere atri eementi e non prevedono attributi xs:string xs:integer xs:decima Si possono usare tipi di dato sempici predefiniti oppure è possibie personaizzari Acuni tipi di dato predefiniti xs:booean xs:date Data sono riportati nea tabea a fianco xs:time Ora Esempio: xs:urireference URL Stringa di caratteri Numero intero Numero decimae Vaore booeano <xs:eement name="quantita" type="xs:integer" /> Questa dichiarazione permette 'uso de'eemento quantita in un documento XML consentendo sotanto un contenuto di tipo intero. Ovvero: sarà considerato vaido 'eemento <quantita>123</quantita> mentre non o sarà 'eemento <quantita>uno</quantita> Riferimento: http://www.w3.org/tr/xmschema-0/#creatdt 9

XML-Schema: tipo di dato sempice (2) string: una stringa di caratteri booean: i vaori 'true ' e 'fase (1,0) integer: interi con segno:... -1, 0, 1,... decima: una stringa di numeri (con segno e punto): '-1.23, 0, 123.4, 1000.00' foat: un reae in notazione scientifica: '12.78E-12 ' duration : una stringa per una durata temporae ne formato PnYnMnDTnHnMnS. Ad esempio 'P1Y2M3DT10H30M12.3S' corrisponde a : 1 anno, 2 mesi, 3 giorni, 10 ore, e 30 minuti date: una data ne formato anno-mese-giorno: '2009-11-18' time: un vaore di orario ne formato hh:mm:ss con una appendice opzionae per 'indicazione de fuso orario. Es.: '13:20:00+01:00 ' significa 1:20 PM in Midde European Time (+01:00). anyuri: a stringa di un URI, come http://www.w3.org/ Accetta sia URI reativi che assouti 10

XML-Schema: tipo di dato sempice (3) Ogni tipo sempice è caratterizzato da acune proprietà, dette facets, che ne descrivono formati (permessi ed obbighi) e vincoi (Si faccia riferimento a http://www.w3.org/tr/xmschema-0/#simpetypefacets) Acuni esempi: minexcusive, minincusive, maxincusive, maxexcusive enumeration, enght, maxlenght, minlenght, pattern, whitespace Nuovi tipi sempici (tipi sempici derivati) sono ottenuti per derivazione dai tipi sempici buit-in (tipi di dati incorporati) Un tipo sempice non può contenere eementi o attributi I tipi sempici possono essere definiti in uno dei seguenti modi: restriction: imita i vaori disponibii per i tipo sempice a un sottoinsieme di quei de tipo sempice ereditato ist: definisce un tipo sempice contenente un eenco di vaori, separati da uno spazio vuoto di un tipo sempice ereditato union Definisce un tipo sempice contenente un'unione di vaori di due o più tipi sempici ereditati. Dopo aver definito un tipo sempice, questo può essere utiizzato in un attributo, in una dichiarazione de'eemento oppure in una definizione compextype (tipo di dato compesso) 11

XML-Schema: tipi sempici derivati per restrizione (restriction) (1) È possibie restringere un tipo sempice buit-in per ottenere un nuovo tipo sempice Si utiizza eemento simpetype per dichiarare un nuovo tipo sempice, eemento restriction per indicare i tipo base e e possibii facets per stabiire i range di vaori Se, ad esempio, si ha bisogno di imitare i vaore che può essere assegnato a'eemento <quantita>, è possibie definiro ne seguente modo: <xs:eement name="quantita"> <xs:simpetype> <xs:restriction base="xs:integer"> <xs:minincusive vaue="1" /> <xs:maxincusive vaue="100" /> </xs:restriction> </xs:simpetype> </xs:eement> documento.xm: [ ] <quantita> 99 </quantita> [ ] In questo caso, a dichiarazione indica che 'eemento <quantita>: è di tipo sempice prevede una restrizione su tipo di dato intero predefinito accettando vaori compresi tra 1 e 100 12

XML-Schema: tipi sempici derivati per restrizione (restriction) (2) Atro esempio (Facet enumeration): <xs:simpetype name="shape"> <xs:restriction base="xsd:string"> <xs:enumeration vaue="circe"/> <xs:enumeration vaue="triange"/> <xs:enumeration vaue="square"/> </xs:restriction> </xs:simpetype> <shape>triange<shape> <shape>circe<shape> <shape>square<shape> 13

XML-Schema: tipi s. derivati per unione (union) Ne'esempio seguente viene iustrato un tipo sempice (aframesize) che rappresenta 'union di atri due tipi sempici, i quai definiscono, a oro vota, gi insiemi di vaori enumerati. I primo fornisce, come insieme di vaori basati su integer, e dimensioni dee bicicette da strada, mentre i secondo enumera vaori di stringa per e dimensioni dee mountain bike ('arge', 'medium', 'sma'). <xs:simpetype name="roadbikesize"> <xs:restriction base="xs:positiveinteger"> <xs:enumeration vaue="46"/> <xs:enumeration vaue="52"/> <xs:enumeration vaue="55"/> </xs:restriction> </xs:simpetype> <xs:simpetype name="mountainbikesize"> <xs:restriction base="xs:string"> <xs:enumeration vaue="sma"/> <xs:enumeration vaue="medium"/> <xs:enumeration vaue="arge"/> <xs:attribute name="aframesize"> <xs:simpetype> <xs:union> <xs:simpetype> <xs:restriction base="roadbikesize"/> </xs:simpetype> <xs:simpetype> <xs:restriction base="mountainbikesize"/> </xs:restriction> </xs:simpetype> </xs:simpetype> Fie.xm </xs:schema> </xs:union> <bikesize </xs:simpetype> aframesize= arge /> oppure </ bikesize aframesize= 46 > 14

XML-Schema: tipi sempici derivati per ista (ist) Ne'esempio seguente viene iustrato un tipo sempice (istofdates) che consente di ottenere un eenco di date (e voci devono essere separate 'una da'atra con uno spazio vuoto) come contenuto: <xs:simpetype name="istofdates"> <xs:ist itemtype="xs:date"/> </xs:simpetype> Fie.xm: <istofdates> 2009-11-18 2000-01-23 </istofdates> Riferimento: http://www.w3.org/tr/xmschema-0/#creatdt 15

XML-schema: tipo di dato compesso I tipi di dato compesso si riferiscono ad eementi che possono contenere atri eementi e possono avere attributi Definire un eemento di tipo compesso corrisponde a definire a reativa struttura Lo schema generae per a definizione di un eemento di tipo compesso è i seguente: <xs:eement name="nome_elemento"> <xs:compextype>... Definizione de tipo compesso...... Definizione degi attributi... </xs:compextype> </xs:eement> 16

XML-schema: def. tipo di dato compesso I tipi di dato compesso sono eementi che possono: contenere atri eementi avere degi attributi È possibie definire a sequenza di eementi che possono stare a suo interno utiizzando uno dei seguenti costruttori di tipi compessi: <xs:sequence> Consente di definire una sequenza ordinata di sottoeementi <xs:choice> Consente di definire un eenco di sottoeementi aternativi <xs:a> Consente di definire una sequenza non ordinata di sottoeementi 17

Tipo di dato compesso: sequenza (sequence) I costruttore di tipo compesso <xs:sequence> si utiizza per definire un eemento compesso ottenuto come una sequenza ordinata di sotto eementi: <xs:eement name= articoo"> <xs:compextype> <xs:sequence> <xs:eement name="paragrafo /> <xs:eement name="testo"/> </xs:sequence> </xs:compextype> </xs:eement> fie.xm [ ] <articoo> <paragrafo> Questo è i paragrafo 1.. Introduzione </paragrafo> <testo> contenuto di testo </testo> </articoo> [ ] 18

Tipo di dato compesso: sceta (choice) I costruttore di tipo compesso <xs:choice> si utiizza per definire un eenco di sottoeementi aternativi: <xs:compextype name= articoo > <xs:choice> <xs:eement name="paragrafo /> <xs:eement name="testo"/> </ xs:choice> </xs:compextype> fie1.xm [ ] <articoo> <testo> contenuto testuae </testo> </articoo> [ ] fie2.xm [ ] <articoo> <paragrafo> contenuto testuae paragrafo </testo> </articoo> [ ] 19

Tipo di dato compesso: a I costruttore di tipo compesso <xs:a> si usa per definire un eemento compesso ottenuto come una sequenza non ordinata di sottoeementi: <xs:eement name= articoo"> <xs:compextype> <xs:a> <xs:eement name="paragrafo /> <xs:eement name="testo"/> </xs:a> </xs:compextype> </xs:eement> fie1.xm [ ] <articoo> <paragrafo> paragrafo </paragrafo> <testo> effettivo contenuto di testo </testo> </articoo> [ ] fie2.xm [ ] <articoo> <testo> effettivo contenuto di testo </testo> <paragrafo> paragrafo </paragrafo> </articoo> [ ] 20

Tipo di dato compesso: combinazioni E` possibie utiizzare I costruttori in modo integrato <xs:eement name= mezzolocomozione"> <xs:compextype> <xsd:sequence> <xsd:eement name= proprietario type="xsd:string"/> <xsd:choice> <xsd:eement name= ruote type="xsd:integer"/> <xsd:eement name= ai type="xsd:string"/> </xsd:choice> </xsd:sequence> </xs:compextype> </xs:eement> fie.xm [ ] <mezzolocomozione> <proprietario>mario Rossi</proprietario>...<ruote>2</ruote> </mezzolocomozione> [ ] [ ] <mezzolocomozione> <proprietario>franco Bosi</proprietario>...<ai>numero serie xxxx</ai> </mezzolocomozione> [ ] 21

Tipo compesso: minoccurs e maxoccurs Per ciascuno dei costruttori visti (sequence, choice, a) e per ciascun eemento è possibie definire i numero di occorrenze previste utiizzando gi attributi minoccurs e maxoccurs Esempio: se si vuoe costruire un tipo compesso in cui 'eemento testo può essere presente una o infinite vote a'interno di un paragrafo, si può esprimere questa condizione ne seguente modo: <xs:eement name="paragrafo"> <xs:compextype> <xs:eement name="testo" minoccurs="1" maxoccurs="unbounded"/> </xs:compextype> </xs:eement> X <paragrafo> <paragrafo> <paragrafo> <testo> testo vero</testo> </paragrafo> In questo caso i vaore unbounded indica che non è stabiito un massimo numero di eementi testo che possono stare a'interno di un paragrafo. <paragrafo> <testo> primo testo </testo> <testo> secondo testo </testo> </paragrafo> 22

Tipo di dato compesso: attributi La definizione degi attributi è basata su'uso de tag <xs:attribute>, come ne seguente esempio: <xs:attribute name="titoo" type="xs:string" use="required" /> dove attributo use serve per specificare acune caratteristiche come a presenza obbigatoria (required) o un vaore predefinito (defaut) in combinazione con 'attributo vaue. Si noti che: se non si specifica espicitamente 'obbigatorietà de'attributo, esso è considerato opzionae <xs:eement name="paragrafo"> <xs:compextype> <xs:eement name="testo" minoccurs="1" maxoccurs="unbounded"/> </xs:compextype> <xs:attribute name="titoo" type="xs:string" use="required" /> </xs:eement> <paragrafo titoo= Par. 1.0 > <testo> primo testo </testo> <testo> secondo testo </testo> </paragrafo> 23

Tipi anonimi e tipi denominati Si para di tipi anonimi quando: Non è presente attributo type nea dichiarazione de eemento/attributo Non è assegnato un nome a compex/simpetype ANONIMO: <xs:compextype> <xs:choice> <xs:eement name="paragrafo /> <xs:eement name="testo"/> </ xs:choice> </xs:compextype> <xs:compextype name= articoo type="xsd:string"> <xs:choice> <xs:eement name="paragrafo /> <xs:eement name="testo"/> </ xs:choice> </xs:compextype> 24

XML-schema: esempio (poco eggibie) <?xm version="1.0"?> <xs:schema xmns:xs="http://www.w3.org/2001/xmlschema"> <xs:eement name="articoo"> <xs:compextype> <xs:sequence> </xs:sequence> <xs:attribute name="titoo type="xs:string" use="required"/> </xs:compextype> </xs:eement> </xs:schema> <xs:eement name="paragrafo" maxoccurs="unbounded"> <xs:compextype> <xs:a maxoccurs="unbounded"> <xs:eement name="immagine" minoccurs="0"> <xs:compextype> <xs:attribute name="fie use="required"> <xs:simpetype> <xs:restriction base="xs:string"/> </xs:simpetype> </xs:attribute> </xs:compextype> </xs:eement> <xs:eement name="testo"/> <xs:eement name="codice" minoccurs="0"/> </xs:a> <xs:attribute name="titoo" type="xs:string" use="optiona"/> <xs:attribute name="tipo" use="optiona"> <xs:simpetype> <xs:restriction base="xs:string"> <xs:enumeration vaue="abstract"/> <xs:enumeration vaue="bibiografia"/> <xs:enumeration vaue="note"/> </xs:restriction> </xs:simpetype> </xs:attribute> </xs:compextype> </xs:eement> 25

XML-schema: definizione moduare degi eementi (1) XML Schema prevede a possibiità di rendere moduare a definizione dea struttura di un documento XML tramite a dichiarazione di tipi e di eementi Questo contribuisce a fornire una struttura moduare a XML- Schema, più ordinata, più comprensibie e sempice da modificare: un XML-Schema diventa una sequenza di dichiarazioni di tipi ed eementi: <xs:compextype name="nome_eemento">... </xs:compextype> I riferimento ad una dichiarazione di tipo viene fatta come se fosse un tipo predefinito, come mostrato ne seguente esempio: <xs:eement name= Nuovo > <xs:compextype> <xs:eement type="nome_eemento"/> </xs:compextype> </xs:eement> 26

XML-schema: definizione moduare degi eementi (2) La possibiità di dichiarare eementi e tipi di dato impica 'esistenza di un ambito di visibiità: Una definizione si dice gobae se è posta a'interno de tag <schema>. In questo caso 'eemento o 'attributo può essere riutiizzato in ogni punto de documento Una definizione si dice ocae se è inserita a'interno di un tag <compextype>. In questo caso 'eemento o 'attributo esiste soo se esiste un'istanza di que tipo, e non può essere riutiizzato fuori dea dichiarazione de tipo compesso 27

XML-schema: definizione moduare degi eementi (3) [Tipo compesso] <?xm version="1.0"?> <xs:schema xmns:xs="http://www.w3.org/... "> <xs:compextype name="paragrafotype"> [ ] </xs:compextype> <xs:eement name="articoo"> <xs:compextype> <xs:sequence> <xs:eement name="paragrafo" type="paragrafotype" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute name="titoo" type="xs:string" use="required"/> </xs:compextype> </xs:eement> </xs:schema> I componenti di uno schema dichiarati a iveo massimo, cioè come sotto eementi di root, sono dichiarati a iveo gobae e possono essere utiizzati ne resto deo schema Es: paragrafotype 28

XML-schema: definizione moduare degi eementi (esempio) [Tipo compesso] <?xm version="1.0"?> <xs:schema xmns:xs="http://www.w3.org/2001/xmlschema"> <xs:eement name="articoo"> <xs:compextype> <xs:sequence> <xs:eement name="paragrafo" type="paragrafotype" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute name="titoo" type="xs:string" use="required"/> </xs:compextype> </xs:eement> [ ] si veda a side successiva 29

<xs:compextype name="paragrafotype"> <xs:a maxoccurs="unbounded"> <xs:eement name="immagine" type="immaginetype" minoccurs="0"/> <xs:eement name="testo"/> <xs:eement name="codice" minoccurs="0"/> </xs:a> <xs:attribute name="titoo" type="xs:string" use="optiona"/> <xs:attribute name="tipo" use="optiona"> <xs:simpetype> <xs:restriction base="xs:string"> <xs:enumeration vaue="abstract"/> <xs:enumeration vaue="bibiografia"/> <xs:enumeration vaue="note"/> </xs:restriction> </xs:simpetype> (esempio competo) </xs:attribute> </xs:compextype> <xs:compextype name="immaginetype"> <xs:attribute name="fie" use="required"> <xs:simpetype> <xs:restriction base="xs:string"/> </xs:simpetype> </xs:attribute> </xs:compextype> </xs:schema> 30

Annotazioni In XML Schema, esiste un tag specifico da usare in caso si vogia mettere commenti, note ed istruzioni: eemento <annotation> L eemento <annotation> può contenere eementi: <documentation>, creati per essere etti da esseri umani <appinfo>, pensati per essere digeriti da appicazioni specifiche Sintassi: <xs:annotation> <xs:appinfo>appxxx Note</xs:appInfo> <xs:documentation xm:ang="en"> This Schema defines a Note </xs:documentation> </xs:annotation> 31

Coegare un xm-schema ad un fie xm A partire da una grammatica definita tramite un XML-Schema, è possibie sfruttare un parser XML vaidante per verificare a vaidità di un documento XML I parser avrà bisogno: de documento XML da vaidare deo schema XML rispetto a cui effettuare a vaidazione Ci sono diversi modi per fornire a parser informazioni suo schema da usare per a vaidazione. Uno di questi è i seguente: inserire ne documento XML un riferimento ao schema da usare associato a'eemento root, come ne seguente esempio: <articoo xmns:xsi="http://www.w3.org/2001/xmlschemainstance" xsi:nonamespaceschemalocation="articoo.xsd" titoo= documento XML" >, con : xmns:xsi indica un URL che specifica a modaità con cui si indicherà i riferimento ao schema XML xsi:nonamespaceschemalocation indica i nome e 'eventuae percorso de fie contenente o schema XML di riferimento. 32

XML-schema: namespace (1) Una dee caratteristiche auspicabii nea creazione di un nuovo inguaggio è a possibiità di integrare eementi derivanti da grammatiche diverse (definite in xm-schema differenti) in modo da riutiizzare parti di grammatiche già definite Tuttavia a composizione di inguaggi pone ameno due tipi di probemi: un documento che usa due grammatiche presenta i probema dea vaidazione: è necessario capire in modo univoco a quae schema si deve fare riferimento per vaidare un documento XML "ibrido due inguaggi potrebbero avere tag ed attributi con o stesso nome, anche se utiizzabii in contesti diversi Per risovere questa ambiguità si ricorre a uso dei namespace: un namespace è un insieme di nomi di eementi e nomi di attributi identificati univocamente da un identificatore. 33

XML-schema: namespace (2) L'identificatore univoco individua 'insieme dei nomi distinguendoi da eventuai omonimie in atri namespace I concetto non è nuovo ne'informatica. Esempio: definizione dei i nomi dei campi in una tabea di un database: Non è possibie avere campi con o stesso nome a'interno di una tabea, ma è possibie avere gi stessi nomi in tabee diverse. In questo modo si risove 'ambiguità tra due campi omonimi facendoi precedere da nome dea tabea (i namespace) Se in un documento XML si utiizzano eementi definiti in xm schema diversi abbiamo bisogno di un meccanismo che permetta di identificare ciascun namespace e i reativo XML Schema che o definisce 34

XML-schema: sintassi dei namespace (1) In un documento XML si fa riferimento ad un namespace utiizzando un attributo speciae (xmns) associato a root eement: <articoo xmns="http://www.dominio.it/xm/articoo"> Questo indica che 'eemento articoo ed i suoi sottoeementi usano i nomi definiti ne namespace identificato da'identificatore http://www.dominio.it/xm/articoo L'identificatore di un namespace può essere rappresentato da una quasiasi stringa univoca. Soitamente si usa un URI (Uniform Resource Identifier, RFC 3986) NOTA: RFC (Request for Comments) è un documento che riporta informazioni o specifiche riguardanti nuove ricerche, innovazioni e metodoogie prevaentemente in ambito informatico o egate ae comunicazioni in rete. Una vota vagiati da'ietf (Internet Engineering Task Force, RFC 3935) possono diventare degi standard Internet. 35

XML-schema: sintassi dei namespace (2) Per mettere in reazione un namespace con i reativo XML Schema occorre dichiararo ne root eement: <articoo xmns:xsi="http://www.w3.org/2001/xmlschema-instance" xmns="http://www.dominio.it/xm/articoo" xmns="http://www.dominio.it/xm/bibiografia" xsi:schemalocation="http://www.dominio.it/xm/articoo articoo.xsd" xsi:schemalocation="http://www.dominio.it/xm/bibiografia bibiografia.xsd > dove: xmns:xsi specifica a modaità con cui viene indicato i riferimento ao schema xsi:schemalocation indica i namespace ed i fie in cui è definito i reativo XML Schema separati da uno spazio E possibie combinare più namespace facendo in modo che ciascun eemento utiizzato faccia riferimento a proprio namespace Si noti che quando si fa riferimento ad un namespace, questo riferimento vae per 'eemento corrente e per tutti gi eementi contenuti, a meno che non venga specificato un diverso namespace 36

XML-schema: namespace esempio <articoo xmns="http://www.dominio.it/xm/articoo" titoo= documento XML"> <paragrafo titoo="introduzione"> <testo> ba ba ba </testo> </paragrafo> <paragrafo titoo="bibiografia"> <bibiografia xmns="http://www.dominio.it/xm/bibiografia"> <autore> Tizio </autore> <titoo> Opera citata </titoo> <anno> 1999 </anno> </bibiografia> </paragrafo> </articoo> In questo esempio si usano eementi tratti da due diversi namespace: uno reativo aa grammatica dea struttura di un articoo 'atro reativo aa grammatica di bibiografia 37

Presentazione di XML con CSS A differenza di HTML, che è un inguaggio specifico di strutturazione e presentazione di documenti, XML è più generae e non ha una semantica di presentazione. Non è previsto acun meccanismo predefinito per visuaizzare i vari eementi di un documento. Ad esempio, un documento XML visuaizzato in un browser appare generamente così com'è, a massimo con una indentazione e una coorazione dei tag impostata da browser. Un metodo per gestire a presentazione de contenuto di un documento XML consiste ne'utiizzare i Cascading Stye Sheets (CSS). È possibie utiizzare i CSS in modo anaogo a come si utiizzano con HTML. Per ciascun eemento de documento XML che vogiamo formattare occorre definire una regoa secondo o schema: Seettore { proprietà: vaore; proprietà: vaore;... } 38

Presentazione di XML con CSS I seettore specifica a quae eemento a regoa deve essere appicata, mentre a parte racchiusa tra parentesi graffe eenca e caratteristiche da impostare e i reativo vaore. È opportuno evidenziare una importante differenza tra 'utiizzo dei CSS per formattare documenti HTML e i oro uso per i documenti XML. In HTML a maggior parte dei tag ha una formattazione predefinita e pertanto un fogio di stie CSS consente di ridefinire tai impostazioni. In XML i tag non hanno acun significato di formattazione, pertanto è necessario specificare tutto. Ad esempio, senza 'opportuna indicazione i testo contenuto nei diversi eementi di un documento XML verrebbe visuaizzato come un'unica stringa. 39

Presentazione di XML con CSS Per strutturare visivamente i documento dobbiamo indicare a modaità di visuaizzazione di ciascun eemento tramite a proprietà dispay di CSS. Ad esempio, per formattare 'eemento paragrafo di un articoo possiamo definire una regoa come a seguente: paragrafo {dispay: bock; font-size: 12pt; text-aign: eft} Ne documento XML possiamo quindi inserire un riferimento ad esso mediante un apposita direttiva di eaborazione, come ne seguente esempio: <?xm-styesheet type="text/css" href="stie.css"?> 40

Presentazione di XML con CSS: esempio <?xm version="1.0" encoding="utf-8"?> <?xm-styesheet type="text/css" href="stie.css"?> <articoo xmns:xsi="http://www.w3.org/2001/xmlschema-instance" titoo="titoo de'articoo"> <paragrafo titoo="titoo de primo paragrafo"> <testo> Bocco di testo de primo paragrafo</testo> <immagine fie="immagine1.jpg"/> </paragrafo> <paragrafo titoo="titoo de secondo paragrafo"> <testo>bocco di testo de secondo paragrafo</testo> <codice>esempio di codice </codice> <testo>atro bocco di testo</testo> </paragrafo> <paragrafo tipo="bibiografia"> <testo> Riferimento ad un articoo </testo> </paragrafo> </articoo> stie.css paragrafo {dispay: bock; font-size: 12pt; text-aign: eft} testo {dispay: bock; font-size: 12pt; text-aign: eft; coor: green} codice {dispay: bock; font-size: 20pt; font-famiy: Courier; text-aign: eft; coor: bue} 41

Presentazione di XML con CSS: visuaizzazione esempio stie.css paragrafo {dispay: bock; font-size: 12pt; text-aign: eft} testo {dispay: bock; font-size: 12pt; text-aign: eft; coor: green} codice {dispay: bock; font-size: 20pt; font-famiy: Courier; text-aign: eft; coor: bue} 42

Link utii http://www.w3.org/xml http://www.w3.org/tr/xmschema-0/ http://www.w3.org/2004/11/uri-iri-pressreease.htm.en http://www.ietf.org/rfc/rfc3986.txt http://www.w3.org/tr/xmschema-1/ http://www.atova.com/xm-editor/ http://www.w3.org/tr/htm4/sgm/entities.htm http://www.htm.it/ 43

XML Parte III: Esercitazione 44

Introduzione Per controare che un fie xm sia ben formato: scaricare i pugin per firefox: OpenXMLViewer Usare direttamente Internet Exporer8 Per a vaidazione: xm-spy (http://www.atova.com/xm-editor/) è proprietario ma esiste una versione free per 30 gg Onine schema vaidator: http://toos.decisionsoft.com/schemavaidate/ 45

46

Firefox+OpenXMLViewer / Internet Exporer8 Browser: Segnaazione di errrore 47

Verificare che i fie xm sia ben formato aprendoo su browser 48

Browser: Visuaizzazione di Un documento xm Ben formato 49

Browser: Visuaizzazione di Un documento xm Ben formato, con un fie ccs associato 50

Entità. è vaore è <?xm version="1.0" encoding="utf-8"?> <articoo xmns:xsi="http://www.w3.org/20 01/ XMLSchema-instance" titoo="titoo de'articoo"> [ ] TODO </articoo> Per descrivere articoo in esame usare i seguenti tipi di eementi, con i reativi attributi associati: articoo (titoo), paragrafo (titoo), testo, immagine (titoo, formato) 51

<?xm version="1.0" encoding="utf-8"?> <articoo xmns:xsi="http://www.w3.org/2001/ XMLSchema-instance" titoo="titoo de'articoo"> [ ] TODO </articoo> NOTA: usare e è <articoo> ha un attributo <titoo> (con vaore Come definire ) e contiene: Tre paragrafi I primo paragrafo ha attributo <titoo> (vaore Introduzione ) e contiene: Un campo di <testo> (con vaore Questo documento ) I secondo <paragrafo> ha un attributo <titoo> (con vaore Descrizione di ) e contiene: Un campo di <testo> (con vaore In questo paragrafo ) Un <immagine> (con attributi <titoo> e <formato> non specificati ne testo) Un atro campo di <testo> (con vaore Adesso ) I terzo paragrafo ha sempre attributo <titoo> (con vaore Ringraziamenti ) e contiene: Un campo di <testo> (con vaore Ringrazio ) 52

<?xm version="1.0" encoding="utf-8"?> <articoo xmns:xsi="http://www.w3.org/2001/xmlschema-instance" titoo= Come definire un documento xm"> <paragrafo titoo="introduzione"> <testo>questo documento è di prova per a definizione di fie xm& #8230; </testo> </paragrafo> <paragrafo titoo="descrizione di un documento xm"> <testo>in questo paragrafo otre a testo metto un immagine: </testo> <immagine titoo="immagine formato= jpg > <testo>adesso commento immagine </testo> </paragrafo> <paragrafo titoo="ringraziamenti"> <testo>ringrazio </testo> </paragrafo> </articoo> 53

Associare a fie xm un css in modo che titoi e testo compaiano come in figura Sintassi: <?xm-styesheet type="text/css" href="stie.css"?> 54

http://toos.decisionsoft.com/schemavaidate/ 55

Schema Passi: Scrivere uno schema (ben formato) Scrivere un documento xm ben formato e riferito ao schema Controare che i documento xm sia anche vaido Definire un xm-schema per una serie di articoi che abbiano: Un titoo Ameno un paragrafo contenente de testo Quindi: articoo è un tipo compesso (compextype) contenente: Una sequenza (<xs:sequence>) di paragrafi (ameno un paragrafo) Un attributo Ogni paragrafo: è un tipo compesso (compextype) contenente: un eemento di tipo stringa (type="xs:string") che si chiama testo (name= testo ) Ogni paragrfo ha un titoo (sotto forma di attributo) 56

Si ricorda che: I tipi di dato compesso si riferiscono ad eementi che possono contenere atri eementi e possono avere attributi Definire un eemento di tipo compesso corrisponde a definire a reativa struttura Lo schema generae per a definizione di un eemento di tipo compesso è i seguente: <xs:eement name="nome_elemento"> <xs:compextype>... Definizione de tipo compesso...(<xs:a> oppure <xs:sequence> oppure <xs:choice>)... Definizione degi attributi... (<xs:attribute name= type= >) </xs:compextype> </xs:eement> 57

Quindi: articoo è un tipo compesso (compextype) contenente: Una sequenza di paragrafi (ameno un pragrafo) Un attributo Ogni paragrafo: è un tipo compesso (compextype) contenente: un eemento () che si chiama testo Ogni paragrafo ha un titoo (sotto forma di attributo) <?xm version="1.0" encoding="utf-8"?> <xs:schema xmns:xs="http://www.w3.org/2001/xmlschema" eementformdefaut="quaified"> TODO [ ] </xs:schema> <?xm version="1.0" encoding="utf-8"?> <xs:schema xmns:xs="http://www.w3.org/2001/xmlschema" eementformdefaut="quaified"> TODO [ ] </xs:schema> Usare: <xs:compextype> <xs:sequence> <xs:eement name="" minoccurs=" maxoccurs="" > <xs:attribute name=""> 58

<?xm version="1.0" encoding="utf-8"?> <xs:schema xmns:xs="http://www.w3.org/2001/xmlschema" eementformdefaut="quaified <xs:eement name="articoo"> <xs:compextype > <xs:sequence> <xs:eement name="paragrafo" minoccurs= 1" maxoccurs="unbounded" > <xs:compextype> <xs:sequence> <xs:eement name="testo" maxoccurs="unbounded type="xs:string </xs:sequence> <xs:attribute name="titoo" /> </xs:compextype> </xs:eement> </xs:sequence> <xs:attribute name="titoo" type="xs:string"/> </xs:compextype> </xs:eement > 59

<?xm version="1.0" encoding="utf-8"?> <articoo xmns:xsi="http://www.w3.org/2001/xmlschemainstance" titoo="come definire un documento xm"> <paragrafo titoo="primo"> Documenti ben formati e <testo> Introduzione </testo> vaidi secondo o schema </paragrafo> definito <paragrafo titoo="secondo"> <testo> testo de secondo paragrafo </testo> </paragrafo> </articoo> <?xm version="1.0" encoding="utf-8"?> <articoo xmns:xsi="http://www.w3.org/2001/xmlschema-instance" titoo="come definire un documento xm"> <paragrafo titoo="primo"> <testo> Introduzione </testo> </paragrafo> </articoo> 60

Documenti ben formati MA NON VALIDI <?xm version="1.0" encoding="utf-8"?><articoo xmns:xsi="http://www.w3.org/2001/xmlschema-instance" titoo="come definire un documento xm"> <paragrafo titoo="primo"> testo Manca eemento <testo> </paragrafo> </articoo> <?xm version="1.0" encoding="utf-8"?> <articoo xmns:xsi="http://www.w3.org/2001/xmlschema-instance" titoo="come definire un documento xm"> </articoo> Non c é neanche un paragrafo, Mentre ne xm-schema c è indicato che deve essere presente ameno un paragrafo (<xs:eement name="paragrafo" minoccurs= 1" maxoccurs="unbounded" >) 61

Eementi di modeazione e programmazione di contenuti digitai Corso di Laurea Magistrae in Metodoogie informatiche per e discipine umanistiche Ing. Michea Paoucci Department of Systems and Informatics University of Forence Via S. Marta 3, 50139, Firenze, Itay te: +39-055-4796523, fax: +39-055-4796363 Lab: DISIT, Sistemi Distribuiti e Tecnoogie Internet http://www.disit.dsi.unifi.it/ paoucci@dsi.unifi.it http://www.dsi.unifi.it/~nesi, http://www.dsi.unifi.it/~paoucci, http://www.axmedis.org http://mobmed.axmedis.org/ 62

Esempio: Associare un fie css ai tipi di documenti appena descritti Definire i fie.css Per coegare i css a fie xm usare: <?xm-styesheet type="text/css" href= /fie.css"?> Sintassi: <?xm version="1.0" encoding="utf-8"?> <?xm-styesheet type="text/css" href= /fie.css"?> <articoo > Con css 63

Esempio2 (1) Partire dao schema precedente e aggiungere: Ogni paragrafo puo contenere anche un mmagine Ogni immagine ha associati I seguenti attributi: titoo (xs:string) formato (xs:string) a sceta (definire come restrizione di un tipo sempice) tra jpg, png, gif ur (xs:string) Si ricorda che a sintassi per restingere un tipo sempice (in questo caso una stringa) è a seguente: <xs:simpetype name=" "> <xs:restriction base="xsd:string"> <xs:enumeration vaue=" "/> <xs:enumeration vaue=" "/> <xs:enumeration vaue= "/> </xs:restriction> </xs:simpetype> NOTA: Quindi attenzione a definire correttamente attributo formato 64

Esempio2 (2) 65

Esempio2 (3) Verificare che o schema sia we-formed Scrivere i fie.xm seguendo o schema Verificare che i fie.xm sia we-formed Verificare che i fie.xm sia vaido secondo o schema definito Associare un css a fie xm 66

Esercizi 1) Fare in modo che sia possibie inserire in un paragrafo in sequenza: testo immagine testo 2) Usare xs:choice o xs:a a posto di sequence 3) Definire atri tipi sempici derivati (anziché restringere una stringa, provare a restringere un intero) 4) Scrivere uno schema usando a definizione moduare degi eementi 5) Derivare tipi sempici per unione o per ista 67

Esercizio 1): fie.xsd Fare in modo che sia possibie inserire in un paragrafo in sequenza: testo, immagine, testo 68

Esercizio 1): fie.xm 69

Esercizio 2) Modificare o schema precedentemente definito usando xs:choice in modo che ogni paragrafo possa contenere o un immagine o un testo Scrivere ameno un fie xm Vaidare i/i fie.xm 70

Esercizio 2): schema.xsd 71

Esercizio 2): fie.xm 72

Esercizio 3) 3) Definire atri tipi sempici derivati (anziché restringere una stringa, provare a restringere un intero) In particoare: aggiungere a eemento paragrafo de esercizio precedente attributo numero (per indicare a numerazione dei paragrafi) in modo tae che i vaora assunto sia da 1 a 10 (compresi). I documento partirà quindi da paragrafo 1 e potrà avere a massimo 10 paragrafi. NOTE: L attributo numero si ottiene come restrizione de tipo sempice xs:integer, usando poi i Facet minincusive e maxincusive per determinare intervao di vaidità Sintassi: <xs:attribute name= " > <xs:simpetype> <xs:restriction base="xs:integer" > <xs:minincusive vaue= "/> <xs:maxincusive vaue= "/> </xs:restriction> </xs:simpetype> </xs:attribute> 73

Esercizio 3) 3) Definire atri tipi sempici derivati (anziché restringere una stringa, provare a restringere un intero) In particoare: aggiungere a eemento paragrafo de esercizio precedente attributo numero (per indicare a numerazione dei paragrafi) in modo tae che i vaora assunto sia da 1 a 10 (compresi). I documento partirà quindi da paragrafo 1 e potrà avere a massimo 10 paragrafi. NOTE: L attributo numero si ottiene come restrizione de tipo sempice xs:integer, usando poi i Facet minincusive e maxincusive per determinare intervao di vaidità Sintassi: <xs:attribute name= " > <xs:simpetype> <xs:restriction base="xs:integer" > <xs:minincusive vaue= "/> <xs:maxincusive vaue= "/> </xs:restriction> </xs:simpetype> </xs:attribute> 74

Esercizio 3) 3) Definire atri tipi sempici derivati (anziché restringere una stringa, provare a restringere un intero) In particoare: aggiungere a eemento paragrafo de esercizio precedente attributo numero (per indicare a numerazione dei paragrafi) in modo tae che i vaora assunto sia da 1 a 10 (compresi). I documento partirà quindi da paragrafo 1 e potrà avere a massimo 10 paragrafi. NOTE: L attributo numero si ottiene come restrizione de tipo sempice xs:integer, usando poi i Facet minincusive e maxincusive per determinare intervao di vaidità Sintassi: <xs:attribute name= " > <xs:simpetype> <xs:restriction base="xs:integer" > <xs:minincusive vaue= "/> <xs:maxincusive vaue= "/> </xs:restriction> </xs:simpetype> </xs:attribute> 75

Esercizio 3): schema.xsd Scrivere un fie.xm in base a questo xm-schema e vaidaro 76

Esercizio 3): fie.xm 77

Esercizio 5) Partire da esercizio precedente e scrivere o schema usando a definizione moduare degi eementi Sintassi: <xs:schema > <xs:compextype name= TipoCompesso > <xs:sequence>.</xs:sequence> </xs:compextype> <xs:simpetype name= TipoSempice > <xs:restriction>.</xs:restriction> </xs:simpetype> <xs:eement name= DocumentoEffettivo > <xs:eement name= Compesso type= TipoCompesso /> <xs:attribute name= Sempice type= TipoSempice /> </xs:eement> </xs:schema> 78

Esercizio 4): schema.xsd Passo 1: definizione moduare dei simpetype usati (numerotype e formatotype) 79

Esercizio 4): schema.xsd Passo 2: definizione moduare dei compextype usati (immaginetype e paragrafotype) Notare che a definizione de documento vero e proprio (articoo) risuta piu chiara e eggibie 80

Esercizio 4): fie.xm NOTA: verificare che i fie.xm de esempio precedente (vaidato in base ao schema scritto in modo NON moduare) si vaido secondo i nuovo schema 81

5) Derivare tipi sempici per unione Partendo da esercizio 4) derivare I tipi sempici con unione Si ricorda a sintassi: <xs:schema > <xs:simpetype name= TipoSempice1 > <xs:restriction>.</xs:restriction> </xs:simpetype> <xs:simpetype> <xs:union> <xs:simpetype> <xs:restriction base= TipoSempice1"/> </xs:simpetype> <xs:simpetype> <xs:restriction base= TipoSempice2"/> </xs:simpetype> </xs:union> </xs:simpetype> 82

Eementi di modeazione e programmazione di contenuti digitai Corso di Laurea Magistrae in Metodoogie informatiche per e discipine umanistiche Ing. Michea Paoucci Department of Systems and Informatics University of Forence Via S. Marta 3, 50139, Firenze, Itay te: +39-055-4796523, fax: +39-055-4796363 Lab: DISIT, Sistemi Distribuiti e Tecnoogie Internet http://www.disit.dsi.unifi.it/ paoucci@dsi.unifi.it http://www.dsi.unifi.it/~nesi, http://www.dsi.unifi.it/~paoucci, http://www.axmedis.org http://mobmed.axmedis.org/ 83