27.06.2014 Views

HTML – XML - XHTML

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!