HTML – XML - XHTML
HTML – XML - XHTML Prof. Mauro Giacomini Anno Accademico: 2013-2014
- Page 2 and 3: HTML-XML Le origini SGML Structured
- Page 4 and 5: HTML - Esempio Struttura ::: Es
- Page 6 and 7: HTML - Introduzione …. Questa cop
- Page 8 and 9: HTML - Introduzione Le tabelle Le t
- Page 10 and 11: HTML - Introduzione Il contenuto de
- Page 12 and 13: HTML in .NET Motore ASP.NET Browser
- Page 14 and 15: HTML - XML Confronto HTML è un lin
- Page 16 and 17: XML Introduzione • Linguaggio med
- Page 18 and 19: XML - Esempio La dichiarazione XML
- Page 20 and 21: XML - Introduzione Alla base della
- Page 22 and 23: XML - Introduzione SINTASSI degli E
- Page 24 and 25: XML - Introduzione ATTRIBUTI • Gl
- Page 26 and 27: XML - Introduzione Schemi XML (XSD
- Page 28 and 29: XML - Introduzione Esempio di schem
- Page 30 and 31: XML - Introduzione Nel caso in cui
- Page 32 and 33: XML - Introduzione Cosa forniscono
- Page 34 and 35: HTML-XML in .NET TCP-IP ASP.NET App
- Page 36 and 37: XML - HL7 Applicazioni XML(HL7) - S
- Page 38 and 39: HL7 nasce per standardizzare tale l
- Page 40 and 41: Come funziona HL7? HL7 opera nella
- Page 42 and 43: I domini HL7 • Un dominio è un m
- Page 44 and 45: Le sei classi strutturali 1) 2) 3)
<strong>HTML</strong> <strong>–</strong> <strong>XML</strong> - X<strong>HTML</strong><br />
Prof. Mauro Giacomini<br />
Anno Accademico: 2013-2014
<strong>HTML</strong>-<strong>XML</strong> Le origini<br />
SGML<br />
Structured Generalized<br />
Markup Language<br />
<strong>XML</strong><br />
eXtensible<br />
Markup Language<br />
<strong>HTML</strong><br />
HyperText Markup Language<br />
X<strong>HTML</strong><br />
eXtensible HyperText<br />
Markup Language<br />
HL7<br />
Heath Level 7<br />
SOAP<br />
HyperText Markup Language<br />
2/45
<strong>HTML</strong> - Introduzione<br />
Un documento <strong>HTML</strong> è strutturato in due parti<br />
fondamentali: l'intestazione e il corpo del documento.<br />
Il corpo del documento contiene tutti gli elementi della pagina:<br />
il testo, le immagini, le applet Java, il codice Javascript e<br />
quant'altro viene materialmente visualizzato dal browser.<br />
L'intestazione contiene una serie di informazioni necessarie al<br />
browser per una corretta interpretazione del documento, ma non<br />
visualizzate all'interno dello stesso.<br />
3/45
<strong>HTML</strong> <strong>–</strong> Esempio Struttura<br />
<br />
<br />
<br />
::: Esempio di pagina <strong>HTML</strong> ::: <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
4/45
<strong>HTML</strong> - Introduzione<br />
<br />
Informa il server Web sulla natura di ciò che si sta trattando,<br />
in fase di avvio del documento; a sua volta il server informa il<br />
browser sui tipi di tag che si aspetta di ricevere.<br />
<br />
Idstring è la specifica per la versione di <strong>HTML</strong> utilizzata nel<br />
documento, dall’esempio precedente:<br />
“<strong>HTML</strong> PUBLIC -//IETF//DTD <strong>HTML</strong> 4.01 Transitional//EN"<br />
•<strong>HTML</strong> PUBLIC: il documento è pubblico<br />
•IETF: il tipo di <strong>HTML</strong> pubblico è gestito dalla Internet<br />
Engineering Task Force<br />
•DTD <strong>HTML</strong> 4.01: la versione di <strong>HTML</strong> supportata è la 4.01<br />
•EN: la lingua del documento è l'inglese<br />
5/45
<strong>HTML</strong> - Introduzione<br />
….<br />
Questa coppia di tag contrassegna l’inizio e la fine vera e propria del file<br />
….<br />
La coppia di HEAD include l’intestazione del documento,<br />
Contiene quindi i tag per la definizione del titolo della pagina:<br />
titolo pagina <br />
E delle parole chiave che descrivono sinteticamente il contenuto<br />
di una pagina Web, utili ai motori di ricerca per classificare il<br />
documento senza doverlo prelevare completamente.<br />
<strong>HTML</strong> - Introduzione<br />
….<br />
La coppia di marcatori indica che tutte le informazioni<br />
contenute tra il marcatore di apertura ed il corrispondente marcatore<br />
di chiusura fanno parte del corpo principale del documento.<br />
Gli elementi più interessanti contenuti all’interno del corpo<br />
del documento sono:<br />
Il Collegamento ipertestuale<br />
Le Immagini<br />
link a Medinfo <br />
http:// - ftp:// - mailto: - telnet://<br />
<br />
7/45
<strong>HTML</strong> - Introduzione<br />
Le tabelle<br />
Le tabelle sono uno strumento molto potente per impaginare elementi<br />
testuali/numerici, ma anche grafici.Le tabelle sono state introdotte<br />
con la seconda versione del linguaggio <strong>HTML</strong> e da allora sono state<br />
aggiunte molte caratteristiche che ne hanno potenziato ulteriormente<br />
le possibilità, soprattutto in campo grafico.<br />
<br />
<br />
Luca<br />
Rossi<br />
<br />
<br />
Marta<br />
Bianchi<br />
<br />
<br />
8/45
<strong>HTML</strong> - Introduzione<br />
Le Form<br />
Elementi che permettono agli utenti di interagire con il<br />
server che fornisce il servizio Web. La creazione di un<br />
modulo è un processo in due fasi:<br />
1- riguarda il modulo stesso,ed è un insieme di tag e di<br />
attributi contenuti entro una coppia di elementi<br />
.<br />
2- riguarda la creazione di script (o classi con linguaggi<br />
di programmazione veri e propri) che “girano”sul<br />
server (CGI,VBscript,C#…) per gestire i contenuti del<br />
modulo.<br />
9/45
<strong>HTML</strong> - Introduzione<br />
Il contenuto del tag <br />
Gli elementi da utilizzare all’interno di un modulo sono<br />
semplici. Il tag di base per la definizione di ciascun<br />
elemento è INPUT. La sintassi è:<br />
<br />
Tipo elemento definisce come appare sullo schermo il campo di<br />
input<br />
Nome campo assegna una parola chiave al campo che è<br />
utilizzato per fare riferimento al suo valore all’interno dello script.<br />
10/45
<strong>HTML</strong> - Introduzione<br />
Gli otto tipi dell’elemento input<br />
TEXT <strong>–</strong> Campo di testo di una riga<br />
PASSWORD <strong>–</strong> Campo di testo di una<br />
riga dove l’input è nascosto da asterischi.<br />
HIDDEN <strong>–</strong> Campo di testo di una riga<br />
non visualizzato ma inviato allo script.<br />
RADIO - Uno o più pulsanti di opzione<br />
raggruppati insieme<br />
CHECKBOX <strong>–</strong> Scelta Sì/No<br />
SUBMIT <strong>–</strong> Pulsante per l’invio di<br />
documenti<br />
RESET <strong>–</strong> Pulsante per ripristinare i<br />
contenuti del modulo ai valori di default<br />
IMAGE <strong>–</strong> Immagine su cui fare clic al<br />
posto del pulsante di invio.<br />
11/45
<strong>HTML</strong> in .NET<br />
Motore<br />
ASP.NET<br />
Browser del<br />
client remoto<br />
Richiesta Web<br />
Pagina di<br />
Output <strong>HTML</strong><br />
IIS<br />
Elaborazione<br />
della pagina<br />
Pagina<br />
ASPX<br />
• I normali file <strong>HTML</strong> vengono inviati direttamente al browser<br />
• I file ASPX invece vengono prima elaborati dal servizio ASPX<br />
il quale provvederà a creare uno stream <strong>HTML</strong> con il risultato<br />
finale dell’elaborazione e IIS invierà questo file al client<br />
12/45
<strong>HTML</strong> in .NET<br />
Struttura di una pagina .ASPX<br />
Presenta una struttura molto simile a quella di una<br />
semplice pagina <strong>HTML</strong>, vengono introdotti inoltre dei<br />
particolari tag dichiarati secondo lo schema:<br />
<br />
Questi tag costituiscono la parte principale<br />
dell’interfaccia dell’applicazione ASP.NET.<br />
L’identificatore di questi elementi, chiamati Controlli,<br />
vengono programmati come un oggetto ma non<br />
corrispondono necessariamente a un unico tag nella<br />
pagina <strong>HTML</strong> finale.<br />
13/45
<strong>HTML</strong> <strong>–</strong> <strong>XML</strong> Confronto<br />
<strong>HTML</strong> è un linguaggio di contrassegno semplice progettato<br />
per documenti dalla struttura abbastanza prevedibile.<br />
Le estensioni visuali <strong>HTML</strong> consentono di emulare la<br />
struttura di un qualsiasi documento;<br />
La struttura interna del testo diviene inevitabilmente<br />
illogica, orientata esclusivamente alla presentazione.<br />
<strong>HTML</strong> non permette il riutilizzo futuro dei documenti,<br />
risulta difficile convertire i documenti in altri formati<br />
orientati alla visualizzazione o isolare gli elementi logici<br />
14/45
<strong>XML</strong> Introduzione<br />
In senso stretto <strong>XML</strong> non è un linguaggio di contrassegno , è<br />
un sistema che rende possibile la costruzione di linguaggi in<br />
grado di corrispondere a qualsiasi tipo di documento<br />
•Linguaggio markup testuale<br />
•Versione semplificata di SGML (Standard Generalized Markup<br />
Language), linguaggio usato per gestione documenti.<br />
•Standard W3C (WWW Consortium: http://www.w3.org) per<br />
rappresentazione di documenti e dati, e scambio di dati nel Web<br />
•Alcuni obbiettivi di design di <strong>XML</strong>:<br />
•direttamente utilizzabile su internet<br />
•supportare ampia gamma di applicazioni<br />
•compatibili con SGML<br />
•human-readable<br />
•facilmente processabile da programmi<br />
15/45
<strong>XML</strong> Introduzione<br />
• Linguaggio mediante cui si possono definire altri linguaggi<br />
(WSDL,SOAP,HL7…)<br />
• Estensibile<br />
permette la creazione di nuovi tag (non necessariamente legati a<br />
visualizzazione di informazioni)<br />
• Strutturato<br />
mediante tag si può rappresentare la struttura delle informazioni<br />
• Validante<br />
permette definizione di regole grammaticali per verifica di<br />
correttezza sintattica di informazioni rappresentate in <strong>XML</strong> (DTD o<br />
<strong>XML</strong>Schema)<br />
16/45
<strong>XML</strong> - Esempio<br />
17/45
<strong>XML</strong> - Esempio<br />
La dichiarazione <strong>XML</strong> è obbligatoria e deve essere posta<br />
all’immediato inizio del documento<br />
<br />
Gli attributi sono:<br />
version: (obbligatorio) la versione di <strong>XML</strong> usata.<br />
encoding: (opzionale) nome della codifica dei caratteri<br />
usata nel documento. (default: UTF-8 o 16)<br />
standalone: (opzionale) se vale yes indica che il file non fa<br />
riferimento ad altri file esterni. (default: no)<br />
18/45
<strong>XML</strong> - Introduzione<br />
COMMENTI<br />
I commenti sono utili agli esseri umani, e vengono<br />
ignorati dai parser <strong>XML</strong>. Possono apparire ovunque<br />
tranne che all’interno degli attributi.<br />
<br />
Il commento si apre con un ,che<br />
quindi non può apparire nella stringa interna. Il contenuto<br />
non deve seguire regole, e può anche contenere caratteri<br />
riservati.<br />
19/45
<strong>XML</strong> - Introduzione<br />
Alla base della strutturazione di un documento <strong>XML</strong> ci<br />
sono gli Elementi<br />
Elemento<br />
esame<br />
Elemento<br />
indirizzo<br />
Elemento<br />
datiAnagrafici<br />
20/45
<strong>XML</strong> - Introduzione<br />
REGOLE<br />
• I nomi degli elementi sono case-sensitive.<br />
• Ogni elemento aperto deve essere chiuso entro la fine<br />
del documento.<br />
• Gli elementi possono essere nidificati, e in tal caso<br />
vanno chiusi esattamente nell’ordine inverso a quello di<br />
apertura.<br />
• Un documento <strong>XML</strong> deve avere un unico elemento<br />
radice, in cui tutti gli altri sono nidificati<br />
21/45
<strong>XML</strong> - Introduzione<br />
SINTASSI degli ELEMENTI<br />
• Il tag di apertura di un elemento deve avere la forma:<br />
<br />
•nome: nome dell’elemento<br />
•attributi: si può definire una lista di attributi opzionali<br />
• Il tag di chiusura corrispondente ha la forma:<br />
<br />
• Talvolta un elemento può essere privo di contenuto, in questo caso<br />
si può omettere il tag di chiusura scrivendo quello di apertura come<br />
segue:<br />
<br />
22/45
<strong>XML</strong> - Introduzione<br />
GERARCHIA<br />
• Gli elementi, nidificandosi, creano la struttura ad albero tipica dei<br />
documenti <strong>XML</strong>. Si definiscono quindi rapporti di parentela:<br />
Esame: nodo radice<br />
datiAnagrafici: nodo figlio di Esame<br />
indirizzo: nodo padre di via,…<br />
Cap,citta,cognome,datiAnagrafici…<br />
Sono discendenti di Esame<br />
23/45
<strong>XML</strong> - Introduzione<br />
ATTRIBUTI<br />
• Gli attributi permettono di specificare proprietà degli elementi come<br />
coppie nome-valore<br />
• Sono usati per definire proprietà che non possono o non si vogliono<br />
inserire nel contenuto dell’elemento.<br />
• Vengono specificati all’interno del tag di apertura degli elementi<br />
• A differenza di quanto succede per gli elementi, l’ordine di<br />
presentazione non è significativo<br />
24/45
<strong>XML</strong> - Introduzione<br />
VALIDAZIONE DI DOCUMENTI <strong>XML</strong><br />
• Un documento <strong>XML</strong> è ben formato se rispetta le regole<br />
generali di sintassi viste nella parte precedente.<br />
• Un documento <strong>XML</strong> è valido se è ben formato e<br />
rispetta le regole sintattiche e semantiche contenute<br />
nel file XSD (o DTD) associato.<br />
Un documento senza XSD (o DTD) non è mai valido.<br />
25/45
<strong>XML</strong> - Introduzione<br />
Schemi <strong>XML</strong> (XSD - <strong>XML</strong> schema Definition)<br />
Gli Schemi <strong>XML</strong> sono nati con lo stesso scopo dei<br />
DTD:<br />
• Specificare la struttura dei documenti.<br />
• Modelli di contenuto, elementi radice, …<br />
• Specificare il tipo dei dati utilizzabili<br />
all’interno di elementi e attributi.<br />
26/45
<strong>XML</strong> - Introduzione<br />
Schemi <strong>XML</strong> (XSD - <strong>XML</strong> schema Definition)<br />
• Più recenti di DTD, specifica grammatica per la<br />
rappresentazione di documenti <strong>XML</strong><br />
• Permettono la definizione della struttura<br />
suddividendoli in:<br />
- tipi semplici (predefiniti e derivati)<br />
-tipi complessi (definiti combinando tipi semplici)<br />
• Permettono di specificare elementi del documento<br />
necessari,opzionali… in un file .xsd<br />
• Supportano 44 tipi di dato<br />
27/45
<strong>XML</strong> - Introduzione<br />
Esempio di schema <strong>XML</strong><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<strong>XML</strong> - Introduzione<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
29/45
<strong>XML</strong> - Introduzione<br />
Nel caso in cui si decida di validare un documento <strong>XML</strong><br />
secondo uno schema definito in un file .XSD è necessario<br />
introdurre un nuovo tag nell’intestazione del documento<br />
30/45
<strong>XML</strong> - Introduzione<br />
schema <strong>XML</strong><br />
• Generalmente, le applicazioni che devono basarsi su<br />
documenti o dati provenienti dall’esterno “sprecano”<br />
una grossa quantità di codice per controllarne la<br />
validità.<br />
• Più complessi sono i dati, più il codice sarà laborioso da<br />
scrivere.<br />
• Se i dati sono strutturati secondo un preciso Schema<br />
<strong>XML</strong>, l’applicazione potrà avvalersi delle funzionalità di<br />
un qualsiasi validatore di schemi in commercio.<br />
31/45
<strong>XML</strong> - Introduzione<br />
Cosa forniscono gli Schemi<br />
Un modello per i dati<br />
• Descrivono cioè l’organizzazione e i tipi<br />
dell’informazione.<br />
Un contratto<br />
• Cioè un protocollo molto specifico per lo scambio di<br />
informazioni.<br />
Un insieme di Metadati<br />
• Lo schema contiene molte informazioni valide per<br />
l’interpretazione dei dati strutturati sulla sua base.<br />
32/45
<strong>XML</strong> - Introduzione<br />
Possibili impieghi di Schemi<br />
Oltre che per validare i documenti istanza, si possono<br />
immaginare molti altri impieghi per gli schemi:<br />
• Creazione automatica di interfacce per la<br />
compilazione dei documenti <strong>XML</strong> associati.<br />
• Creazione di interfacce grafiche per la<br />
rappresentazione dei dati.<br />
• Uso degli schemi per definire strutture dati e<br />
protocolli per la loro manipolazione e<br />
trasmissione.<br />
33/45
<strong>HTML</strong>-<strong>XML</strong> in .NET<br />
TCP-IP<br />
ASP.NET<br />
Applicazioni<br />
Web<br />
<strong>HTML</strong>,X<strong>HTML</strong><br />
Browser<br />
<strong>XML</strong><br />
ADO.NET<br />
RDBMS<br />
Web<br />
Services<br />
SOAP<br />
Browser<br />
Applicazioni<br />
Desktop<br />
Altre applicazioni<br />
o web services client<br />
34/45
<strong>XML</strong> <strong>–</strong> HL7<br />
Applicazioni <strong>XML</strong>(HL7) <strong>–</strong> Sistemi Informativi Ospedalieri<br />
Fino ad oggi la difficoltà di pervenire ad una condivisione di<br />
informazione clinica attraverso basi di dati eterogenee e’ stata<br />
grande, a causa della diversità di piattaforme software , di struttura<br />
dei database e di connessione fra i vari luoghi di deposito dei dati.<br />
L’utilizzo dello strumento Internet basato su <strong>HTML</strong> non e’ sufficiente a<br />
risolvere il problema del trasferimento di informazione clinica e della<br />
formazione e consultazione del cosiddetto Electronic Medical Record<br />
(EMR).<br />
35/45
<strong>XML</strong> <strong>–</strong> HL7<br />
Applicazioni <strong>XML</strong>(HL7) <strong>–</strong> Sistemi Informativi Ospedalieri<br />
L’adozione di <strong>XML</strong> è in grado di risolvere questo problema,<br />
pervenendo ad una standardizzazione non del formato dei dati ma<br />
del formato di scambio delle informazioni.<br />
Ogni ambiente medico può creare il proprio vocabolario attraverso<br />
uno Schema <strong>XML</strong> che specifica la struttura ed il formato di ciascun<br />
tipo di dato.<br />
Lo sforzo di standardizzazione dello scambio di documenti ha<br />
portato alla creazione di insiemi di specifiche, fino<br />
all’approvazione di HL7 (Health Level 7).<br />
36/45
Perché nasce HL7?<br />
…il primo passo per scambiare informazioni tra reparti è stato<br />
usare la comunicazione elettronica…<br />
010010010011101<br />
Sistema Informativo 1<br />
Sistema Informativo 2<br />
…ma ognuno usava un “linguaggio” elettronico diverso!<br />
37/45
HL7 nasce per standardizzare tale linguaggio!<br />
HL7<br />
Messaggio<br />
Creazione<br />
Messaggio HL7<br />
Parsing Messaggio<br />
HL7<br />
38/45
Cos’è HL7?<br />
Descrive le modalità per lo scambio in forma<br />
elettronica di dati in ambiente sanitario.<br />
Intende risolvere i problemi legati<br />
all'interoperabilità nell'ambiente clinico.<br />
HL7 Mission statement (1997):<br />
“To provide standards for the exchange, management<br />
and integration of data that supports clinical patient care and the<br />
management, delivery and evaluation of healthcare services.”<br />
39/45
Come funziona HL7?<br />
HL7 opera nella comunicazione al livello più alto del<br />
modello ISO/OSI<br />
Function<br />
7 Application<br />
6 Presentation<br />
5 Session<br />
4 Transport<br />
3 Network<br />
2 Data Link<br />
1 Physical<br />
40/45
Come funziona HL7?<br />
- Quindi la dizione “Level 7” fa riferimento proprio al<br />
livello più alto del modello OSI (Open System<br />
Interconnection)<br />
- Ciò significa che fa riferimento a regole come:<br />
- i dati scambiati<br />
- la tempistica degli scambi<br />
- la comunicazione di errori fra le applicazioni<br />
- Ciò significa che NON fa riferimento agli aspetti<br />
implementativi !<br />
41/45
I domini HL7<br />
• Un dominio è un modo per rappresentare una specifica area della sanità. Il<br />
nome del dominio deve trasmettere chiaramente alcune informazioni sia allo<br />
sviluppatore sia al lettore.<br />
Per esempio, Patient Administration e Pharmacy sono semplici concetti da cui<br />
il lettore può facilmente comprendere di cosa tratti il dominio in analisi.<br />
• Un topic è una suddivisione di dominio che permette di organizzare il<br />
dominio in modo da consentire al lettore di identificare velocemente il<br />
contesto a cui è interessato.<br />
Il lettore deve avere un’idea chiara del contenuto del documento guardando il<br />
titolo del topic e quello del dominio.<br />
Per esempio il Patient Administration (dominio) <strong>–</strong> Patient Topic (topic)<br />
consente di standardizzare tutti i dati relativi ad un paziente.<br />
Ad ogni dominio HL7 è associato un diagramma (RIM) e un file XSD (<strong>XML</strong><br />
Schema).<br />
42/45
Patient Administration <strong>–</strong> Patient Topic<br />
43/45
Le sei classi strutturali<br />
1) 2)<br />
3) 4)<br />
5)<br />
44/45
RIFERIMENTI<br />
Specifica di <strong>XML</strong> dal W3C<br />
http://www.w3c.org/TR/<strong>XML</strong><br />
Specifica di <strong>XML</strong> schema dal W3C<br />
http://www.w3c.org/TR/xmlschema-0<br />
http://www.w3c.org/TR/xmlschema-1<br />
Specifica di HL7<br />
http://www.hl7.org/<br />
45/45