Definire linguaggi XML XSchema



Documenti analoghi
LA GESTIONE DELLE VISITE CLIENTI VIA WEB

HORIZON SQL PREVENTIVO

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

Scheda operativa Versione rif c00. Libro Inventari

SIFORM MANUALE VOUCHER FORMATIVI A DOMANDA AZIENDALE

Capitolo 4 Pianificazione e Sviluppo di Web Part

GESTIONE SOGGETTI INCARICATI MANUALE UTENTE VERSIONE 1.0

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Presidenza del Consiglio dei Ministri

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

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

extensible Markup Language

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

Cosa è un foglio elettronico

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

GESGOLF SMS ONLINE. Manuale per l utente

Informatica (Basi di Dati)

INSERIMENTO DATI BASILARI

Guida all uso di Java Diagrammi ER

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

Guida Software GestioneSpiaggia.it

Organizzazione degli archivi

SITO DI PUBBLICAZIONE ANNUNCI

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Veneto Lavoro via Ca' Marcello 67/b, Venezia-Mestre tel.: 041/

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Servizio online «Distinta d impostazione Lettere» Istruzioni

Corso sul linguaggio SQL

Mon Ami 3000 Produzione base Produzione articoli con distinta base e calcolo dei fabbisogni

SCENARIO. Personas ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

GUIDA UTENTE PRIMA NOTA SEMPLICE

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

Database. Si ringrazia Marco Bertini per le slides

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Guida alla redazione del Fascicolo XBRL

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

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

Cliens Gestione Studio Legale Modifica dei Reports

Gestore Comunicazioni Obbligatorie - VARDATORI - Progetto SINTESI Dominio Provinciale Modulo Applicativo:COB Procedura VARDATORI

Progettare una base di dati che permetta di gestire il problema descritto nel seguito, nei seguenti punti:

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

ASSEGNAZIONE FABBISOGNO

Raggruppamenti Conti Movimenti

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

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

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Creare una nuova spedizione personalizzata.

SCRUTINIO ON LINE 2 PERIODO

NAVIGAORA HOTSPOT. Manuale utente per la configurazione

2. LOGIN E RECUPERO DATI DI ACCESSO

GUIDA PER IL DOCENTE ALL UTILIZZO DELL APPLICATIVO ONLINE E PORTFOLIO

sistemapiemonte GECO GEstione on line Comunicazioni Obbligatorie Anagrafica azienda Manuale d'uso sistemapiemonte.it

INTRODUZIONE PRIMO ACCESSO

EXPLOit Content Management Data Base per documenti SGML/XML

Progettaz. e sviluppo Data Base

Gestione Turni. Introduzione

ALBO PRETORIO WEB MANUALE DELLA PROCEDURA SOMMARIO. Uso del manuale. Informazioni generali. Interfaccia grafica. Guida di riferimento

Corso di Sistemi di Elaborazione delle informazioni

DENUNCE EDILCONNECT GUIDA COMPILAZIONE

Esercizio data base "Biblioteca"

Vincoli di integrità

Manuale Utente SIRECO

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

19. LA PROGRAMMAZIONE LATO SERVER

il servizio web per le comunicazioni scuola famiglia Descrizione generale del prodotto

Esercitazione di Basi di Dati

File XML il futuro dei file di interscambio dati

Standard Nazionale di Comunicazione Mercato Gas

Guida alla compilazione on-line delle domande di Dote Scuola A.S per le Famiglie INDICE

DATABASE. A cura di Massimiliano Buschi

Istruzioni Iscrizione Portale Stage e Placement per L Azienda

I.N.A.I.L. Certificati Medici via Internet. Manuale utente

Sgravi Contrattazione di Secondo Livello: dettaglio dei Controlli, dei Formati e dei messaggi di errore.

Corso di Amministrazione di Reti A.A. 2002/2003

Database 1 biblioteca universitaria. Testo del quesito

GCEWEB Denunce mensili in WEB

Corso sul linguaggio SQL

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE

La rubrica degli indirizzi di posta elettronica associati al dominio scuole.piemonte.it

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

Maschere. Microsoft Access. Maschere. Maschere. Maschere. Aprire una maschere. In visualizzazione foglio dati: Maschere

Guida alla compilazione on-line delle domande di Dote Scuola A.S componente Merito INDICE

Il database management system Access

MAGAZZINO FISCALE (agg. alla rel )

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Progettazione : Design Pattern Creazionali

Progettazione di Database. Un Esempio

YOUTUBE: UN CANALE PER LA PARTECIPAZIONE

Facoltà di Farmacia - Corso di Informatica

Transcript:

