HTML 1
Autorità Informatica per la Pubblica Amministrazione
“Linguaggio HTML e server Web”“Linguaggio HTML e server Web”
HTML 2
Obiettivi del corso
• Conoscere i linguaggi di rete e di marcatura• Saper utilizzare il linguaggio HTML e gli
strumenti di sviluppo per il Web • Conoscere la problematica generale relativa alla
progettazione e all’implementazione di pagine Web e del relativo server
• Realizzare, implementare e amministrare server Web utilizzando le più attuali tecniche/tecnologie
HTML 3
Descrizione materiale allievo
Il materiale didattico previsto nel modulo didattico SSD si riferisce ai seguenti temi:
TEMA SUPPORTO
Il Web Ipertesto su CD-Rom e slide
I linguaggi di marcatura Slide
Il Linguaggio Html Ipertesto su CD-Rom e slide
Server Web Ipertesto su CD-Rom
Java Ipertesto su CD-Rom e slide
Applicazioni in rete Ipertesto su CD-Rom e slide
Dhtml e JavaScript Ipertesto su CD-Rom e slide
Linguaggi avanzati di marcatura Slide
HTML 4
Indice
• Pagina lasciata intenzionalmente vuota.
HTML 5
Indice
• Pagina lasciata intenzionalmente vuota.
HTML 6
Programma del corso: 1° giorno
• Il Word Wide Web– Generalità, sicurezza, prestazioni
– Servizi, File Transfer Protocol
• Linguaggi di marcatura• Il linguaggio ipertestuale HTML
– Scopi del linguaggio
– Generalità
– Struttura di una pagina HTML e sintassi del linguaggio
– Intestazione e corpo di una pagina
– La sintassi di HTML
– I marcatori principali
– Il linguaggio HTML e la compatibilità con i browser; editor HTML
– Inserimento di oggetti non testuali
– Immagini, Immagini animate, Mappe, Audio,Video, Frame, META tag
HTML 7
Programma del corso: 2° giorno
• Elementi avanzati del linguaggio HTML– Gli stili (CSS) in linea, incorporati, esterni
– Moduli
– L'utilizzo degli stili
– Plug-in, ActiveX
• Realizzazione e gestione di un server Web– Organizzazione logica e organizzazione delle pagine
– Gli indici
– I collegamenti
– Pubblicazione di dati
• Introduzione al linguaggio Java– Caratteristiche del linguaggio, Sintassi
– Struttura di un programma
– Il bytecode
HTML 8
Programma del corso: 3° giorno
• Il linguaggio Java– Applet Java e interazioni con HTML
– Java DataBase Connector (JDBC)
• Applicazioni in rete– Common Gateway Interface (CGI)
– Servlet Java
– Java e Remote Method Invocation (RMI)
• DHTML e JavaScript– Document Object Model (DOM)
– Generalità e sintassi di JavaScript
• Linguaggi avanzati di marcatura– eXtensible Markup Language (XML)
– Definizione del tipo di documento (DTD)
– I fogli di stile XSL
– Evoluzione dei linguaggi di marcatura
– Impiego di XML
HTML 9
Orientamento
Il World Wide Web
I linguaggi di marcatura
Il linguaggio ipertestuale HTML
Realizzazione e gestione di un server WEB
Il linguaggio Java
Applicazioni in rete
DHTML e JavaScript
Linguaggi avanzati di marcatura
HTML 10
Il Web
Architettura
Sicurezza
Prestazioni
Servizi
File Transfer Protocol
HTML 11
Il Web, architettura
• WAN
• TCP/IP
• Indirizzi IP
HTML 12
Il Web, i servizi
• WWW
• FTP
• Mailing list
• Usenet
• Conferenze
HTML 13
Il Web, Sicurezza
• Autenticazione
• Controllo dell'accesso
• Integrità
• Confidenzialità.
HTML 14
Il Web, Prestazioni della rete
• xDSL• tx su reti elettriche• Internet 2
HTML 15
Il Web, Prestazioni della rete
HTML 16
FTP, File Transfer Protocol
• E’ un protocollo utilizzato per il trasferimento dei file in Internet;
• Tipicamente viene utilizzato per l’upload.
HTML 17
I programmi FTP, CuteFTP
HTML 18
CuteFTP
HTML 19
Approfondimenti
Internet Societyhttp://www.isoc.org/
Università di Firenze, Viaggio in Internet
http://www.cesit.unifi.it/viaggio/sapere.html
HTML 20
Orientamento
Il World Wide Web
I linguaggi di marcatura
Il linguaggio ipertestuale HTML
Realizzazione e gestione di un server WEB
Il linguaggio Java
Applicazioni in rete
DHTML e JavaScript
Linguaggi avanzati di marcatura
HTML 21
Linguaggi di marcatura
HTMLHTML
VMLVMLVML
MathMLMathML
XMLXML
HTML 22
Metalinguaggio
Cos’èCos’è
Char Char ::= #x9 |#::= #x9 |#xD xD | [#x20| [#x20--#xD7FF] | #xD7FF] | [#xE000[#xE000--##xFFFDxFFFD] | [#x10000] | [#x10000--#x10FFF]#x10FFF]
/*/*Any Unicode characterAny Unicode character, , excluding excluding the the surrogate surrogate blocksblocks, FFFE, and FFFF., FFFE, and FFFF.
Nome ::= (Nome ::= (LetterLetter || '_' |'_' | ':') ':')
HTML 23
Linguaggi di marcatura
<Marcatore><Marcatore>
Stile fisicoStile fisicoStile fisicoStile logicoStile logicoStile logico
HTML 24
SGML
Definisce una sintassi standard per i linguaggi di marcatura
Fornisce i costrutti necessari a specificare i vincoli sintattici tra i marcatori
Definisce una semantica (comportamento del programma che interpreta i marcatori)
HTML 25
Caratteristiche di SGML
< … >
/n
Uso di parametri
Utilizzo di documenti DTD (Document Type Definition) per individuare il tipo di linguaggio di marcatura, definendo i marcatori disponibili e la loro sintassi
Definizione del formato di visualizzazione associato ai marcatori attraverso l’uso di DSSSL (Document Style Semantics and Specification Language)
HTML 26
Storia
S. Rice, propone l’ideadi un Catalogo universalee parametrizzato di tag
per la ‘struttura editoriale’
S. Rice, propone l’ideadi un Catalogo universalee parametrizzato di tag
per la ‘struttura editoriale’
Il comitato GCA sviluppa
GenCode ( R ) concept
Codici generici differenti per
documenti di tipo diverso
Il comitato GCA sviluppa
GenCode ( R ) concept
Codici generici differenti per
documenti di tipo diverso
ANSI pubblica il primo
draftdello
standard
ANSI pubblica il primo
draftdello
standard
SGML (Standard
Generalized Markup
Language) diventa
standard ISO 8879
SGML (Standard
Generalized Markup
Language) diventa
standard ISO 8879
ANSI istituisce un comitato per l’elaborazione del testoANSI istituisce un comitato per l’elaborazione del testo
W. Tunnicliffe(Graphic
Communication Association)Separazione
dell’informazionedalla
formattazione
W. Tunnicliffe(Graphic
Communication Association)Separazione
dell’informazionedalla
formattazione
IBM, Charles Goldfarbelabora
GML
IBM, Charles Goldfarbelabora
GML
t1967 1969 1978
Cronologia eventiCronologia eventiCronologia eventi
Fine ‘60 1980 1986
HTML 27
HTML
HHyperyperTText ext MMarkup arkup LLanguageanguage
HTML 28
Ipertesto
Memoria à Biblioteca
Libro scritto à Stampato (stampa a caratteri mobili)
L’uomo e la cultura
TX Orale à TX scritta (10/20 libri) à TX scritta stampa
Nuove modalità di fruizione in accordo con le modalità di apprendimento e di conoscenza dell’uomo (analogiche, con connessioni)
Ponti, sinapsi
Classificazione dei libri, repertori
HTML 29
Ipertesto, Ramelli
LE DIVERSE ET ARTIFICIOSE MACHINE DEL CAPITANO AGOSTINO RAMELLI (1588)
HTML 30
Ipertesto, Memex
1945
HTML 31
Ipertesto, Rizoma
Deleuze & Guattari (1976)
HTML 32
Caratteristiche
Pensiero destro / Pensiero sinistroPensiero destro / Pensiero sinistroPensiero destro / Pensiero sinistro
OttimizzazioneOttimizzazioneOttimizzazione
HTML 33
Limiti di HTML
Impossibilità di essere esteso se non dal comitato W3C che rilascia nuove versioni.
I marcatori HTML consentono solo di specificare la formattazione del documento senza possibilità di riferirsi all’informazione contenuta
HTML 34
Orientamento
Il World Wide Web
I linguaggi di marcatura
Il linguaggio ipertestuale HTML
Realizzazione e gestione di un server WEB
Il linguaggio Java
Applicazioni in rete
DHTML e JavaScript
Linguaggi avanzati di marcatura
HTML 35
Il linguaggio HTML
Ipertesto
Caratteristiche
Marcatori
Oggetti
Stili
Moduli
Plug-in e ActiveX
HTML 36
HTML, caratteristiche generali
•• HHyperTText MMarkup LLanguage– linguaggio di marcatura ipertestuale utilizzato per
definire le caratteristiche di formato di una pagina (o di un sito) Web
• Le pagine HTML sono destinate a essere pubblicate su Internet o comunque ad essere visualizzate anche localmente dai Browser
HTML 37
Come scrivere
• Rigoroso nella scrittura, tollerante nella lettura.
• Indipendenza dell'impaginazione e dei rientri.
• Dialetti HTML
• Spazi collassati
HTML 38
HTML, editor
• La scrittura delle pagine (salvate con estensione .HTML o .HTM può avvenire con diversi programmi:– un semplice editor di testi (es. NotePad) che non
inserisce caratteristiche di formato;– Programmi di Microsoft Office 2000 (es. Word 2000) o
di versioni precedenti dotate di modulo per la scrittura di pagine HTML;
– MS Front Page;– MS Visual InterDev;– Netscape Composer;– …
• Editor WYSIWYG
HTML 39
HTML, editor: MS Front Page 2000
HTML 40
Visualizzazione del codice HTML
HTML 41
• Marcatori (o tag)
<HTML>
</HTML>
I marcatori
HTML 42
Intestazione
• Tra i marcatori di intestazione possono essere inserite le seguenti informazioni:
– Titolo;– Meta Tag;– Elementi di stile;– Script.
HTML 43
Struttura di una pagina HTML
<HEAD><HEAD>
</HEAD></HEAD>
<BODY><BODY>
</BODY></BODY>
<HTML><HTML>
</HTML></HTML>
Intestazione: si definiscono alcune caratteristiche della pagina; in generale le informazioni non sono visualizzate.
Corpo: Racchiude i contenuti della pagina.
HTML 44
Titolo
<TITLE>
Stringa
</TITLE>
HTML 45
La prima pagina
<HTML><HEAD>
<TITLE>Home page di Mario Rossi</TITLE>
</HEAD><BODY>
Testo del corpo</BODY>
</HTML>
HTML 46
I marcatori META
• HTTP-EQUIV
• tag META e cache
• Le Transizioni
• META NAME
HTML 47
Il marcatore META, esempi
<META NAME="keywords”
CONTENT=elenco_parole_chiave>
<META NAME="description”
CONTENT= testo_visualizzato_dal_motore_di_ricerca>
<META http-equiv=m CONTENT="RevealTrans(Duration=n1,Transition=n2)">
HTML 48
META tag e motori di ricerca
Motore di ricerca AltaVista Excite HotBot InfoSeek Lycos
Supporto tag METASì No Sì Sì Parzialm.
Titolo Il contenuto di<TITLE>, altrimenti
"No title"
Il contenuto di<TITLE>, altrimenti
"Untitled"
Il contenuto di<TITLE>, altrimenti
URL
Il contenuto di<TITLE>, altrimentila prima riga della
pagina
Il contenuto di<TITLE>, altrimenti la
prima riga della pagina
Descrizione META tag altrimentiprima riga della
pagina
Frasi raggruppateper argomento
META tag altrimentiprima riga della
pagina
META tag altrimenti primi 200 caratteri
dopo il tag <BODY>
In base al contenuto
Numero risultati visualizzati perpagina (default)
10 10 10 10 10
HTML 49
Il corpo della pagina HTML
• Il marcatore può essere inserito nella sua sintassi più semplice oppure riportare alcuni parametri che determinano il formato degli elementi posti nel corpo della pagina. Nel primo caso si procederà come segue:
<BODY>
…
…
</BODY>
HTML 50
I parametri di <BODY>
• Immagine di sfondo;• colore dello sfondo;• colore del testo;• colore del testo delle parole calde (hot
word).
HTML 51
Indirizzamenti
• Indirizzo assoluto:<BODY BACKGROUND="http://www.chenome.com/immagini/sfondo1.jpg">
• Indirizzo relativo (immagine nella stessa cartella):
<BODY BACKGROUND="sfondo1.jpg">
• Indirizzo relativo (immagine nella sottocartella "immagini"):
<BODY BACKGROUND="immagini/sfondo1.jpg">
HTML 52
I colori
• Colore dello sfondo– BGCOLOR = "#rrggbb”
• Colore del testo– TEXT = "#rrggbb”
• Il colore delle parole calde– LINK="#rrggbb”
– VLINK="#rrggbb”
– ALINK="#rrggbb”
– Se si vuole utilizzare uno tra 16 valori predefiniti, è possibile utilizzare il nome per esteso.
HTML 53
Entità
• Alcuni simboli o caratteri (come per esempio ‘<’) non possono essere visualizzate se semplicemente digitate nel documento HTML; per permettere comunque di presentare tali elementi all’interno di una pagina occorre usare una sintassi che utilizza il carattere ‘&’
< <> >& &  spazio fisico
HTML 54
Formato del testo
Hn
n rappresenta un numero intero compreso tra 1 e 6, (il carattere più grande corrisponde a n=1, scendendo progressivamente di dimensioni man mano che l'indice cresce).
HTML 55
Diapositiva con figuraimmagine e testo
HTML 56
Formato del testo, <FONT>
<FONT SIZE="n">testo formattato</FONT>
dove 'n' è un numero che va da 1 a 7.
<FONT SIZE="+/- n">testo formattato</FONT>
HTML 57
Stili (logici) del carattere
• Stili logici• <strong>...</strong> Testo di rilevante
importanza. Di norma viene posto in grassetto
• <em>...</em> Testo enfatizzato. Di norma viene reso in corsivo
• <cite>...</cite> Testo citato. Di norma viene reso in corsivo
• <address>...</address> Indirizzo. Viene reso in corsivo o in grassetto con un carattere piccolo, oppure impaginato a sinistra
HTML 58
Stili (fisici) del carattere
• Stili fisici• <b>...</b> Grassetto• <u>...</u> Sottolineato• <i>...</i> Italico
• <big>...</big> carattere più grande
• <small>...</small> carattere più piccolo
HTML 59
Il formato del paragrafo
• Stili • Allineamento• Il marcatore di paragrafo, <P>• Ritorno a capo, <BR>• Tag che influenzano il formato dei
paragrafi• La riga orizzontale, <HR>• Testo preformattato
HTML 60
Allineamento
I marcatori che definiscono le caratteristiche di formato del testo, supportano un attributo che permette di specificare l'allineamento del testo. Il nome dell'attributo è ALIGN; i valori attribuibili sono i seguenti:
• CENTER
• LEFT
• RIGHT<H2 ALIGN="CENTER">Questo testo è centrato e in formato H2</H2>
HTML 61
Paragrafo e rientro a capo
• Paragrafo, <P>
• Ritorno a capo, <BR>
HTML 62
La riga orizzontale
<HR>
• Il marcatore <HR> (horizontal row) ha lo scopo di inserire una linea separatrice all'interno della pagina HTML. Tal marcatore non necessita del corrispondente tag di chiusura.
HTML 63
Testo pre-formattato
<PRE>
Testo da inserire, contenente spazi
e invii a capo
</PRE>
HTML 64
Pagina pre-formattata
HTML 65
Pagina non pre-formattata
HTML 66
Le liste
• Lista ordinata, <OL>
• Lista non ordinata, <UL>
HTML 67
Lista non ordinata
<UL>
<LI>Uno
<LI>Due
<LI>Tre
</UL>
HTML 68
Lista ordinata e mista
<OL>
<LI>Italia
<UL>
<LI>Lombardia<LI>Lazio
<OL>
<LI>Roma<LI>Viterbo
</OL>
</UL>
<LI>Germania<LI>Francia
<UL>
<LI>Bretagna<LI>Normandia
</UL>
</OL>
HTML 69
Le liste di definizione
• <DT> , Definition Term (inizio e fine)
• <DD> , (Definition Definition);
HTML 70
Il tag <DIV>
<div align="CENTER">
Questo testo è centrato
<H1>Anche questo testo è centrato
</div>
HTML 71
Inserimento di un’immagine
<IMG SRC = "path_del_file_immagine”
WIDTH="www” HEIGHT="hhh”
ALIGN="tipo_di_allineamento">
HTML 72
Parametri del marcatore <IMG>
• Allineamento
• Bordo
• Caricamento
• Descrizione
• Dimensioni
• Distanza dal testo
HTML 73
Allineamento di un’immagine
HTML 74
I link
Per implementare un collegamento occorre definire:
• L'oggetto (caldo) che "contiene" il collegamento;
• L'oggetto di destinazione del link, o file collegato.
La sintassi è dunque la seguente:
<A HREF="file_collegato">Oggetti_contenenti_il_link</A>
HTML 75
Esempi di collegamenti
<A HREF=”http://www.microsoft.com">Link al sito Microsoft</A>
<A HREF=”http://www.microsoft.com"><IMG SRC="immag1.jpg"></A>
<A HREF="http://www.microsoft.com">
<IMG SRC="immag1.jpg">Link al Sito MS</A>
HTML 76
Collegamenti e-mail
<A HREF="mailto:indirizzo_e-mail">Sede del link</A>
HTML 77
Una pagina multimediale
HTML 78
Tabelle
• Permettono di inserire i dati all’interno di una griglia di cui si debbono definire i limiti, le righe e le celle.
Marcatore Azione
TABLE Marcano l'inizio e la fine di una tabella
TR Table Row, marcano l'inizio e la fine di ogni riga della tabella
TD Table Data, marcano l'inizio e la fine di ogni cella della tabella
TH Table Header, Come TD ma in grassetto
uno
due tre
HTML 79
Tabelle
• Permettono di inserire i dati all’interno di una griglia di cui si debbono definire i limiti, le righe e le celle.
HTML 80
Parametri delle tabelle
Parametro Effetto
NOWRAPAttributo di TD o TH. Indica che il testo di una riga non deve essere spezzato, anche contravvenendo la larghezza imposta della tabella
COLSPAN Attributo di TD o TH. Definisce il numero di colonne per ogni cella (larghezza)
ROWSPAN Attributo di TD o TH. Definisce il numero di righe per ogni cella (altezza)
BORDER Fornisce un numero relativo alla larghezza del bordo della tabella (0 = assenza del bordo)
CELLSPACING Fornisce un numero relativo alla larghezza del bordo tra le celle (default = 2)
CELLPADDING Misura dello spazio che intercorre tra il bordo della cella e il suo contenuto
WIDTH Larghezza della tabella
HEIGHT Altezza della cella
HTML 81
Realizzazione di una tabella
<TABLE>
<TR>
<TD>prima cella</TD>
<TD>seconda cella</TD>
</TR>
<TR>
<TD>terza cella</TD>
<TD>quarta cella</TD>
</TR>
</TABLE>
HTML 82
Frame
12
3
HTML 83
Struttura dei frame
Contenitore 1 (Home.html)
Riquadro 1 (con il menu)
Riquadro 2 (con il logo)
Contenitore 2 (Contenuti.html)
Riquadro 4 (con una prima parte)
Riquadro 5 (con una seconda parte)
HTML 84
Il codice usato per i frame
<FRAMESET COLS = "85,*"><FRAME SRC="menu.html" NAME="menu.html"><FRAMESET ROWS = "110,*" >
<FRAME SRC="Logobar.html" NAME="Logobar"><FRAME SRC="hp.html" NAME="Main">
</FRAMESET></FRAMESET><NOFRAMES>
<BODY>Il vostro browser è in grado di visualizzare solo questo messagio di servizio, poiché è stato fatto uso dei frame.
</BODY></NOFRAMES>
HTML 85
Una pagina con frame
HTML 86
I moduli
HTML 87
GIF animate
• Si tratta di una serie di immagini in formato GIF visualizzate in rapida successione secondo tempi prefissati.
HTML 88
GIF animate
HTML 89
Le mappe
HTML 90
Programmi per la mappatura
• MS Front Page 2000 http://www.microsoft.com
• Map This! http://www.5star-shareware.com/
• Map Edit http://www.tucows.com/
• Image Mapper ++ 3.0
http://www.coffeecup.com/mapper/
• Live Image 1.29D
http://www.mediatec.com/
• Splash! Image Mapper
http://www.gosplash.com/
HTML 91
Gli stili, CSS
CASCADING STYLE SHEET (CSS)
• Definizione puntuale degli stili di ogni oggetto attraverso l'impostazione delle caratteristiche del singolo elemento.
• Definizione puntuale degli stili di ogni oggetto attraverso l'impostazione delle caratteristiche del marcatore.
• Possibilità di separazione tra codice e stili. • Manutenzione rapida e potente di un sito o di un gruppo
di pagine HTML. • Possibilità di accesso dinamico alle caratteristiche
stilistiche (o di posizionamento e visualizzazione degli elementi di una pagina).
HTML 92
CSS, modalità di impostazione
1. Stili in linea (In line Style Sheet)
2. Stili incorporati (Embedded Style Sheet)
3. Stili esterni (External Style Sheet)
HTML 93
Stili in linea
<tag STYLE="proprietà:valore; proprietà:valore; . . ."></tag>
HTML 94
Stili incorporati
HTML 95
Stili definiti esternamente
HTML 96
Audio e video
HTML 97
Gestione dei file multimediali
•• PlugPlug--inin
•• ActiveActive--XX
HTML 98
HTML Application
<HTML>
<HEAD>
<TITLE>Prima applicazione HTML</TITLE>
<HTA:APPLICATION ID="oMyApp"
APPLICATIONNAME="Prima"
BORDER="yes"
CAPTION="no"
ICON="/graphics/creature.ico"
SHOWINTASKBAR="no"
SINGLEINSTANCE="yes"
SYSMENU="no"
WINDOWSTATE="maximize"
>
</HEAD>
<BODY>
Questa è una semplice applicazione HTML
</BODY>
</HTML>
HTML 99
Approfondimenti
HTML Pointhttp://www.html.it/
Cascading Style Sheet 2http://www.w3c.org/TR/REC-CSS2
HTML Applicationhttp://msdn.microsoft.com/workshop/author/hta/overview/
Real Playerhttp://www.real.com
HTML 100
Orientamento
Il World Wide Web
I linguaggi di marcatura
Il linguaggio ipertestuale HTML
Realizzazione e gestione di un server WEB
Il linguaggio Java
Applicazioni in rete
DHTML e JavaScript
Linguaggi avanzati di marcatura
HTML 101
Java
Caratteristiche
Compilazione, esecuzione
Classe, ereditarietà
Applet
Java DataBase Connector
HTML 102
Java, caratteristiche
• Semplice• Sicuro• Portabile• Orientato agli oggetti• Solido• Multithread• Indipendente
dall’architettura• Interpretato• Con prestazioni elevate• Distribuito• Dinamico
HTML 103
Compilazione ed esecuzione
HTML 104
Un esempio in Java
/* Questo è un esempio di programma Javache produce un messaggio in uscita.queste righe costituiscono un commento multiriga
*/
class primo// questo commento riguarda solo una riga{ public static void main(String[] args)
{ System.out.println("Prima riga di stampa");}
}
HTML 105
Classe e definizione
HTML 106
Ereditarietà
HTML 107
Inserimento di una applet Java
<APPLET CODE=”ScrollingText” WIDTH=”400”HEIGHT=”50”>
<PARAM NAME=”text” VALUE=”Applet che mostra questo testo scorrevole”>
<PARAM NAME=”speed” VALUE=”2”
</APPLET>
HTML 108
JDBC
Java DataBase Connectivity (JDBC)Sono le API di JAVA che permettono di accedere ai Database.
Java DataBase Connectivity (JDBC)Sono le API di JAVA che permettono di accedere ai Database.
JDBC
Driver Manager
DBMS
>package: java.sql<>package: java.>package: java.sqlsql<<
HTML 109
ODBC e JDBC
X/Open SQL X/Open SQL Call Level IterfaceCall Level Iterface(standard aperto(standard apertonato nel mondo nato nel mondo
UNIX)UNIX)
ODBC di MicrosoftODBC di Microsoft
JDBC Driver per DataBaseJDBC Driver per DataBase
HTML 110
Identificare un DB
Database URL:
jdbcjdbc:<driver>:<db_location>:<driver>:<db_location>
Protocollo utilizzato nel Driver Manager dal DBMSProtocollo utilizzato nel Protocollo utilizzato nel
Driver Manager dal DBMSDriver Manager dal DBMS Risorsa utilizzataRisorsa utilizzataRisorsa utilizzata
HTML 111
ConnessioneConnessioneConnessione
Oggetto “connection”
Java code
Driver ODBC
Access[Data Source Name]
jdbc:odbc:rubrica
HTML 112
DSN
HTML 113
clientclientclientclientserverserverserverserver
Architettura JDBC
SQL statementSQL statement
Result Result SetSet
Connessione JDBC [Connection]
Server web
Driver ManagerJDBC-ODBC
DB
Browser[applet]
JVM
HTML 114
Transazione JDBC
ResultSet
Statement
Connection Driver Manager
Driver
getConnectiongetConnection()()
createStatementcreateStatement()()
executeexecute()()
nextnext()()
getget()()
oracleoracle odbcodbc mSQLmSQL
import java.sql.*;Connection con = DriverManager.getConnetciont(url, “use”, “pass”);Statement st = con.createStatement();ResultSet rs = st.executeQuery(“SELECT * FROM ………”);
HTML 115
Metodi Connection
• La connessione è rappresentata da un oggetto:
java.sql.Connection
• Si ottiene attraverso il metodo:
java.sql.DriverManager.getConnection(a,b,c)
(a: URL del db; b: login, c: password)
HTML 116
Metodi di Statement e ditransazione
• Si utilizza l’oggetto Statement utilizzando il metodo della connessione:
createStatement()
• L’esecuzione della query passerà attraverso uno dei metodi di statement:
execute(sql)executeUpdate(sql)executeQuery(sql)
HTML 117
Operazioni sul database
• Nel caso di una rubrica telefonica si vorrà estrarre nome, cognome e telefono. Quindi riprendendo il codice:
ResultSet rs = st.executeQuery(“SELECT * FROM rubrica”)String nome = rs.getString(“nome”) String nome = rs.getString(“cognome”) Int nome = rs.getInt(“tel”)
Next()
esisteesiste
esisteesisteesiste
esiste
esiste
truetruetruetruetruetruetrue
condizione
risultatonomenome cognomecognome teltel
[String] [String] [Int]
Gestione del cursore dei record in JDBCGestione del cursore dei record in JDBC
non esistefalsegetString(“nome”)
getString(“cognome”)
getInt(“tel”)
Estrazione dei campi dei record in JDBCEstrazione dei campi dei record in JDBC
HTML 118
Struttura programma
RubricaGui
Interfaccia grafica [GUI]
[java.awt.panel]
Interfaccia grafica [GUI]
[java.awt.panel]
Estrazione record x
Inserimento record
Aggiorna record
setNome()setCognome()setTel() getNome()
getCognome()getTel()
insertRecord()
getRecordAt()
Engine
Interface updateRecord()
Motore d’accesso dbMotore d’accesso db
Definizione prop. e met. del record tipo
Definizione prop. e met. del record tipo
OperazioniInterfaccia
metodi sul record
OperazioniOperazioniInterfaccia
metodi sul record
RecordRubrica
HTML 119
Struttura two-tier
RubricaGui
Interfaccia grafica [GUI]
[java.awt.panel]
Interfaccia grafica [GUI]
[java.awt.panel]
Estrazione record x
Inserimento record
Aggiorna record
setNome()setCognome()setTel()
getNome()getCognome()getTel()
insertRecord()
getRecordAt()
Engine
Interface updateRecord()
Motore d’accesso dbMotore d’accesso db
Definizione prop. e met. del record tipo
Definizione prop. e met. del record tipo
OperazioniInterfaccia
metodi sul record
OperazioniOperazioniInterfaccia
metodi sul record
RecordRubrica
database
HTML 120
Caratteristiche
• Problemi di sicurezza:se la connessione avviene da Applet, le info relative all’URL, vi saranno contenute.
• Limitazione DB remoti:l’applet si può collegare solamente al server da cui è scaricato.
• Ri-Programmazione applet:necessaria nel caso di modifiche al DB.
HTML 121
Struttura 3-tier
RubricaGui
3-tieroperator
3-tierserver
database
socket
DriverManager
Engine
business logic
interfaccia
HTML 122
Approfondimenti
Java, il sito di Sunhttp://java.sun.com/
Java Italian Sitehttp://jis.rmnet.it/index.ita.html
Java Factory, TINhttp://www.java.tin.it/
Java Worldhttp://www.javaworld.com/
Java, la prima guidahttp://java.sun.com/starter.html
HTML 123
Orientamento
Il World Wide Web
I linguaggi di marcatura
Il linguaggio ipertestuale HTML
Realizzazione e gestione di un server WEB
Il linguaggio Java
Applicazioni in rete
DHTML e JavaScript
Linguaggi avanzati di marcatura
HTML 124
Applicazioni in rete
Common Gateway Interface (CGI)
Servlet Java
Java e Remote Method Invocation
HTML 125
Servlet Java
initinit
servizio
servizio
servizio
servizio
servizio
servizio
servizio
servizio
destroydestroy
Thread 1 Thread 2 Thread 3
HTML 126
Servlet, funzionamento
HTML 127
Architettura del Servlet Package
ServletsServletsServlets
GenericServletGenericServlet
httpServlethttpServlet
MyServletMyServlet
HTML 128
Caratteristiche servlet
Sessioni sono incapsulate nella classe javax.Servlet.http.HttpSession
Utilizzo di sorgenti di dati relazionali e no, tramite le librerie di classi JDBC
Interoperabilità , basata sul supporto nativo per CORBA, RMI, Entreprise Javabean, Agenti, serializzazione e caricamento dinamico di classi in rete;
Accesso a filesystem e socket, locali e remoti;
Portabilità del linguaggio Java e delle sue librerie di classi (write once, run everywhere, in modo nativo o tramite Java Servlet Engine).
HTML 129
Servlet, un esempio
HTML 130
Oggetti distribuiti …
• Interazione di oggetti attraverso una rete:possibilità di richiamare programmi residenti su altri host sfruttando l’interfaccia socket.
• Interazione di oggetti attraverso una rete:possibilità di richiamare programmi residenti su altri host sfruttando l’interfaccia socket.
RPC - Remote Procedure CallRPC RPC -- RRemote emote PProcedurerocedure CCallall
HTML 131
… in Java
Con Java si può realizzare interazione con:
Con Java si può realizzare interazione con:
RMI - Remote Method InvocationRMI RMI -- RRemote emote MMethodethod IInvocationnvocation
Integrazioni CORBA con SocketIntegrazioni CORBA con Integrazioni CORBA con SocketSocket
HTML 132
RMI
Architettura a tre stratiArchitettura a tre strati
Client RMIClient RMI
Server RMIServer RMI
DBMS
HTML 133
Interfacce e classi RMI
RemoteRemote Rem. ObjectRem. Object
Rem. ServerRem. Server
UnicastRemoteObjectUnicastRemoteObject
IOExceptionIOException
RemoteExceptionRemoteException
Interfacce Classi
…
… …
HTML 134
Classe java.rmi.RemoteException
public void deposit (float amount) throws RemoteException {...
}public void withdraw (float amount) throws OverdrawnException,
RemoteException {...
}public float balance() throws RemoteException {
...}
Metodi che intercettano le eccezioni lanciando (throw) la gestione delle eccezioni remote(RemoteException)
HTML 135
Implementazione di una Interfaccia Remota
package my_package;
import java.rmi.RemoteException;import java.rmi.server.UnicastRemoteObject;
public class BankAccountImplextends UnicastRemoteObjectimplements BankAccount
{public void deposit (float amount) throws RemoteException {
...}public void withdraw (float amount) throws OverdrawnException,
RemoteException {...
}public float balance() throws RemoteException {
...}
}
Implementazione della classe BankAcctImpl che implementa l’interfaccia remota BankAccount
HTML 136
Oggetti per la localizzazione
• Classe java.rmi.NamingEsempio senza gestione delle eccezioni:
BankAccount acct = new BankAcctImpl();
String url = "rmi://java.Sun.COM/account";
// collega la url all’oggetto remoto
java.rmi.Naming.bind(url, acct);
...
// ricerca
acct = (BankAccount)java.rmi.Naming.lookup(url);
HTML 137
Architettura di sistema RMI
TransportLayer
TransportLayer
Remote ReferenceLayer
Remote ReferenceLayer
Stubs Skeletons
Client RMIClient RMI Server RMIServer RMI
connessionevirtuale
connessionefisica
Ap
plic
azio
ni
RM
IS
yst
em
HTML 138
•Inizio chiamata a oggetto remoto (riferimento a RRL)
•Serializzazione argomenti provenienti da RRL
•Informa RRL della chiamata da iniziare•Ricompone i dati provenienti da RRL•Informa RRL della chiamata da concludere
Stub/skeleton Layer
Gli stream impiegano il metodo della serializzazione che permette a Java di trasmettere oggetti.
Remote ReferenceLayer
Stubs
Remote ReferenceLayer
Skeletons
streams streams
•Deserializzazione degli argomenti dello stream
•Effettuare la “up-call” all’oggetto remoto attuale
•Serializzare il valore di ritorno edlla chiamata o dell’eccezione
HTML 139
Remote Reference Layer
• Ogni implementazione di oggetto remoto sceglie la sua sotto classe RRL che opera nella sua metà. Ad esempio:– Invocazioni Unicast point to point;– Invocazioni ad oggetti replicati;– Supporto per specifiche strategie di replicazione;– Strategie di riconnessione.
• RRl dispone di componenti client e server, che collaborano tra loro.
• La componente client contiene informazioni specifiche del server remoto, in modo da poter eseguire i metodi usando il corretto insieme di semantica.
• Ogni implementazione di oggetto remoto sceglie la sua sotto classe RRL che opera nella sua metà. Ad esempio:– Invocazioni Unicast point to point;– Invocazioni ad oggetti replicati;– Supporto per specifiche strategie di replicazione;– Strategie di riconnessione.
• RRl dispone di componenti client e server, che collaborano tra loro.
• La componente client contiene informazioni specifiche del server remoto, in modo da poter eseguire i metodi usando il corretto insieme di semantica.
HTML 140
Client side Server side
Transport Layer
• End-point: indica una JVM• Channel: astrazione di condotto verso una JVM• Connection: astrazione del trasferimento dati• Transport: astrazione che gestisce i canali
End-point Object Identifier
Live reference representation
Channel
ConnectionTransport Transport
HTML 141
Caricamento delle classi
Dynamic Class Loading
• In base a quale metodo il runtime RMI sceglie un class loader?
• Da dove lo deve caricare?
• Come forzare il download di una classe dalla rete?
• In base a quale metodo il runtime RMI sceglie un class loader?
• Da dove lo deve caricare?
• Come forzare il download di una classe dalla rete?
• Il codice stub deve essere generato e “linkato” nel client prima che un metodo remoto possa essere chiamato.
• Si usa Dynamic Class Loading in RMI come meccanismo per caricare le classi necessarie a gestire il metodo invocato
• Il codice stub deve essere generato e “linkato” nel client prima che un metodo remoto possa essere chiamato.
• Si usa Dynamic Class Loading in RMI come meccanismo per caricare le classi necessarie a gestire il metodo invocato
HTML 142
Avvio del client
import java.rmi.RMISecurityManager;import java.rmi.server.RMIClassLoader;
public class LoadClient{
public static void main(){
System.setSecurityManager(new RMISecurityManager());
try {Class cl = RMIClassLoader.loadClass("myclient");Runnable client = (Runnable)cl.newInstance();client.run();
} catch (Exception e) {System.out.println("Exception: " + e.getMessage());e.printStackTrace();
}}
}
HTML 143
Middle Tier - richieste
DBMS Middle Tier Fact.Middle Tier Fact.
Client 1Client 1
Client 2Client 2
Client 3Client 3
Connection
request
HTML 144
Middle Tier - attivazioni
DBMS
Middle Tier Fact.Middle Tier Fact.
Client 1Client 1
Client 2Client 2
Client 3Client 3Connectio
n
request
Middle TierMiddle Tier Channel activation
Middle tiercreation
DB connection
HTML 145
Middle TierMiddle Tier
Middle Tier
DBMS
Middle Tier Fact.Middle Tier Fact.
Client 1Client 1
Client 2Client 2
Client 3Client 3
Connection
request
Middle TierMiddle Tier Channelactivation
DB connection
Middle tiercreation
Channelactivation
HTML 146
Approfondimenti
Java Servlet, tutorialhttp://java.sun.com/docs/books/tutorial/servlets
Java Servlet, White Paperhttp:// java.sun.com/marketing/collateralservlets.html
Java Sunhttp://java.sun.com
HTML 147
Orientamento
Il World Wide Web
I linguaggi di marcatura
Il linguaggio ipertestuale HTML
Realizzazione e gestione di un server WEB
Il linguaggio Java
Applicazioni in rete
DHTML e JavaScript
Linguaggi avanzati di marcatura
HTML 148
DHTML
Caratteristiche
DOM
Browser
Finestre
Scripting
CGI
ASP
HTML 149
Pagine dinamiche
Lato Client
• HTML– CSS– DHTML
• Java• Script
– JavaScript– VisualScript
• Controlli ActiveX• Plug-in
Lato Server
• CGI• Componenti
COM/DCOM (file ASP)• Servlet Java• …
HTML 150
DHTML, Il modello di documento
• Il documento DHTML ha una propria struttura (DOM, Document Object Model).
• Gli elementi inseriti all’interno della pagina sono considerati record del dataBase relativo al DOM.
• Per controllare i diversi elementi si utilizzano linguaggi di scripting(JavaScript, VBScript).
HTML 151
Requisiti di base del DOM
• Il DOM è usato per smontare e costruire il documento, anche dopo il suo caricamento da parte del browser.
• Il DOM non richiede un’interfaccia utente grafica per l’implementazione (valido anche per i browser basati su Braille e tecnologie audio).
HTML 152
Requisiti del DOM
• Navigazione della struttura.• Manipolazione del documento.• Manipolazione del contenuto.• Modello degli eventi.• Modello d’oggetto per i fogli di stile.• Informazione generale su documento e
browser.
HTML 153
Il modello a oggetti di Internet Explorer
event
frames
location
history
navigator /clientInformation
screen
all anchors applets body forms frames images links selection scripts styleSheets
document
window
HTML 154
Proprietà di window
ProprietàProprietà DescrizioneDescrizione
width Risoluzione orizzontale dello schermo in pixel.
height Risoluzione verticale dello schermo in pixel.
colorDepth Numero di bit per pixel availHeight Altezza utile dello
schermo.
availWidth Larghezza utile dello schermo.
HTML 155
Il browser
• appCodeName
• appName
• appVersion
• userAgent
HTML 156
appVersion
VersioneClient (piattaforma; informazioni [; altreInformazioni])
HTML 157
Finestra di messaggio
alert(message) Visualizza una finestra di dialogo contenente un
messaggio e un bottone OK. Il metodo alert
può essere usato per mostrare note informative o di
errore..
confirm(message) Simile a alert ma usato per porre una domanda.
La finestra evidenzia un messaggio e i pulsanti OK e
Cancel. Cliccando su OK si ritorna true, mentre
cliccando Cancel si ritorna false.
HTML 158
Nuova finestra
open([url [, name [, features [, replace]]]])
Apre una nuova istanza del browser con l’URL specificato.
Il metodo open permette di usare finestre differenti con opzioni vere
o false.
[windowObject =] window.open([url [, name [, features [, replace]]]])
myPlace = window.open("myPlace2.htm", "myPlace");
HTML 159
La finestra
HTML 160
Parametridi nuova finestra
directories [yes|no]|[1|0] Visualizza la barra delle directories che fornisce
link rapidi alle pagine Web.
height pixels Indica l’altezza iniziale del browser window.
left pixels Indica la distanza tra il browser window e il confine
sinistro del desktop.
location [yes|no]|[1|0] Visualizza la barra degli indirizzi.
menubar [yes|no]|[1|0] Visualizza i menu di default (i menu personalizzati
non possono essere correntemente definiti).
resizable [yes|no]|[1|0] Indica se la finestra è ridimensionabile.
scrollbars [yes|no]|[1|0] Visualizza le barre di scorrimento.
status [yes|no]|[1|0] Visualizza la barra di stato in fondo allo schermo.
toolbar [yes|no]|[1|0] Visualizza la toolbar.
top pixels Indica la distanza tra il browser window e il confine
in alto del desktop.
width pixels Indica la larghezza iniziale del browser window.
HTML 161
Esempio di apertura di nuova finestra
window.open("esempio.htm", "esempio", "toolbar=no; location=no;
menubar=no; status=no; directories=no");
HTML 162
I colori
La seguente tabella elenca le proprietà dei colori e il loro
corrispondente attributo di marcatore <BODY>.
Proprietà Attributo
alinkColor ALINK
bgColor bgColor
fgColor text
linkColor link
vlinkColor vlink
HTML 163
Posizionamento dinamico
position static | absolute | relative
top, left auto | <length> | <percentage>
width,height
auto | <length> | <percentage>
clip auto| rect (top right bottom left)
. z-index auto | number
visibility inherit | visible | hidden
overflow visible | hidden | auto | scroll
HTML 164
Elementi che supportano il posizionamento assoluto
• Applet• Button• DIV• Fieldset• Iframe• IMG
• Input• Object• Select• Span• Table• TextArea
HTML 165
Posizionamento e coordinate
HTML 166
Linguaggi di scripting
• Controllano i diversi elementi della pagina (possibilità di cambiarne l’aspetto, il contenuto o la posizione dopo lo scaricamento della pagina).
• Possono girare solo all’interno di una pagina Web.
• Non riguarda script per i server, applet Java o GIF animate.
HTML 167
Uno script con JavaScript
<SCRIPT>
function apertura()
{
var ua = window.navigator.userAgent
var msie = ua.indexOf ( "MSIE " )
alert(ua + " Benvenuti al sito")
}
</SCRIPT>
……
<BODY BGCOLOR="white" onLoad="apertura()">
HTML 168
L’azione di uno script: alert
HTML 169
Commenti
` Commento VBScript.
// Commento JScript.
HTML 170
Script CGI (Common GatewayInterface)
• Per cambiare una pagina l’utente clicca su un collegamento o invia un form per connettere il browser al server, il quale contiene uno script, che valuta l’evento e genera una risposta.
• Esempi di utilizzi: – interagire con un DataBase– creare pagine Web con contenuti
specificati dall’utente.
HTML 171
Svantaggi degli script CGI
• Lentezza.• Tempo di assemblamento:
– realizzazione del programma con linguaggio di script, es. PERL);
– collaudo con vari input;– trasferimento nel sito Web.
HTML 172
Il commercio elettronico
• Rispetto al tradizionale commercio basato su transazioni elettroniche, l’e-commerce su Web è caratterizzato da una globale diffusione verso aziende e utenti finali.
• La protezione è uno dei fattori di importanza vitale.
• Si necessita di una applicazione client- server funzionale che utilizzi fisicamente Internet o una rete Intranet.
HTML 173
Architettura ASP
Active Server Pages (ASP)
• Sviluppata da Microsoft
• Consente di creare script eseguibili sul server e applicazioni Web dinamiche
• Le applicazioni sono basate su componenti che possono utilizzare qualsiasi linguaggio (es. Visual Basic, C++, J++)
HTML 174
Architettura di base delle applicazioni Web
Database
ADO e altri oggetti COM
File ASPServer Web
Browser Web
Internet1. Il browser Web richiede un programma
2. Il server Web scarica l’output del programma
HTML 175
Vantaggi di ASP
• Indipendenza dal browser• Utilizzo di linguaggi conosciuti• Utilizzo di strumenti conosciuti• Uso di componenti• Supporto transazionale• Flessibilità del debug• Protezione• Stabilità
HTML 176
Codice ASP
<% script_ASP %>
<HTML>
<BODY>
Salve !;
la data corrente è <%=Date %>
</BODY>
<HTML>
HTML 177
Ridefinizione del linguaggio di scripting per ASP
<% @ LANGUAGE=Scripting Language %>
<SCRIPT LANGUAGE=Scripting LanguageRUNAT=Server>
Script
</SCRIPT>
HTML 178
Codice ASP, Una pagina
<HTML><BODY><% If Weekday(Date)< 2 or Weekday(Date) > 6 Then %>Siamo nel week-end.<% Else %>E’ un giorno lavorativo.<% End If %></BODY></HTML>
HTML 179
#INCLUDE
<!--#include file=nome_file-->
HTML 180
Approfondimenti
Dynamic HTML Labhttp://webreference.com/dhtml/
HTML dinamicohttp://www.ba.infn.it/~zito/dsem/talk.html
DHTML zonehttp://www.dhtmlzone.com/articles/index.html
Inside DHTMLhttp://www.insideDHTML.com
DOMhttp://www.w3.org/MarkUp/DOM
HTML 181
Orientamento
Il World Wide Web
I linguaggi di marcatura
Il linguaggio ipertestuale HTML
Realizzazione e gestione di un server WEB
Il linguaggio Java
Applicazioni in rete
DHTML e JavaScript
Linguaggi avanzati di marcatura
HTML 182
Linguaggi avanzati di marcatura
eXtensible Markup Language
Tipo di Documento
Fogli di stile
Evoluzione dei linguaggi
Impieghi di XML
HTML 183
XML
1998. Rilascio della prima versione della specifica
http://www.w3.org/TR/1998/REC-xml-19980210.html
eXtensible Markup LanguageeXtensible Markup LanguageeXtensible Markup Language
XML non è compatibile con HTML !
HTML 184
XML, le specifiche del W3C
HTML 185
Vantaggi di XML
Separazione dei dati dalla presentazione
Interfaccia utente migliorata
Integrazione dei dati
Scalabilità
Compressione
Standard aperti
Separazione dei dati dalla presentazioneSeparazione dei dati dalla presentazione
Interfaccia utente migliorataInterfaccia utente migliorata
Integrazione dei datiIntegrazione dei dati
ScalabilitàScalabilità
CompressioneCompressione
Standard apertiStandard aperti
HTML 186
MS Internet Explorer
•Motori di analisi (parser C++ e parser Java scaricabile via Internet)
•Modello DOM XML
•Oggetto Origine dati (DSO, con possibilità di associare dati XML a HTML dinamico)
•Anteprima degli schemi XML
•Supporto per XSL
•Visualizzazione di XML
••Motori di analisi (Motori di analisi (parser parser C++ e C++ e parser parser Java Java scaricabile via Internet)scaricabile via Internet)
••Modello DOM XMLModello DOM XML
••Oggetto Origine dati (DSO, con possibilità di Oggetto Origine dati (DSO, con possibilità di associare dati XML a HTML dinamico)associare dati XML a HTML dinamico)
••Anteprima degli schemi XMLAnteprima degli schemi XML
••Supporto per XSLSupporto per XSL
••Visualizzazione di XMLVisualizzazione di XML
HTML 187
XML
XMLXML
VMLVML XSLXSL HTMLHTML--NGNGMathMLMathML ..
HTML 188
Struttura di un documento XML
Definizione Definizione dei marcatoridei marcatori
Utilizzo Utilizzo dei marcatoridei marcatori
<?xml version=“1.0” ?>
<Inizio>Ciao, AIPA</Inizio>
<?xml version=“1.0” ?>
<Inizio>Ciao, AIPA</Inizio>
HTML 189
Visualizzazione della pagina XML
Processore XML
Processore Processore XMLXML
ApplicazioneXML
ApplicazioneApplicazioneXMLXML
Documento XML
Visualizzazione
Parsing (suddivisione nelle componenti)
Esecuzione delle istruzioni
HTML 190
Conversione XML àà HTML
XSLXSLXSLDocumento XML
eXtensible Stylesheet Language
Documento HTML
HTML 191
I marcatori XML
•<marc> .. <marc>
•<marc_vuoto>
•&entità; (&primo; …p)
•Commenti, dichiarative del tipo di documento, delimitatori delle sezioni CDATA, istruzioni di elaborazione (PI, processing instructions)
HTML 192
Definizione di un elemento
<!ELEMENT nome specifiche>
<!ATTLIST nome attributo>
L’elemento è scelto nella lista e1 | e2 | … | en
L’elemento è opzionale; se c’è compare una sola voltaelemento?
L’elemento può non esserci o comparire una o più volteelemento*
L’elemento compare una o più volteelemento+
L’elemento compare una sola voltaelemento
HTML 193
DICHIARATIVE interne
<?XML VERSION=“1.0” ?>
<ARTICOLI>
<AUTORE ITALIANO=“yes”>
Dino Buzzati
<TESTO>
Il deserto dei tartari
</TESTO>
</AUTORE>
</ARTICOLI>
<?XML VERSION=“1.0” ?>
<ARTICOLI>
<AUTORE ITALIANO=“yes”>
Dino Buzzati
<TESTO>
Il deserto dei tartari
</TESTO>
</AUTORE>
</ARTICOLI>
<!DOCTYPE ARTICOLI
[
<!ENTITY adlib CDATA “sconosciuto”>
…
<!ELEMENT AUTORE (TESTO+) >
<!ATTLIST AUTORE
ITALIANO (yes|no)
…
])
Incluse direttamente
in <!DOCTYPE>
Incluse direttamente Incluse direttamente
in <!DOCTYPE>in <!DOCTYPE>
HTML 194
DICHIARATIVE esterne
<?XML VERSION=“1.0” ?>
<ARTICOLI>
<AUTORE ITALIANO=“yes”>
Dino Buzzati
<TESTO>
Il deserto dei tartari
</TESTO>
</AUTORE>
</ARTICOLI>
<?XML VERSION=“1.0” ?>
<ARTICOLI>
<AUTORE ITALIANO=“yes”>
Dino Buzzati
<TESTO>
Il deserto dei tartari
</TESTO>
</AUTORE>
</ARTICOLI>
<!DOCTYPE ARTICOLI STSTEM=“articoli.dtd”>
Riferimento a un file .DTD
in <!DOCTYPE>
Riferimento a un file Riferimento a un file .DTD .DTD
in <!DOCTYPE>in <!DOCTYPE>
<?XML VERSION=“1.0” STANDALONE=“NO”?>
<!DOCTYPE ARTICOLI
[
<!ENTITY adlib CDATA “sconosciuto”>
…
<!ELEMENT AUTORE (TESTO+) >
<!ATTLIST AUTORE
ITALIANO (yes|no)
…
])
HTML 195
Documenti XML
Well-formed (Conformi)WellWell--formed formed (Conformi)(Conformi)
Valid (Validi)ValidValid (Validi)(Validi)
1. It contains one or more elements.
2. There is exactly one element, called the root, or document element, no part of which appears in the content of any other element. For all other elements, if the start-tag is in the content of another element, the end-tag is in the content of the same element. More simply stated, the elements, delimited by start- and end-tags, nest properly within each other.
W3C Recommendation 10 Febbraio 1998
1. It contains one or more elements.
2. There is exactly one element, called the root, or document element, no part of which appears in the content of any other element. For all other elements, if the start-tag is in the content of another element, the end-tag is in the content of the same element. More simply stated, the elements, delimited by start- and end-tags, nest properly within each other.
W3C Recommendation 10 Febbraio 1998
An XML document is valid if it has an associated document type declarationand if the document complies with the constraints expressed in it.
W3C Recommendation 10 Febbraio 1998
An XML document is valid if it has an associated document type declarationand if the document complies with the constraints expressed in it.
W3C Recommendation 10 Febbraio 1998
HTML 196
Struttura ad albero di un documento XML
<..>
<..>
testo
…
</..>
…
</..>
HTML 197
Elementi di sintassi XML
Il nome di un elemento è il nome del marcatore che lo apre e lo chiude
Il marcatore di chiusura di <marc> è </marc>Il marcatore vuoto (es. <HR></HR> può essere espresso in
modo sintetico (es. <HR/>Gli elementi che impartiscono istruzioni al programma che
legge il documento sono identificati da ‘?’ (es. <?xml version=“1.0” ?>
Il nome di un elemento è il nome del marcatore che lo apre e lo chiude
Il marcatore di chiusura di <marc> è </marc>Il marcatore vuoto (es. <HR></HR> può essere espresso in
modo sintetico (es. <HR/>Gli elementi che impartiscono istruzioni al programma che
legge il documento sono identificati da ‘?’ (es. <?xml version=“1.0” ?>
HTML 198
Il file XML come sorgente dati
HTML 199
Strumenti di sviluppo
HTML 200
XML Notepad
HTML 201
Impiego di XSL
HTML 202
Il file XSL
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<TABLE STYLE="border:1px solid black">
<TR STYLE="font-size:12pt; font-family:Verdana; font-weight:bold; text-decoration:underline">
<TD>Nome</TD>
<TD STYLE="background-color:lightgrey">Cognome</TD>
<TD>Anni</TD> </TR>
<xsl:for-each select="AUCTIONBLOCK/ITEM/BIDS/persona">
<TR STYLE="font-family:Verdana; font-size:12pt; padding:0px 6px">
<TD><xsl:value-of select="nome"/></TD>
<TD STYLE="background-color:lightgrey"><xsl:value-ofselect="cognome"/></TD>
<TD><xsl:value-of select="anni"/></TD> </TR>
</xsl:for-each> </TABLE>
</xsl:template></xsl:stylesheet>
HTML 203
XML, campi di applicazione
• Definizione di linguaggi di marcatura per differenti classi di documenti
• File di configurazione di sistemi• Formato per lo scambio dei dati
HTML 204
Approfondimenti
XML nel W3Chttp://www.w3c.org/XML
XML e MS Internet Explorerhttp://www.microsoft.com/xml
XMLhttp://www.w3.org/Press/1998/XML10-REC
Esempi XML, Microsofthttp://msdn.microsoft.com/xml/demos/default.asp
Top Related