Cenni Su SGML, HTML, XML SGML (Standard Generalized Markup Language) è il padre di tutti i linguaggi "Markup" – Lo svantaggio è la "pesantezza" dei suoi documenti: HTML (HyperText Markup Language) è a tutti gli effetti un'istanza di SGML. XML (eXtensible Markup Language) nasce come semplificazione dell'SGML e come strumento per la trasmissione di dati insieme alla loro semantica.
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.
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.
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
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.
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.
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.
XML Schema Part 2: Datatypes Forse non esiste ancora alcun parser per la versione corrente del linguaggio, 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, …
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
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.
XMLSchema - Introduzione Esempio preso dalla rete. 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.
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. XML tutorial di esempio per GECO
Definizione: Elemento "studente" Elemento "studente" di tipo "StudentType", struttura dati principale. Occorre definire il nuovo tipo, complesso perché deve contenere elementi ed attributi.
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.
Definizione : AddressType AddressType è un tipo complesso che al suo interno ha tre elementi. Nomevia, cap, citta sono tipi base String o Integer (simile ad un linguaggio di programmazione)
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",
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.
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.
Definizione: Tipo ReportType Dopo i tipi anonimi, possiamo fare una modifica al tipo "StudentType" Dichiariamo l'elemento "pagella" come tipo anonimo.
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.
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".
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, che permette di scegliere tra uno soltanto degli elementi contenuti al suo interno