Definire linguaggi XML XSchema 1 XMLSchema: cos'è e a cosa serve Scambio di informazioni/dati deve essere trattato in modo automatico I documenti XML usati da più partner devono avere la stessa struttura Attraverso le DTD è possibile garantire questa coerenza MA le DTD hanno una propria sintassi particolare che bisogna imparare e non sono molto flessibili. 2

XMLSchema a cosa serve Uno strumento più semplice è XMLSchema. Un documento XMLSchema associato a un documento XML svolge la stessa funzione di una DTD. l'xml può essere validato con il documento XSchema, XMLSchema offre strumenti completi ad esempio il range di valori di ogni campo. Un altro vantaggio dei documenti XMLSchema è che sono scritti in XML stesso. 3 XMLSchema Per capire Pensiamo ai documenti XML come contenitori di dati I linguaggi di programmazione ad oggetti permettono di definire classi con determinate proprietà Un oggetto istanza di una classe avrà dei valori per certe proprietà e il sistema controllerà che i valori e i tipi siano corretti In Xschema avviene una cosa analoga 4

XMLSchema - Per capire Un documento XML contiene elementi, i quali a loro volta contengono attributi, testo o altri elementi; La definizione di regole su struttura sui tipi e sui vincoli è analoga alla definizione di una classe per un linguaggio ad oggetti (es. JAVA), Il documento XML può essere pensato quindi come un oggetto istanza della classe oggetto istanza 5 XMLSchema: definizione formale Esistono due versioni di XMLSchema : World Wide Web Consortium (W3C) e Microsoft, XDRSchema. Nel 2001 lo Schema W3C è stato accettato come standard; XDRSchema di Microsoft ha struttura e regole analoghe. XML Schema Part 0: Primer e XML Schema Part 1: Structures contengono la descrizione completa e sistematica dello strumento il primo documento in modo più discorsivo e con molti esempi, il secondo in modo più formale. 6

XML Schema Part 2: Datatypes L'elenco dei tipi di dati predefiniti in XMLSchema. XMLSchema Definisce le regole per scrivere in modo corretto un documento, E utile anche per ricavare un modello formale del documento, Dopo, un apposito parser, può effettuare la validazione di documenti XML basati sullo stesso modello formale. 7 XML Schema Part 2: Datatypes W3C sta lavorando sul passaggio a un modello formale (XML Schema: Formal Description ) Fioriscono anche molte tecniche, parallele o alternative allo Schema, per validare documenti XML Schematron, TREX, RELAX, 8

Attuali applicazioni di XMLSchema Aziende che pubblicano in XML, in modo che clienti o partners commerciali possano usarli, Esistono anche proposte "no-profit", che nascono tipicamente in ambito universitario NOTA: C'è ancora una netta predominanza di DTD Xschema è promettente per il futuro ma è in fase di "promozione La versione più utilizzata è XDRSchema di Microsoft 9 Applicazioni future di XMLSchema Esempio importante è la cartella clinica elettronica; Dovrebbe garantire al paziente continuità di cura Se un medico, in America, deve soccorrere un turista infortunato, potrà disporre dell'intera storia clinica del paziente; La cartella clinica elettronica ottimale è un oggetto complesso Dovrebbe contenere anche i vari protocolli di cura per ciascuna patologia e informazioni sul loro costo, tra le altre cose. 10

XMLSchema - Introduzione Vogliamo dare accesso ai genitori sul rendimento scolastico dei figli via rete. Scambiare dati attraverso documenti XML. Occorre definire la struttura. Consideriamo il prospetto dei voti per tre materie e non consideriamo alcuni vincoli. 11 Lo sviluppo di un esempio Bisogna inserire l'intestazione del documento, dove viene specificato il namespace, Direttamente riferimento alla descrizione di tipi semplici e complessi presenti sul sito della W3C In annotation vanno ad esempio i commenti. <xsd:schema xmlns:xsd= "http://www.w3.org/2001/xmlschema"> <xsd:annotation> <xsd:documentation xml:lang="it"> XML tutorial di esempio per GECO </xsd:documentation> </xsd:annotation> 12

Definizione: Elemento "studente" Elemento "studente" di tipo "StudentType", struttura dati principale. Occorre definire il nuovo tipo, complesso perché deve contenere elementi ed attributi. <xsd:element name="studente" type="studenttype"/> <xsd:complextype name="studenttype"> <xsd:sequence> <xsd:element name="cognome" type="xsd:string"/> <xsd:element name="nome" type="xsd:string"/> <xsd:element name="sesso" type="sextype"/> <xsd:element name="indirizzo" type="addresstype"/> <xsd:element name="classe" type="classtype"/> <xsd:element name="pagella" type="reporttype"/> </xsd:sequence> <xsd:attribute name="matricola" type="xsd:integer"/> </xsd:complextype> 13 Studente: Spiegazione Gli elementi "nome" e "cognome" sono due stringhe, tipi base. Gli altri campi devono essere definiti. Il tag "sequence" indica che il tipo "StudentType" è composto da più elementi, mentre nella penultima riga viene inserito un attributo all'interno del tag di un oggetto "StudentType". Mentre tutti gli altri tag vanno aperti e chiusi, per un elemento o un attributo il tag di chiusura viene sostituito da un "/" dopo la dichiarazione del tipo. 14

Definizione : AddressType AddressType è un tipo complesso che al suo interno ha tre elementi. <xsd:complextype name="addresstype"> <xsd:sequence> <xsd:element name="nomevia" type="xsd:string"/> <xsd:element name="cap" type="xsd:integer"/> <xsd:element name="citta" type="xsd:string"/> </xsd:sequence> </xsd:complextype> Nomevia, cap, citta sono tipi base String o Integer (simile ad un linguaggio di programmazione) 15 Definizione: "SexType" "SexType" con vincoli interni Tali vincoli restringono il campo dei valori di un tipo di base tramite il tag "restriction". I valori che possono essere assunti da un elemento di tipo "SexType" vengono elencati tramite il tag "enumeration", <xsd:simpletype name ="SexType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="m"/> <xsd:enumeration value="f"/> </xsd:restriction> </xsd:simpletype> 16

Definizione: "ClassType" Per "ClassType" viene specificata la struttura che può essere assunta da un elemento di questo tipo. Un elemento di tipo "ClassType" deve essere composto da un numero seguito da una lettera maiuscola. I tipi sono dichiarati semplici quando al loro interno non sono presenti nè elementi nè attributi. 17 Elemento di tipo classtype <xsd:simpletype name="classtype"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{1}-[a-z]{1}"/> </xsd:restriction> <xsd:attribute name="sperimentazione"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:enumeration value="bilingue"/> <xsd:enumeration value="brocca"/> <xsd:enumeration value="p.n.i."/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> </xsd:simpletype> 18

ClassType: Note ulteriori All'interno di "ClassType", inoltre, viene aggiunto un attributo che ci permette di introdurre un altro concetto: "tipo anonimo". Il tipo dell'attributo "sperimentazione" non viene dichiarato all'interno del tag, Viene definito dopo la chiusura del tag con un tipo semplice. Si può fare in questo modo solo se nessun altro elemento utilizza lo stesso tipo. Nota: così è necessario specificare il tag di chiusura per l attributo. 19 Definizione: Tipo ReportType Dopo i tipi anonimi, possiamo fare una modifica al tipo "StudentType" Dichiariamo l'elemento "pagella" come tipo anonimo. <xsd:element name="pagella"> <xsd:complextype mixed="true"> <xsd:sequence> <xsd:element name="matematica" type="listofmarks"/> <xsd:element name="italiano" type="listofmarks"/> <xsd:element name="edmusicale" type="listofmarks"/> </xsd:sequence> </xsd:complextype> </xsd:element> 20

Definizione: ComplexType MIXED Definire un complextype mixed permette di inserire del testo libero, fuori dai tag degli elementi, Per i tipi degli elementi di pagella, le restrizioni riguardano i valori assunti dall'elemento voto, e "ListOfMarks" è definito come una lista di voti. <xsd:simpletype name="voto"> <xsd:restriction base="xsd:decimal"> <xsd:minexclusive value="0"/> <xsd:maxinclusive value="10"/> </xsd:restriction> </xsd:simpletype> <xsd:simpletype name="listofmarks"> <xsd:list itemtype="voto"/> </xsd:simpletype> 21 Come Estendere di un TIPO Se si può accedere al database della scuola si possono avere informazioni su studenti già diplomati. Per sfruttare il lavoro fatto, è possibile estendere il tipo studenttype aggiungendo un elemento "votodiploma". <xsd:complextype name="graduatedstudent"> <xsd:extension base="studenttype"> <xsd:element name="voto_diploma type= xsd:integer"/> </xsd:extension> </xsd:complextype> 22

Note ulteriori Si potrebbe effettuare una restrizione sul nuovo tipo per eliminare i campi riguardanti i voti delle varie materie che ora risultano superflui. Si presenta però il problema di permettere in un documento XML la presenza di uno solo tra questi due tipi. Per far questo si usa il tag <choice>, che permette di scegliere tra uno soltanto degli elementi contenuti al suo interno 23