Sei sulla pagina 1di 149

HTML.

it - Corso gratuito su XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

di Marco Giann
marco@ragusaonline.com
Questa guida, curata da Marco Giann, introduce, in 70 lezioni corredate da
esempi pratici, alle caratteristiche principali di XML. Dall'introduzione al
linguaggio al suo utilizzo pratico. Questo corso, completamente in italiano e di
facile comprensione, il primo passo per chi non ha alcuna conoscenza di XML.
Percorso consigliato: apprendisti
Livello di difficolt:
Hosting Italiano

Corsi di formazione in aula di HTML.it su XML


ULTIM'ORA
Microsoft ripropone una
falla gi patchata

INTRODUZIONE

'AOL Browser', il dopoNetscape si basa su IE

CAPITOLO 1

P2P, Grokster e StreamCast


in tribunale

1. Limportanza dellXML

FSF Europe esclusa dalla


Commissione Vigevano
46645: manda un SMS e
Google risponde

1.1 Origine e obiettivi


1.2 Relazioni tra XML e altri linguaggi

Falla grave in Microsoft


Word, non c' la patch

1.2.1 Relazione tra XML e SGML

Dirac, la BBC presenta il


codec video open source

1.2.2 Relazione tra XML e HTML

Le altre news

1.3 Le propriet dellXML


1.4 LXML e il Web
1.4.1 Database eterogenei
1.4.2 Processi distribuiti
1.4.3 Viste differenti
1.4.4 Motori di ricerca
CAPITOLO 2
2. STRUTTURA E SINTASSI
2.1 Struttura logica del linguaggio XML
2.2 Struttura fisica del linguaggio XML
2.3 Sintassi XML
2.3.1 Apertura e chiusura dei tag

http://www.html.it/xml/guida/index.html (1 di 4)12/10/04 16.13.21

cerca

HTML.it - Corso gratuito su XML

2.3.2 Attributi
2.4 Documenti XML validi e ben formati
2.4.1 Documenti validi
2.4.2 Documenti ben formati
CAPITOLO 3
3. DEFINIZIONE DEL TIPO DI DOCUMENTO (DTD)
3.1 Struttura della DTD
3.2 Creazione di una DTD semplice
3.3 Dichiarazioni di elementi
3.4 Tipi di Dati
3.5 Simboli relativi alla struttura
3.6 Attributi
3.7 Entit
3.8 Le parole chiave IGNORE e INCLUDE
3.9 Istruzioni di elaborazione.
3.10 Commenti
3.11 DTD esterne
3.12 Vocabolari
3.13 Spazi dei nomi XML (XML Namespace)
3.13.1 Creazione di nomi univoci tramite gli spazi dei
nomi XML
CAPITOLO 4
4. AMPLIARE I DOCUMENTI XML
4.1 XSL: lXML con i fogli di stile
4.1.1 Nozioni fondamentali sul linguaggio XSL
4.1.2 Componenti del linguaggio XSL
4.1.3 Fogli di stile XSL
4.1.4 Utilizzo dei modelli
4.1.5 Visualizzazione degli elementi di output

http://www.html.it/xml/guida/index.html (2 di 4)12/10/04 16.13.21

HTML.it - Corso gratuito su XML

4.1.6 Estrazione dei dati dallXML


4.2 XLL: Collegamenti con il linguaggio XML
4.2.1 XLink: il sistema per i collegamenti XML
4.2.2 Collegamenti semplici nellXML
4.2.3 Collegamenti estesi nellXML
4.3 XPOINTER
4.3.1 Concetti fondamentali relativi al linguaggio
XPointer
4.4 XML-Data
4.4.1 Gli obiettivi di XML-Data
4.4.2 Linguaggio schema XML-Data
4.4.3 Struttura del documento dello schema
4.4.4 Dichiarazioni del tipo di elemento
4.4.5 Dichiarazioni del tipo di attributo
4.4.6 Tipi di dati
4.4.7 Funzionamento degli schemi (esempio
file xml/xsl)
CAPITOLO 5
5. Applicazioni dellXML
5.1 Channel Definition Format (CDF)
5.1.1 Webcasting (tecnologia push)
5.1.2 Struttura di un file CDF
5.1.3 Utilizzo del file CDF
5.1.4 Esempio di un canale
5.2 Synchronized Multimedia Integration Language
(SMIL)
5.2.1 Struttura di SMIL
5.2.2 Stile parallelo
5.2.3 Stile in sequenza
5.2.4 Specifiche dellimpostazione

http://www.html.it/xml/guida/index.html (3 di 4)12/10/04 16.13.21

HTML.it - Corso gratuito su XML

5.2.5 Switching
5.2.6 Esempio SMIL (esempio file smil)
Conclusioni
Appendice A
Strumenti software
A.1 Il processore XML
A.2 Il parser Msxml
A.3 Panorama del software
A.4 Esempio di file XML (esempio file xml/xsl)
Bibliografia

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/index.html (4 di 4)12/10/04 16.13.21

Note e informazioni legali

XML: Introduzione all'XML - Introduzione

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Introduzione all'XMLIntroduzione

Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

LHTML (Hypertext Markup Language) considerato la base del World Wide


Web. Questo linguaggio consente infatti di creare in maniera standardizzata
pagine di informazioni formattate in grado di raggiungere, tramite Internet, un
numero di utenti in costante aumento. Insieme al protocollo HTTP (Hypertext
Transport Protocol), lHTML ha rivoluzionato il modo in cui le persone inviano
e ricevono informazioni, ma lo scopo principale per cui stato realizzato la
visualizzazione dei dati. Per questo motivo, lHTML prende in considerazione
soprattutto il modo in cui le informazioni vengono presentate e non il tipo o la
struttura di tali informazioni, aspetti per i quali stato sviluppato il linguaggio
XML (eXtensible Markup Language). La necessit di espandere le capacit di
HTML ha spinto i produttori di browser a introdurre nuovi marcatori nella
sintassi, rendendola a tutti gli effetti proprietaria e non pi standard. Da ci
segue che una pagina HTML che sfrutti marcatori proprietari non pu essere
visualizzata correttamente se non con il browser adatto, con le ovvie
conseguenze che ne derivano.
LXML un linguaggio di markup aperto e basato su testo che fornisce
informazioni di tipo strutturale e semantico relative ai dati veri e propri. Questi
"dati sui dati", o metadati, offrono un contesto aggiuntivo allapplicazione che
utilizza i dati e consente un nuovo livello di gestione e manipolazione delle
informazioni basate su Web.
LXML, derivazione del noto linguaggio SGML (Standard Generalized Markup
Language), stato ottimizzato per il Web, diventando potente complemento
dellHTML basato su standard. Limportanza dellXML nel futuro delle
informazioni sul Web potrebbe pertanto giungere ad eguagliare quella
dellHTML agli albori.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/introdu.htm12/10/04 16.13.49

Note e informazioni legali

XML: Capitolo I: L'importanza dell'XML - Origine e obiettivi

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Origine e obiettivi
LExtensible Markup Language (XML) un metalinguaggio che permette di
creare dei linguaggi personalizzati di markup; nasce dallesigenza di portare
nel World Wide Web lo Standard Generalized Markup Language (SGML), lo
standard internazionale per la descrizione della struttura e del contenuto di
documenti elettronici di qualsiasi tipo; ne contiene quindi tutta la potenza, ma
non tutte le complesse funzioni raramente utilizzate. Si caratterizza per la
semplicit con cui possibile scrivere documenti, condividerli e trasmetterli nel
Web.
Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

Lutilizzo di XML permette di superare il grosso limite attuale del Web, che
quello della dipendenza da un tipo di documento HTML, singolo e non
estensibile. Questo linguaggio nato per permettere agli utenti del World Wide
Web di condividere le informazioni su sistemi differenti; il presupposto era che
quelle informazioni fossero testo con al pi alcune immagini e collegamenti
ipertestuali. Attualmente per, le informazioni sul World Wide Web sono
database di testo, immagini, suoni, video, audio. Quindi lHTML stato
chiamato sempre pi di frequente a fornire soluzioni a problemi che non aveva
lo scopo di risolvere, come dover descrivere tipi differenti e specifici di
informazioni, definire relazioni complesse di collegamenti fra documenti,
trasmettere informazioni in diversi formati. Per superare questi problemi, sono
state create delle estensioni dellHTML, spesso fra loro incompatibili.
LXML permette a gruppi di persone o ad organizzazioni di creare il proprio
linguaggio di markup, specifico per il tipo di informazione che trattano; per
molte applicazioni e per diversi settori, gli esperti hanno gi creato linguaggi di
markup specifici, come ad esempio il Channel Definition Format, il
Mathematical Markup Language ed altri (Fig. 1.1).

Fig. 1.1: LXML permette di scrivere linguaggi di markup


XML fu sviluppato da XML Working Group (originariamente noto come SGML
Editorial Review Board) costituitosi sotto gli auspici del World Wide Web
Consortium (W3C) nel 1996. Esso era presieduto da Jon Bosak della Sun
Microsystems con la partecipazione attiva dellXML Special Interest Group
(precedentemente noto come SGML Working Group) anchesso organizzato
http://www.html.it/xml/guida/origine.htm (1 di 3)12/10/04 16.14.07

cerca

XML: Capitolo I: L'importanza dell'XML - Origine e obiettivi

dal W3C.
Lobiettivo di questo gruppo di lavoro era di portare il linguaggio SGML nel
Web. LSGML un linguaggio per la specifica dei linguaggi di markup ed il
genitore del ben noto HTML.
La progettazione dellXML venne eseguita esaminando i punti di forza e di
debolezza dellSGML. Il risultato uno standard per i linguaggi di markup che
contiene tutta la potenza dellSGML ma non tutte le funzioni complesse e
raramente utilizzate. LXML venne mostrato per la prima volta al pubblico
quando lSGML celebr il suo decimo anno.
Gli obiettivi progettuali di XML sono:

1.
XML deve essere utilizzabile in modo semplice su Internet: in primo
luogo, lXML deve operare in maniera efficiente su Internet e soddisfare
le esigenze delle applicazioni eseguite in un ambiente di rete distribuito.

2.
XML deve supportare un gran numero di applicazioni: deve essere
possibile utilizzare lXML con unampia gamma di applicazioni, tra cui
strumenti di creazione, motori per la visualizzazione di contenuti,
strumenti di traduzione e applicazioni di database.

3.
XML deve essere compatibile con SGML: questo obiettivo stato
definito sulla base del presupposto che un documento XML valido
debba anche essere un documento SGML valido, in modo tale che gli
strumenti SGML esistenti possano essere utilizzati con lXML e siano in
grado di analizzare il codice XML.

4.
Deve essere facile lo sviluppo di programmi che elaborino
documenti XML: ladozione del linguaggio proporzionale alla
disponibilit di strumenti e la proliferazione di questi la dimostrazione
che questo obiettivo stato raggiunto.

5.
Il numero di caratteristiche opzionali deve essere mantenuto al
minimo possibile: al contrario dellSGML, lXML elimina le opzioni, in
tal modo qualsiasi elaboratore potr pertanto analizzare qualunque
documento XML, indipendentemente dai dati e dalla struttura contenuti
nel documento.

6.
I documenti XML dovrebbero essere leggibili da un utente e
ragionevolmente chiari: poich utilizza il testo normale per descrivere
i dati e le relazioni tra i dati, lXML pi semplice da utilizzare e da
leggere del formato binario che esegue la stessa operazione; inoltre
poich il codice formattato in modo diretto, utile che lXML sia
facilmente leggibile da parte sia degli utenti che dei computer.

7.
La progettazione di XML dovrebbe essere rapida: lXML stato
sviluppato per soddisfare lesigenza di un linguaggio estensibile per il
Web. Questo obiettivo stato definito dopo aver considerato
leventualit che se lXML non fosse stato reso disponibile rapidamente
come metodo per estendere lHTML, altre organizzazioni avrebbero
potuto provvedere a fornire una soluzione proprietaria, binaria o
entrambe.

http://www.html.it/xml/guida/origine.htm (2 di 3)12/10/04 16.14.07

XML: Capitolo I: L'importanza dell'XML - Origine e obiettivi

8.
La progettazione di XML deve essere formale e concisa: questo
obiettivo deriva dallesigenza di rendere il linguaggio il pi possibile
conciso, formalizzando la formulazione della specifica.

9.
I documenti XML devono essere facili da creare: i documenti XML
possono essere creati facendo ricorso a strumenti di semplice utilizzo,
quali editor di testo normale.

10.
Non di nessuna importanza leconomicit nel markup XML:
nellSGML e nellHTML la presenza di un tag di apertura sufficiente
per segnalare che lelemento precedente deve essere chiuso. Bench
cos sia possibile ridurre il lavoro degli autori, questa soluzione
potrebbe essere fonte di confusione per i lettori, nellXML la chiarezza
ha in ogni caso la precedenza sulla concisione.

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/origine.htm (3 di 3)12/10/04 16.14.07

Note e informazioni legali

XML: Capitolo I: L'importanza dell'XML - Relazione tra XML e SGML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Relazione tra XML e SGML

Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE

SGML un meta-linguaggio, ovvero un insieme di regole generalizzate usate


per creare molteplici linguaggi speciali che prendono il nome di markup
language. Le applicazioni pi note di SGML sono HTML, TIM
(Telecommunication Interchange Markup); inoltre SGML viene largamente
usato dalle grandi industrie di tecnologia come strumento di
immagazzinamento e scambio di informazioni di qualsiasi tipo. E' poi utilizzato
in tipografia (ad esempio nella stampa delle delibere) per creare il documento
che poi le macchine tipografiche andranno a stampare secondo la loro
interpretazione specifica delle strutture SGML.
LSGML stesso non ha mai suscitato particolare interesse tra gli sviluppatori
Web, probabilmente a causa soprattutto della sua complessit e delle difficolt
che lutilizzo di questo linguaggio comporta.

FSF Europe esclusa dalla


Commissione Vigevano

Lobiettivo era di includere nellXML, solo le parti dellSGML necessarie per la


pubblicazione sul Web. XML eredita da SGML la capacit di definire con
estrema facilit nuovi marcatori, creando di fatto dei linguaggi di markup
personalizzati, mentre la complessit e le caratteristiche opzionali che
appesantivano lSGML sono state pertanto eliminate dallXML.

46645: manda un SMS e


Google risponde

Pregi di SGML :

P2P, Grokster e StreamCast


in tribunale

Falla grave in Microsoft


Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

La sua potenza la flessibilit. E' uno standard (ISO 8879:1986) che pu


essere applicato ad ogni tipo dato; espandibile ed fortemente strutturato.
Queste caratteristiche lo rendono capace di risolvere problemi di elaborazione
dell'informazione tra i pi complessi, garantendo un perfetto riutilizzo dei dati.
Inoltre non-proprietario ed indipendente dalla piattaforma.
Limiti di SGML :
Ha una struttura molto pesante, comprensiva di un gran numero di opzioni che
lo rendono poco maneggevole da un eventuale software di manipolazione dei
dati, quindi pu rappresentare un grosso scoglio per i programmatori che
lavorano sul Web. Comunque sia il problema pi importante che SGML
richiede un DTD (Document Type Definition) per l'identificazione di tutte le
relazioni tra le entit che compongono il documento SGML, e di uno StyleSheet cio un foglio di stile che stabilisce il modo di rappresentare e/o
visualizzare i dati e le strutture definite nel DTD. Inoltre ogni documento SGML
deve necessariamente essere validato e quindi oltre ad un controllo sintattico
viene controllata anche la semantica delle strutture di dati presenti nel
documento (ad esempio non potr succedere che un titolo di capitolo viene
dopo il relativo sottotitolo). Si capisce quindi che in mancanza di uno di questi
elementi, o in caso di corruzione dei dati, le istanze SGML saranno
visualizzate come codice incomprensibile per l'utente finale. Il risultato di
queste considerazioni che per le applicazioni sul World Wide Web (WWW) le
istanze SGML non sono praticamente portabili data la loro intrinseca
pesantezza e non robustezza.
Lezione

successiva

[Sommario]

http://www.html.it/xml/guida/sgml.htm (1 di 2)12/10/04 16.14.17

cerca

XML: Capitolo I: L'importanza dell'XML - Relazione tra XML e SGML

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/sgml.htm (2 di 2)12/10/04 16.14.17

Note e informazioni legali

XML: Capitolo I: L'importanza dell'XML - Relazione tra XML e HTML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Relazione tra XML e HTML


LXML spesso considerato una sostituzione dellHTML. Sebbene questo
possa essere in parte vero, in realt i due linguaggi sono complementari e,
relativamente al modo in cui vengono trattati i dati, operano su livelli differenti.
Nei casi in cui lXML viene utilizzato per strutturare e descrivere i dati sul Web,
lHTML usato per formattare i dati.
Pregi di HTML :
Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

Data la semplicit della struttura dei documenti HTML, rappresenta un veloce


strumento per lo scambio delle informazioni sul Web. Le istanze HTML non
devono essere validate ma sufficiente che siano "ben formate", ovvero
sintatticamente corrette. Il modo con cui viene visualizzato il documento
dipende dallo Style-Sheet del browser stesso.
Limiti di HTML :
I limiti di HTML discendono proprio dai suoi pregi e sono dovuti soprattutto ad
un uso distorto di questo strumento. Dal momento che non richiesta una
strutturazione semanticamente corretta delle informazioni, HTML diventa
molto povero per le applicazioni di elaborazione dei dati, quindi il problema
viene completamente demandato agli applicativi scritti in Java, Java Script,
ecc. La sua struttura non estensibile e questo lo rende praticamente
inutilizzabile per le industrie che si sono viste costrette a crearsi standards
differenti per ogni diversa applicazione, ed ancora una volta compito del
software elaborare i dati per il trasferimento delle informazioni sul Web. Un
altro problema da non sottovalutare si pu verificare dalla parte del client
qualora non abbia un dispositivo video del tipo previsto dal server (per
esempio dispositivi per il braille o monitor non grafici).
Inoltre lHTML non offre i meccanismi per mantenere il controllo della
formattazione. Infatti non si possono specificare le dimensioni video di un
documento o controllare le dimensioni della finestra di un browser. Per
superare questo problema sono stati inseriti nuovi tag e i fogli di stile; i nuovi
tag forniscono istruzioni di formattazione come ad esempio il tag <FONT> per
specificare il tipo di carattere; gli utenti per, possono ignorare queste
specifiche e utilizzare le loro; inoltre questi tag sono di formattazione e non di
descrizione (come dovrebbero essere essendo lHTML un linguaggio di
descrizione del documento). Tutto questo fa s che uno sviluppatore di pagine
Web non sappia mai con certezza cosa un client visualizzer sullo schermo
del computer.
Il W3C (ente guida per lo sviluppo del Web), si rese conto che la creazione di
una moltitudine di nuovi tag che rispondessero a ogni possibile esigenza di
formattazione era irrealistica ed incoerente con i principi ed i concetti
dellHTML; vennero quindi introdotti i CSS (Cascading Style Sheet) che
permettono attraverso le norme di stile di definire come devono apparire
determinati elementi di un documento; anche con i CSS per, si deve
scegliere fra un assortimento di propriet predefinite.
Bisogna anche specificare che lasciare al browser la decisione di come
presentare un documento, fu esplicitamente voluto come impostazione del
progetto HTML (infatti come si gi detto un linguaggio di descrizione del
documento). Il browser conosce le preferenze degli utenti e soprattutto
lambiente in cui si trova ad operare; tutte informazioni che logicamente
lautore di un documento HTML non conosce (a parte pochi casi, come un

http://www.html.it/xml/guida/rel.htm (1 di 2)12/10/04 16.14.26

cerca

XML: Capitolo I: L'importanza dell'XML - Relazione tra XML e HTML

ambiente intranet omogeneo). Il poter decidere come visualizzare un


documento molto utile ad esempio quando un utente non dispone di un
browser grafico, oppure per utenti che hanno problemi di vista e hanno
bisogno di caratteri molto grandi, oppure addirittura per utenti non vedenti.
Sfortunatamente, le case produttrici di browser, non hanno capito la filosofia di
base dellHTML; il risultato di questo che allo stato attuale un numero
enorme di pagine sul Web, contengono insiemi di tag specifici per determinati
browser, e anche per determinate versioni dello stesso browser; queste
pagine sono molto spesso illeggibili. Gradualmente lHTML sta passando da
un linguaggio di descrizione, ad un linguaggio di presentazione, con tutti i
problemi qui descritti; lXML pu fornire una soluzione, fornendo un layout a
chiunque e indipendentemente dal browser utilizzato, attraverso lutilizzo
dellExstensible Style Language (XSL), che diventer uno standard
universalmente accettato.
LXML si differenzia dallHTML per tre maggiori aspetti:

Possono essere definiti nuovi tag ed attributi.

La struttura di un documento pu essere vista in modo gerarchico


nidificando i tag in ogni livello di complessit.

Ogni documento XML pu contenere una opzionale descrizione della


sua grammatica, in modo che possa essere utilizzata da applicazioni
che richiedono una validazione della struttura del documento.

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/rel.htm (2 di 2)12/10/04 16.14.26

Note e informazioni legali

XML: Capitolo I: L'importanza dell'XML - Le propriet dell'XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Le propriet dell'XML
LXML importante in due classi di applicazioni Web: la creazione di
documenti e lo scambio dei dati; i server Web attualmente utilizzati richiedono,
per essere in grado di servire documenti XML, minime modifiche di
configurazione; inoltre il metodo standard di collegamento e la connessione
dei documenti XML, utilizza gli URL, che vengono interpretati correttamente
della maggior parte del software per Internet.
Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

La sintassi dellXML molto simile a quella dellHTML, ma molto pi rigida e


severa; anche se al primo impatto questa caratteristica non sembra una
propriet positiva, (soprattutto per chi dovr scrivere documenti XML), stata
volutamente introdotta dal gruppo di studio del W3C, per facilitare lo sviluppo
di applicazioni basate sullXML e aumentarne le prestazioni (si pensi ad un
browser). Inoltre una sintassi chiara e pulita, aumenta la leggibilit di un
documento (questo vale in generale); a questo proposito si pu dire che una
sintassi chiara e pulita, unita alla possibilit di creare un proprio set di markup,
contribuir a rendere un file XML leggibile quanto un file di solo testo (e in
alcuni casi di pi).
LXML non limitato a un insieme fisso di tipi di elementi, ma permette di
definire e utilizzare elementi e attributi personalizzati; per far questo viene
fornita una sintassi con cui possibile specificare gli elementi e gli attributi che
possono essere utilizzati allinterno dei documenti. In altre parole possibile
creare un modello, chiamato Document Type Definition (DTD), che descrive la
struttura e il contenuto di una classe di documenti; lo stesso XML ha un
proprio DTD (attualmente descritto nella specifica REC-xml-19980210) in cui
vengono elencate le regole della specifica stessa del linguaggio. Con lXML
anche introdotta una classe di documenti che fa riferimento al solo DTD
dellXML; la creazione di un DTD personale non quindi indispensabile, come
mostra la Fig. 1.2.

Fig. 1.2: Un documento XML pu fare riferimento al DTD dellXML o a un DTD


personale
Questa possibilit semplifica molto lutilizzo dellXML rispetto allSGML. Nel
linguaggio SGML infatti i DTD sono indispensabili (e spesso complicati da
creare e da imparare), e un documento deve fare obbligatoriamente
riferimento ad uno di essi.
LXML permette di creare dei tag personalizzati; inoltre uno stesso documento
XML pu essere utilizzato per scopi diversi da applicazioni diverse. Come fa
una applicazione a riconoscere il markup disegnato per lei e ad evitare di
confonderlo con il markup disegnato per altre applicazioni? Ad esempio una
applicazione potrebbe utilizzare un elemento chiamato "address" per
identificare il domicilio di una persona; unaltra applicazione invece potrebbe
utilizzare lo stesso elemento per identificare lindirizzo elettronico di una
persona. Anche un programmatore potrebbe avere difficolt nel capire lutilizzo
http://www.html.it/xml/guida/proprieta.htm (1 di 3)12/10/04 16.14.36

cerca

XML: Capitolo I: L'importanza dell'XML - Le propriet dell'XML

di un determinato elemento; per risolvere questo tipo di problemi, il gruppo di


lavoro del W3C ha pensato ad un metodo per individuare le convenzioni che
governano lutilizzo di un particolare set di elementi; lidea quella di utilizzare
un namespace, cio un documento in cui viene definito lutilizzo di un
particolare set di elementi; un documento XML pu far riferimento ad un
namespace attraverso un indirizzo Web. Il documento di riferimento il WDxml-names-19990114.
LXML pu essere utilizzato come piattaforma per lo scambio di dati tra le
applicazioni, come mostra la Fig. 1.3; ci possibile perch orientato alla
descrizione dei dati.

Fig 1.3: LXML pu essere utilizzato come piattaforma per lo scambio di dati
Poniamo il caso che si voglia scambiare le informazioni di database su
Internet. Si immagini di utilizzare un browser per rinviare al server le
informazioni su un questionario compilato dagli utenti. Questo processo, come
molti altri, richiede un formato che possa essere personalizzato per un utilizzo
specifico e che sia una soluzione aperta non proprietaria.
LXML la soluzione per questo tipo di problema. Questo linguaggio in futuro
diventer sempre pi importante per lo scambio di dati su Internet.
LXML in grado di fornire una sola piattaforma per lo scambio di dati tra le
applicazioni. Era sempre stato difficile trovare un formato di interscambio che
potesse essere utilizzato per il trasferimento di dati tra database di fornitori
differenti e sistemi operativi diversi. Quel tipo di interscambio ora diventato
una delle applicazioni principali dellXML.
Le pagine HTML hanno lunico scopo di essere visualizzate da un browser
(infatti si dice che i dati nellHTML sono orientati al video); per questo molto
difficile lelaborazione successiva delle informazioni contenute nelle pagine
HTML. I documenti basati sullXML invece, non fanno supposizioni su come
verranno utilizzati dal client; cos le informazioni ricevute possono essere
utilizzate da unapplicazione che comprende il linguaggio XML, utilizzando i
dati ivi contenuti in altri processi software; quindi uno stesso documento pu
essere facilmente utilizzato per scopi diversi.
Il collegamento ipertestuale una caratteristica specifica dellHTML;
attualmente per, esso supporta solo un tipo di collegamento, che quello
unidirezionale; in un vero sistema ipertestuale i tipi di collegamento sono
diversi. Anche se lXML uno standard, molte cose sulle tecnologie correlate,
quali i fogli di stile ed il collegamento, sono ancora in fase di sviluppo; quindi il
modo esatto in cui il collegamento deve essere implementato nellXML
ancora in fase di studio. Sicuramente dovr essere compatibile con i
meccanismi di collegamento HTML esistenti, supportare lestensibilit e le
propriet intrinseche dellXML e implementare i vari tipi di collegamenti propri
di un vero sistema ipertestuale. Attualmente lo standard di riferimento

http://www.html.it/xml/guida/proprieta.htm (2 di 3)12/10/04 16.14.36

XML: Capitolo I: L'importanza dell'XML - Le propriet dell'XML

lExtensible Linking Languge (XLL) del 3/3/1998; stato diviso in due parti:
XML Linking Language (XLink) e XML Pointer Language (XPointer).
LXSL definisce la specifica per la presentazione e laspetto di un documento
XML: stato presentato nel 1997 da un consorzio di industrie software (tra cui
anche la Microsoft) al W3C perch lo approvasse come linguaggio di stile
standard per i documenti XML. LXSL un sottoinsieme del Document Style
Semantics and Specification Language (DSSSL), il linguaggio di stile utilizzato
in ambiente SGML; gode delle propriet di essere estensibile, potente ma
nello stesso tempo di facile utilizzo.
Con lXSL possibile creare fogli di stile che permettono la visualizzazione di
un documento XML in un qualsiasi formato (audio, video, braille, etc.), come
mostra la Fig. 1.4. Attualmente lo standard di riferimento il documento WDxsl-19990421.

Fig 1.4: LXSL permette di creare fogli di stile per un qualsiasi formato
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/proprieta.htm (3 di 3)12/10/04 16.14.36

Note e informazioni legali

XML: Capitolo I: L'importanza dell'XML - L'XML e il Web

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

L'XML e il Web
Si possono individuare quattro categorie di applicazioni che utilizzeranno
lXML:

Applicazioni che richiedono al Web client di mediare tra due o pi


database eterogenei.
Hosting Italiano

Applicazioni che tentano di distribuire i processi di caricamento


dellinformazione dal Web server al Web client.

ULTIM'ORA
Microsoft ripropone una
falla gi patchata

'AOL Browser', il dopoNetscape si basa su IE

Applicazioni che richiedono al Web client di presentare differenti viste


degli stessi dati ad utenti differenti.

P2P, Grokster e StreamCast


in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Applicazioni nelle quali motori di ricerca Web tentano di ritagliare le


informazioni scoperte, ai bisogni individuali degli utenti.
Lalternativa allXML, per queste applicazioni, sono codici proprietari inseriti
come script nei documenti HTML. La filosofia dellXML invece, si basa sul fatto
che il formato dei dati non sia legato a nessuno script in particolare, e sia uno
standard indipendente da qualsiasi organizzazione proprietaria.

Le altre news
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/web.htm12/10/04 16.14.46

Note e informazioni legali

XML: Capitolo I: L'importanza dell'XML - Database eterogenei

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

L'importanza dell'XMLDatabase eterogenei

Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde

Un esempio di questa categoria di applicazioni Web il sistema informativo di


unagenzia americana di "home health care". Questo tipo di agenzie sono il
maggior componente dellindustria medica americana e la loro importanza sta
aumentando da quando politiche governative hanno spostato lassistenza
medica ospedaliera verso lassistenza medica domestica. Come si pu ben
capire la gestione dellinformazione critica per questa industria; la salute di
un paziente rappresentata nel sistema informativo attraverso una collezione
di documenti storici che rappresentano la vita medica di una persona, passata
attraverso vari dottori, ospedali, farmacie e compagnie di assicurazioni;
quando un nuovo paziente entra in una agenzia, c lenorme compito di
prelevare tutto il materiale e di memorizzarlo nel database dellagenzia.
Lavvento del Web diede alla comunit informatica medica la speranza di poter
semplificare lo sforzo di memorizzazione delle informazioni nel database;
sfortunatamente le applicazioni Web esistenti offrono modelli di soluzione a
questo problema inadeguati. Gli ospedali offrono alle agenzie una soluzione
che in poche parole cos riassunta:

1.
Raggiungere il sito Web dellospedale

2.

Falla grave in Microsoft


Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Diventare un utente autorizzato

3.
Accedere alla documentazione medica del paziente attraverso il
browser

Le altre news

4.
Stampare la documentazione

5.
Inserire manualmente i dati nel database (dalla stampa)
Attualmente questa soluzione proposta da un gran numero di ospedali
americani. Una versione leggermente pi sofisticata permette alloperatore di
inserire manualmente i dati letti dal browser direttamente in un form
dellagenzia (in una finestra separata), evitando cos la stampa del documento.
Anche questa per non una grande soluzione. La soluzione ideale sarebbe
la seguente:

1.
Raggiungere il sito Web dellospedale

2.
Diventare un utente autorizzato

3.
Accedere alla documentazione medica del paziente attraverso una
interfaccia Web che rappresenti la documentazione con una icona a
cartella

http://www.html.it/xml/guida/database.htm (1 di 2)12/10/04 16.14.54

cerca

XML: Capitolo I: L'importanza dell'XML - Database eterogenei

Fare un drag della cartella dallapplicazione Web nel database interno

5.
Fare un drop della cartella nel database
Attualmente questa soluzione non possibile poich ci si scontra con i limiti
dellHTML; le ragioni sono due:

LHTML non permette di rappresentare strutture dati

LHTML non permette il controllo dei dati per validare i documenti


ricevuti
Una soluzione tecnica per implementare questo scambio di documenti quella
di richiedere agli ospedali e alle agenzie di utilizzare un sistema informativo
standard dettato dal governo (tale soluzione attualmente allo studio); questo
tipo di soluzione per difficile da mettere in pratica, soprattutto in un
ambiente dove ospedali e agenzie stanno attraversando un momento di
difficolt finanziaria (cambiare il sistema informativo comporta generalmente
grosse spese). Unaltra soluzione quella di adottare un formato standard di
scambio dellinformazione; un grande numero di industrie nel campo spaziale,
telecomunicazioni, hardware, software, ha utilizzato per anni un linguaggio
standard per lo scambio dei dati e il processo attualmente molto ben
compreso. Tipicamente un consorzio di grandi industrie definisce un
Document Type Definition (in ambiente SGML) per implementare un
linguaggio di markup specifico per un determinato scopo; quindi il linguaggio
utilizzato come standard per lo scambio dei dati in determinati ambienti.
La soluzione XML indipendente dai sistemi, dalle organizzazioni e proviene
dalla decennale esperienza dellSGML; lXML permette di utilizzare lapproccio
SGML per lo scambio dei dati nel Web; significativo come il giorno del
rilascio della prima versione stabile dellXML, lorganizzazione che raggruppa
le maggiori agenzie di home health care, abbia annunciato lo sviluppo
dellHealth Care Markup Language in ambiente SGML, che dovrebbe risolvere
i tipi di problemi descritti in questo esempio.
Si anche dimostrato che rappresentare i dati con un ricco markup ha dei
benefici che vanno oltre lo scambio dei dati; ad esempio molto utile
rappresentare risultati di un esame clinico con tag quali <allergia> oppure
<reazione>; infatti chi legge il documento subito allertato (da una
applicazione apposita) del fatto che un paziente pu essere allergico alla
penicillina.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/database.htm (2 di 2)12/10/04 16.14.54

Note e informazioni legali

XML: Capitolo I: L'importanza dell'XML - Processi distribuiti

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Processi distribuiti

Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Un esempio di questa seconda categoria di applicazioni XML il sistema di


distribuzione dei dati adottato dallindustria dei semiconduttori. Ogni grande
industria nel campo dei semiconduttori deve mantenere enormi quantit di dati
tecnici sui circuiti integrati prodotti. Per abilitare lo scambio di questi dati, anni
fa fu formato un consorzio (il Pinnacles Group) di industrie quali Intel, National
Semiconductor, Philips, Texas Instrument e Hitachi; lo scopo era quello di
sviluppare uno specifico linguaggio di markup in ambiente SGML; nel 1995
stata presentata la prima versione stabile e attualmente le grandi compagnie
sono impegnate nel processo dimplementazione di questo linguaggio. Si
potrebbe pensare che lincremento della popolarit dellHTML avesse fatto
cambiare idea ai membri del Pinnacles Group, ma le limitazioni di tale
linguaggio li hanno convinti che lidea originale fosse pi che corretta. Lidea
era che utilizzare il linguaggio di markup come veicolo per la distribuzione dei
dati sui circuiti integrati potesse permettere non solo la loro visualizzazione,
ma anche il progetto dei circuiti stessi. Questo approccio si integra molto bene
con la tecnologia dei Java applet perch permette ad un ingegnere di
accedere al sito Web di una industria di semiconduttori e di scaricarsi non solo
i dati di un particolare circuito integrato, ma anche un Java applet che
permetta di combinare i dati in vari modi.
Questo esempio dei semiconduttori una buona dimostrazione dei vantaggi
dellXML perch:

Richiede uno specifico tag set che non pu essere ottenuto con il non
estensibile tag set dellHTML.

Le altre news

Richiede che la rappresentazione dei dati sia indipendente dai sistemi


utilizzati nelle varie industrie.

Creare il disegno dei circuiti dai dati un processo


computazionalmente molto intensivo; quindi in un ambiente Web clientserver necessario distribuire il processo computazionale per ridurre al
minimo linterazione fra il client e il server e lasciare la parte pi
intensiva del processo sul client; questo aspetto pu essere riassunto
nel seguente slogan: "XML fa lavorare Java".
Bisogna notare che la validazione dei dati in questi processi non sempre
necessaria; infatti la validazione dei dati cruciale quando questi devono
essere memorizzati in un database, ma non sempre questo richiesto; per
rendere questi processi il pi efficienti possibile, XML permette che la
validazione sia un optional in applicazioni dove non necessaria.
Lesempio dei semiconduttori mostra come si integrano bene lXML e Java in
applicazioni in cui i dati devono essere manipolati in modo interessante sul
client.

Lezione

http://www.html.it/xml/guida/processi.htm (1 di 2)12/10/04 16.15.02

successiva

cerca

XML: Capitolo I: L'importanza dell'XML - Processi distribuiti

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/processi.htm (2 di 2)12/10/04 16.15.02

Note e informazioni legali

XML: Capitolo I: L'importanza dell'XML - Viste differenti

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Viste differenti

Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

Un utente pu decidere di cambiare la visualizzazione dei dati senza dover


scaricare differenti formati dal Web server. Una possibile applicazione di
questa categoria un dinamico tables of contents (TOC); possibile
attraverso un server Web, presentare allutente il contenuto di una struttura
dati utilizzando un TOC dinamico; con un click del mouse su una parte del
TOC, lutente pu ottenere livelli di dettaglio pi specifici della struttura dati. Un
TOC dinamico di questo tipo pu essere generato a run-time direttamente
dalla struttura gerarchica dei dati memorizzati in un database; sfortunatamente
il ritardo intrinseco della rete Internet, rende il processo di espansione o di
contrazione del TOC fastidioso per molti utenti. Una soluzione migliore
quella di scaricare lintera struttura TOC sul Web client; quindi lutente pu
espandere, contrarre, navigare nel TOC, supportato da processi molto veloci
che girano direttamente sul suo client.
Un gruppo di studio alla Sun ha implementato questo tipo di soluzione nel
Java-based HTML Help browser, ma le limitazioni dellHTML richiedono al
team ingegnose "capriole". In questa applicazione un TOC costruito
manualmente (le carenze dellHTML rendono impossibile la generazione
automatica del TOC direttamente dal documento), utilizzando un set di tag
inventato per questo proposito. Quindi il TOC inserito in un commento dentro
la pagina HTML, per fare in modo che il Web browser non abbia problemi di
riconoscimento del set di tag non convenzionale; un applet Java scaricato con
il documento HTML interpreta il markup del TOC, fornendolo allutente.
In pratica questa soluzione lavora molto bene; ma in ambiente XML, la
creazione manuale del TOC non necessaria; naturalmente attraverso un
editor necessario creare la struttura generale del TOC, ma il TOC specifico
di una particolare struttura dati pu essere generato a run-time e scaricato nel
browser che lo visualizza grazie al Java applet.
La capacit di catturare e trasmettere le informazioni semantiche e strutturale
dei dati, rende possibile attraverso lXML, limplementazione di una grande
variet di questo tipo di applicazioni; ad esempio:

Con un semplice click del mouse si pu optare per visualizzare la


versione per macchine Sparc del manuale tecnico del sistema
operativo Solaris, o la versione per macchine x86.

Oppure si pu optare per visualizzare il manuale in differenti lingue


internazionali.

Un documento che contiene molte annotazioni pu essere visualizzato


senza queste, oppure solo con le annotazioni, oppure sia con il testo
che con le annotazioni, semplicemente attraverso un menu di selezione.

Una agenda telefonica ordinata sul Cognome, pu istantaneamente


essere ordinata sul nome.
Questi sono solo alcuni esempi che possono essere implementati in ambiente
http://www.html.it/xml/guida/viste.htm (1 di 2)12/10/04 16.15.12

cerca

XML: Capitolo I: L'importanza dell'XML - Viste differenti

Web grazie allXML.


Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/viste.htm (2 di 2)12/10/04 16.15.12

Note e informazioni legali

XML: Capitolo I: L'importanza dell'XML - Motori di ricerca

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Motori di ricerca
XML permette di aggiungere informazioni semantiche al testo:
<Autore>Giancarlo Parma</Autore>

Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

questo permette di semplificare la creazione di applicazioni che svolgono


operazioni intelligenti con i documenti elettronici; un motore di ricerca sarebbe
in grado di eseguire ricerche esplicite nel Web per trovare tutti i documenti in
cui Giancarlo Parma lautore; in questo modo si pu superare uno dei limiti
dellHTML, in cui i dati sono orientati al video e difficili da utilizzare per una
elaborazione successiva; a questo riguardo, il commercio on-line in pieno
sviluppo e sempre pi commercianti in tutto il mondo si stanno affacciando nel
Web; per unindagine su un campione di acquirenti abituali via Internet, ha
evidenziato una certa frustrazione da parte dei consumatori per la difficolt di
trovare i prodotti di cui hanno bisogno; il problema risiede nel sistema di
indicizzazione delle merci, non sempre intuitivo e semplice come lutente
vorrebbe.
La chiave per risolvere questo tipo di problemi sta in questo slogan:
"Linformazione ha bisogno di conoscere se stessa, ma ha anche bisogno di
conoscere me"; supponiamo di dover implementare una guida TV
personalizzata per un sistema via cavo di 500 canali; la guida TV
personalizzata deve conoscere sia le preferenze e le caratteristiche dellutente
(livello di educazione, interessi, professione, et, etc.), sia le caratteristiche dei
programmi trasmessi; queste informazioni devono essere fornite in modo tale
da permettere al motore di ricerca implementato nella guida, di fare una
selezione intelligente dei programmi pi interessanti per lutente; si ha quindi
bisogno di un sistema standard che utilizzi uno specifico set di tag con cui
poter esprimere le caratteristiche di un particolare programma (argomento,
tipo di utenza a cui rivolto, attori, lunghezza, data in cui stato girato, lingua,
etc.).
Questo un semplice esempio che pu naturalmente essere esteso ad un
qualsiasi ambiente in cui linformazione debba essere ritagliati sui gusti degli
utenti; lXML unottima soluzione anche per questo tipo di problemi e
permetter ad applicazioni Web di competere realmente con la grande
distribuzione dislocata sul territorio.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/motori.htm12/10/04 16.15.20

Note e informazioni legali

XML: Capitolo II: Struttura e Sintassi

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Struttura e sintassi
Una delle caratteristiche principali dellXML la possibilit di fornire una
struttura a un documento. Ogni documento XML comprende sia una struttura
logica che una struttura fisica. La struttura logica simile a un modello che
indica quali elementi includere in un documento e in quale ordine. La struttura
fisica contiene i dati effettivi utilizzati in un documento, quali il testo
memorizzato nella memoria del computer, unimmagine memorizzata nel
WWW e cos via. Per comprendere la struttura di un documento XML,
osserviamo questo modello:
Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

Fig 1.5:Un documento XML ha sia una struttura logica che una struttura fisica.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/struttura.htm12/10/04 16.15.29

Note e informazioni legali

XML: Capitolo II: Struttura e Sintassi - Struttura logica del linguaggio XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Struttura logica del linguaggio XML


La struttura logica fa riferimento allorganizzazione delle parti di un documento:
in altre parole, indica il modo in cui viene creato un documento in
contrapposizione al contenuto del documento stesso.
Un documento XML costituito da dichiarazioni, elementi, istruzioni di
elaborazione e commenti. Alcuni componenti sono opzionali, altri sono
necessari.
Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

PROLOGO
Il primo elemento strutturale di un documento XML un prologo opzionale,
costituito da due componenti principali anchessi opzionali: la dichiarazione
XML e la dichiarazione del tipo di documento.
DICHIARAZIONE XML La dichiarazione XML identifica la versione delle
specifiche XML a cui conforme il documento. Sebbene la dichiarazione XML
sia un elemento opzionale, deve sempre essere inserita in documento XML. Il
documento inizia con una dichiarazione XML di base:
<?xml version="1.0"?>
Una dichiarazione XML pu inoltre contenere una dichiarazione di codifica
(encoding) e una dichiarazione di documento autonomo (standalone). La
dichiarazione di codifica identifica lo schema di codifica dei caratteri, ad
esempio UTF-8 o EUC-JP. Schemi di codifica diversi assegnano formati di
caratteri o linguaggi diversi. La dichiarazione di documento autonomo
identifica lesistenza delle dichiarazioni di markup esterne al documento.
Questo tipo di dichiarazione pu assumere valore yes o no.
DICHIARAZIONE DEL TIPO DI DOCUMENTO La dichiarazione del tipo di
documento costituita da codice di markup che indica le regole grammaticali
o la definizione del tipo di documento DTD per una particolare classe di
documenti. Questa dichiarazione pu anche essere diretta a un file esterno
che contiene tutta o parte della DTD e deve essere visualizzata dopo la
dichiarazione XML e prima dellelemento Document. Queste stringhe di codice
aggiungono una dichiarazione del tipo di documento allesempio:
<?xml version="1.0"?>
<!DOCTYPE Wildflowers SYSTEM "Wldflr.dtd">
LELEMENTO DOCUMENT
Lelemento Document contiene tutti i dati di un documento XML inclusi tutti i
sottoelementi nidificati e le entit esterne. Pu essere considerato simile
allunit C: del computer. Tutti i dati del computer sono memorizzati in questa
singola unit in cui le cartelle e le sottocartelle contengono le singole parti di
dati in una struttura logica e di semplice gestione. Queste stringhe di codice
aggiungono un elemento Document, in questo caso lelemento Plant
allesempio:
<?xml version="1.0"?>
<!DOCTYPE Wildflowers SYSTEM "Wldflr.dtd">
<PLANT>

http://www.html.it/xml/guida/logica.htm (1 di 2)12/10/04 16.15.39

cerca

XML: Capitolo II: Struttura e Sintassi - Struttura logica del linguaggio XML

<COMMON>Columbine</COMMON>
<BOTANICAL>Aquilegia canadensis</BOTANICAL>
</PLANT>
La nidificazione il processo che consente di incorporare un oggetto o un
costrutto luno allinterno dellaltro. Un documento XML pu ad esempio
contenere elementi nidificati e altri documenti. Ogni elemento secondario, cio
un elemento diverso dallelemento Document risiede interamente allinterno
del relativo elemento principale, cos :

<DOCUMENT>
<PARENT1>
<CHILD1></CHILD1>
<CHILD2></CHILD2>
</PARENT1>
</DOCUMENT>

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/logica.htm (2 di 2)12/10/04 16.15.39

Note e informazioni legali

XML: Capitolo II: Struttura e Sintassi - Struttura fisica del linguaggio XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Struttura fisica del linguaggio XML


La struttura fisica di un documento XML costituita da tutto il contenuto del
documento stesso. Le unit di memorizzazione definite entit, possono essere
parte integrante del documento o possono essere esterne. Ogni entit
identificata da un nome univoco e da un contenuto specifico che pu essere
costituito da un singolo carattere allinterno del documento o da un file esterno
di grandi dimensioni. In termini di struttura logica di un documento XML, le
entit vengono dichiarate nel prologo e viene loro fatto riferimento
nellelemento Document.
Hosting Italiano

Microsoft ripropone una


falla gi patchata

Dopo aver dichiarato la DTD, lentit pu essere utilizzata in un punto qualsiasi


del documento. Un riferimento di entit indica allelaboratore di recuperare il
contenuto di unentit, come stabilito dalla dichiarazione di entit, e di
utilizzarla allinterno del documento.

'AOL Browser', il dopoNetscape si basa su IE

ENTITA ANALIZZABILI E NON ANALIZZABILI

ULTIM'ORA

P2P, Grokster e StreamCast


in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

Unentit pu essere analizzabile o non analizzabile. Per entit analizzabile si


intende unentit in grado di essere letta dallelaboratore di XML che ne
consente lestrazione. Al termine dellestrazione, questo tipo di entit viene
visualizzata come parte del testo del documento nella posizione di riferimento
dellentit stessa. Ad esempio, una dichiarazione del tipo analizzabile potrebbe
essere questa :
<!ENTITY LR1 "light requirement: mostly shade">
Ogni volta che nel documento viene fatto riferimento a questa entit,
questultima verr sostituita dal contenuto. Se si desidera modificare il
contenuto dellentit, necessario effettuare questa operazione solo nella
dichiarazione e la modifica si rifletter in qualsiasi punto del documento in cui
venga utilizzata lentit.
RIFERIMENTI DI ENTITA Il contenuto di ogni entit viene aggiunto al
documento ogni volta che viene fatto riferimento a quellentit. Il riferimento ha
la funzione di segnaposto per lautore del contenuto e lelaboratore di XML
colloca il contenuto effettivo nei punti di riferimento. Per includere un
riferimento, bisogna inserire una e commerciale (&) e immettere il nome
dellentit seguito da punto e virgole (;). Allinterno di un documento
assumerebbe il seguente aspetto:
<TERM>Wild Ginger has the following &LR1;</TERM>
RIFERIMENTI DI ENTITA DI PARAMETRO Un altro tipo di riferimento
quello relativo allentit di parametro che utilizza un modulo (%) invece di una
e commerciale anche se laspetto simile a qualsiasi altro riferimento di entit.
%CDF; un esempio di entit di parametro.
Unentit non analizzabile viene indicata talvolta come entit binaria in quanto
il contenuto spesso costituito da un file binario, ad esempio unimmagine,
che non pu essere interpretato direttamente dallelaboratore XML. Unentit
non analizzabile richiede informazioni diverse da quelle incluse in unentit
analizzabile. Viene richiesta unannotazione che identifica il formato o il tipo di
risorsa per cui lentit viene dichiarata. Ad esempio :
<!ENTITY MyImage SYSTEM "Image001.gif" NDATA GIF>

http://www.html.it/xml/guida/fisica.htm (1 di 3)12/10/04 16.15.50

cerca

XML: Capitolo II: Struttura e Sintassi - Struttura fisica del linguaggio XML

Questa dichiarazione significa che lentit MyImage un file binario


nellannotazione GIF. Perch queste dichiarazione di entit siano valide,
anche lannotazione deve essere dichiarata. La dichiarazione di annotazione
consente allapplicazione di XML di gestire i file binari esterni. Nel caso
dellannotazione GIF utilizzata nellesempio, pu essere impiegata la
dichiarazione di annotazione seguente:
<!NOTATION GIF SYSTEM "/Utils/Gifview.exe">
Questa stringa di codice indica allelaboratore di XML di utilizzare Gifview.exe
per elaborare lentit di tipo GIF ogni volta che viene rilevata. Dopo essere
stata dichiarata, la dichiarazione di annotazione pu essere utilizzata
allinterno del documento.
ENTITA' PREDEFINITE
Nel linguaggio XML alcuni caratteri sono utilizzati per contrassegnare il
documento in modo specifico. Le parentesi angolari (<>) e la barra (/) sono
interpretate come markup e non come dati di un carattere effettivo:
<PLANT>Blodroot</PLANT>
Questi e altri caratteri sono riservati per il markup e non possono essere
utilizzati come contenuto. Se si desidera che questi caratteri siano visualizzati
come dati, necessario utilizzare determinati codici:
&lt; < (parentesi angolare di apertura)
&gt; > (parentesi angolare di chiusura)
&amp ; & (e commerciale)
&apos; (apostrofo)
&quot; " (virgolette doppie)
ENTITA INTERNE ED ESTERNE
Nel primo caso si tratta di unentit in cui non esistono unit di
memorizzazione fisica separate e il cui contenuto viene fornito nella
dichiarazione corrispondente, ad esempio:
<!ENTITY LR1
"light requirement: mostly shade">
Unentit esterna fa riferimento a ununit di memorizzazione nella
dichiarazione mediante un identificatore pubblico o di sistema. Lidentificatore
di sistema fornisce un collegamento alla posizione in cui si trova il contenuto
dellentit, ad esempio un URI (Uniform Resource Identifier) come ad esempio:
<!ENTITY MyImage
SYSTEM
"http://www.wildflowers.com/Image001.gif" NDATA GIF>
In questo caso lelaboratore di XML deve necessariamente leggere il file
Image001.gif per recuperare il contenuto di questa entit.
Oltre allidentificatore di sistema, lentit pu includere un identificatore
pubblico che fornisce un metodo opzionale e alternativo per il recupero del
contenuto di unentit da parte dellelaboratore di XML. Questo identificatore
pu essere ad esempio utilizzato se lapplicazione collegata a una libreria
del documento disponibile pubblicamente. Se lelaboratore non in grado di
http://www.html.it/xml/guida/fisica.htm (2 di 3)12/10/04 16.15.50

XML: Capitolo II: Struttura e Sintassi - Struttura fisica del linguaggio XML

generare una posizione appropriata per lidentificatore pubblico, necessario


che venga controllato lURI specificato dallidentificatore di sistema. Ad
esempio:
<!ENTITY MyImage PUBLIC
"-//Wildflowers/TEXT Standard images//EN"
"http://www.wildflowers.com/Image001.gif"
NDATA GIF>
Lelaboratore di XML verifica lidentificatore pubblico allinterno di un elenco di
risorse a cui collegato e scoprire che non necessaria una nuova copia
dellentit perch gi disponibile localmente.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/fisica.htm (3 di 3)12/10/04 16.15.50

Note e informazioni legali

XML: Capitolo II: Struttura e Sintassi - Sintassi XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Sintassi XML
Le regole strutturali del linguaggio XML si riflettono nelle regole linguistiche o
sintassi.
Lezione

successiva

[Sommario]

Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/sintassi.htm12/10/04 16.16.01

Note e informazioni legali

XML: Capitolo II: Struttura e Sintassi - Apertura e chiusura dei tag

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Apertura e chiusura dei tag


Nel codice HTML un elemento contiene in genere sia tag di apertura che di
chiusura. A differenza dellHTML, lXML richiede che un tag di chiusura venga
utilizzato per ogni elemento.
Si consideri ad esempio lelemento HTML Paragraph che dovrebbe in genere
includere un tag di apertura, il contenuto e un tag di chiusura come mostrato di
seguito:
Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

<P>Questo un elemento HTML Paragraph.</P>


Non sempre viene utilizzato un tag di chiusura in questo contesto. Questo
avviene perch lHTML e il linguaggio di origine SGML consentono di omettere
i tag di chiusura senza invalidare il codice.
Poich un paragrafo in HTML non pu essere annidato allinterno di un altro
paragrafo, lelaboratore in grado di leggere il tag di apertura del paragrafo e
di presumere che indichi anche la fine del paragrafo precedente. Queste
tecniche di minimizzazione non sono consentite nel linguaggio XML. Questa
caratteristica costituisce la differenza sintattica pi evidente tra i due linguaggi.
IL TAG DI ELEMENTO VUOTO
Il linguaggio XML supporta un collegamento per elementi vuoti, il tag di
elemento vuoto. Questo tag unisce i tag di apertura e di chiusura per un
elemento senza alcun contenuto. Viene utilizzato un formato speciale:
<NOMETAG/>. In questo caso la barra segue il nome del tag, il che non
possibile nel linguaggio HTML.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/tag.htm12/10/04 16.16.09

Note e informazioni legali

XML: Capitolo II: Struttura e Sintassi - Attributi

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Attributi
Gli attributi consentono di associare valori a un elemento senza che siano
considerati parte del contenuto dellelemento stesso. Ad esempio osserviamo un
comune elemento HTML e lutilizzo di un attributo:
<A HREF = "http://www.microsoft.com">Microsoft Home Page</A>

Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata

In questo caso lelemento Anchor indicato dal tag <A> contiene un attributo
denominato HREF. Il valore dellattributo http://www.microsoft.com. Mentre il
valore non viene mai visualizzato dallutente, lattributo contiene importanti
informazioni relative allelemento e fornisce la destinazione dellancoraggio.
Questo formato del nome e del valore mostra il modo in cui sono utilizzati gli
attributi nel linguaggio XML.

'AOL Browser', il dopoNetscape si basa su IE

Questo esempio aggiunge un attributo a uno degli elementi del documento:

P2P, Grokster e StreamCast


in tribunale

<?xml version="1.0"?>
<!DOCTYPE Wildflowers SYSTEM "Wldflr.dtd">

FSF Europe esclusa dalla


Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

<PLANT ZONE=3>
<COMMON>Columbine</COMMON>
<BOTANICAL>Aquilegia canadensis</BOTANICAL>
</PLANT>
Lattributo ZONE del tag di apertura <PLANT> segue il formato del nome e del
valore.

Le altre news
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/attributi.htm12/10/04 16.16.18

Note e informazioni legali

XML: Capitolo II: Struttura e Sintassi - Documenti XML validi e ben formati

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Documenti XML validi e ben formati


Il linguaggio XML possiede due caratteristiche fondamentali, la capacit di
fornire una struttura ai documenti e di rendere i dati autodescrittivi. Queste
caratteristiche non sarebbero di alcuna utilit se non si potessero far rispettare
le regole strutturali e grammaticali.
Lezione

successiva

[Sommario]
Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/doc.htm12/10/04 16.16.26

Note e informazioni legali

XML: Capitolo II: Struttura e Sintassi - Documenti validi

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Documenti validi
La definizione del tipo di documento DTD specificata nel prologo delinea tutte
le regole relative a un documento. Un documento XML valido segue tutte
queste regole rigidamente. Un documento valido conforme anche a tutti i
limiti di validit identificati dalle specifiche relative allXML.

Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata

Lelaboratore dovr comprendere i limiti di validit delle specifiche XML e


verificare possibili violazioni allinterno del documento. Se lelaboratore trova
un errore, deve comunicarlo allapplicazione XML. Dovr inoltre leggere la
DTD, convalidare il documento e riportare qualsiasi violazione allapplicazione
XML. Dato che questi controlli possono richiedere tempo e occupare
larghezza di banda e poich la convalida non sempre necessaria, il
linguaggio XML supporta la nozione di documento ben formato.

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale

Lezione

successiva

[Sommario]

FSF Europe esclusa dalla


Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/validi.htm12/10/04 16.17.18

Note e informazioni legali

XML: Capitolo II: Struttura e Sintassi - Documenti ben formati

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Documenti ben formati


Anche se ben formato significa che necessario seguire alcune regole, non
richiesto la stessa rigidit dei limiti di validit. Il concetto di documento ben
formato relativamente nuovo in XML. Un documento XML ben formato pi
facile da leggere per un programma ed pronto per la distribuzione in rete.
Pi specificatamente, i documenti ben formati hanno queste caratteristiche:

Tutti i tag di apertura e di chiusura corrispondono.

Hosting Italiano

ULTIM'ORA

I tag vuoti utilizzano una sintassi XML speciale.

Microsoft ripropone una


falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE

Tutti i valori degli attributi sono racchiusi tra virgolette.

P2P, Grokster e StreamCast


in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Tutte le entit sono dichiarate.


Quindi, un documento XML valido rispetta i tag e le norme di nidificazione
impostate nel DTD del documento, mentre un documento XML ben formato
viene strutturato in modo appropriato per lutilizzo da parte di un computer.

Dirac, la BBC presenta il


codec video open source

Le altre news

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/formati.htm12/10/04 16.17.27

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - DTD

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

DTD<
Un documento XML comprende, come sappiamo, il prologo che contiene la
dichiarazione XML e la dichiarazione del tipo di documento, che identifica il
tipo di documento specifico elaborato e le regole che controllano il documento
completo. Queste regole sono denominate definizione del tipo di documento o
DTD e costituiscono la parte pi complessa della dichiarazione del tipo di
documento.
Hosting Italiano

Lezione

successiva

[Sommario]
ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/dtd.htm12/10/04 16.17.34

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Struttura della DTD

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Struttura della DTD

Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano

Una DTD pu essere costituita da due parti: un sottoinsieme DTD esterno e


un sottoinsieme DTD interno. Nel primo caso si tratta di una DTD che esiste
allesterno del contenuto del documento, nel secondo caso si tratta di una
DTD inclusa allinterno del documento XML. Un documento pu contenere una
o entrambi i tipi di sottoinsiemi. In questo caso il sottoinsieme interno viene
elaborato per primo e gli viene data la precedenza su qualsiasi sottoinsieme
esterno. Questa funzionalit utile agli autori che impiegano una DTD
esterna, ma che desiderano personalizzare alcune parti della DTD per
unapplicazione specifica.
Se si desidera includere un sottoinsieme DTD interno al documento,
sufficiente scriverlo nella dichiarazione del tipo di documento. Un sottoinsieme
DTD esterno tuttavia deve essere incluso mediante un riferimento DTD, che
indica al processore dove trovare il sottoinsieme esterno specificando il nome
del file DTD. Il riferimento DTD contiene inoltre informazioni relative allautore,
allobiettivo e al linguaggio utilizzato nella DTD. Ad esempio:
<!DOCTYPE catalog PUBLIC "-//flowers//DTD
http://www.wildflowers.com/dtd/Wldflr.dtd

Standard //EN"

46645: manda un SMS e


Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Lezione

successiva

[Sommario]

Le altre news

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/strutturad.htm12/10/04 16.17.49

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Creazione di una DTD semplice

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Creazione di una DTD semplice


Creiamo un documento XML di messaggio di posta elettronica con un
sottoinsieme DTD interno.
<?xml version="1.0"?>

Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

<!DOCTYPE EMAIL [
<!ELEMENT EMAIL (TO, FROM, CC, SUBJECT, BODY)>
<!ELEMENT TO (#PCDATA)>
<!ELEMENT FROM (#PCDATA)>
<!ELEMENT CC (#PCDATA)>
<!ELEMENT SUBJECT (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
]>
<EMAIL>
<TO>Jodie@msn.com</TO>
<FROM>Bill@msn.com</FROM>
<CC>Philip@msn.com</CC>
<SUBJECT>My first DTD</SUBJECT>
<BODY>Hello, World</BODY>
</EMAIL>
Si noti che il codice contiene informazioni aggiuntive nella dichiarazione del tipo
di documento. In questo caso si tratta del sottoinsieme DTD interno e identifica
gli elementi che possono essere presenti nel documento e il tipo di dati che deve
contenere. Se questo documento viene eseguito visualizzando la pagina XML, il
documento avr questo aspetto:

In questo caso lelaboratore sta convalidando il documento in base alla DTD. In


altri termini la pagina XML che visualizza il documento esegue lanalisi
utilizzando un elaboratore di convalida. Ci significa che lelaboratore verifica il
documento in base alle regole della DTD per accertare che tutto il codice
utilizzato nel documento sia valido.

http://www.html.it/xml/guida/creadtd.htm (1 di 3)12/10/04 16.17.58

cerca

XML: Capitolo III: Definizione del tipo di documento (DTD) - Creazione di una DTD semplice

Per verificare il funzionamento della convalida, aggiungiamo un elemento non


incluso nella DTD al documento, ad esempio un elemento Signature, al termine
del documento, come:
<?xml version="1.0"?>
<!DOCTYPE EMAIL [
<!ELEMENT EMAIL (TO, FROM, CC, SUBJECT, BODY)>
<!ELEMENT TO (#PCDATA)>
<!ELEMENT FROM (#PCDATA)>
<!ELEMENT CC (#PCDATA)>
<!ELEMENT SUBJECT (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
]>
<EMAIL>
<TO>Jodie@msn.com</TO>
<FROM>Bill@msn.com</FROM>
<CC>Philip@msn.com</CC>
<SUBJECT>My first DTD</SUBJECT>
<BODY>Hello, World</BODY>
<SIGNATURE>Bill</SIGNATURE>
</EMAIL>

Se si cerca di eseguire questo documento, verr visualizzato un messaggio di


errore perch lelaboratore non trova la dichiarazione relativa allelemento
Signature nella DTD simile a questo :
Element content is invalid according to the DTD/Schema. (Il contenuto
dellelemento non valido in base alla DTD/Schema.)
Modifichiamo adesso una parte della DTD. Notiamo che la prima dichiarazione
dellelemento relativa allelemento Email:
<!ELEMENT EMAIL (TO,FROM,CC,SUBJECT,BODY)>

Allinterno di questa riga di codice tra le parentesi presente un elenco degli altri
elementi che possono essere contenuti nel documento. Questo elenco viene
definito modello di contenuto e identifica gli elementi secondari che lelemento
Email deve contenere e lordine in cui sono elencati.
Ad esempio rimuoviamo lelemento Subject dal modello di contenuto.
<!DOCTYPE EMAIL [
<!ELEMENT EMAIL (TO, FROM, CC, BODY)>
<!ELEMENT TO (#PCDATA)>
<!ELEMENT FROM (#PCDATA)>
<!ELEMENT CC (#PCDATA)>
<!ELEMENT SUBJECT (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
]>

Lesecuzione del documento causerebbe un errore, perch il documento non ha


seguito il modello di documento specificato. Torniamo al documento originale per
modificare lordine degli elementi From e Cc affinch la parte superiore del
documento assuma laspetto seguente:
<EMAIL>
<TO>Jodie@msn.com</TO>
<CC>Philip@msn.com</CC>
<FROM>Bill@msn.com</FROM>
<SUBJECT>My first DTD</SUBJECT>
http://www.html.it/xml/guida/creadtd.htm (2 di 3)12/10/04 16.17.58

XML: Capitolo III: Definizione del tipo di documento (DTD) - Creazione di una DTD semplice

<BODY>Hello, World</BODY>
<SIGNATURE>Bill</SIGNATURE>
</EMAIL>

Ancora una volta al momento dellesecuzione del documento, verr restituito un


errore perch lelaboratore prevedeva un altro elemento al posto di quello
ottenuto.
E dunque chiaro che la DTD ha il ruolo di un rigido regolamento per i documenti
XML, quindi importante fare attenzione al momento della creazione delle DTD.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/creadtd.htm (3 di 3)12/10/04 16.17.58

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Dichiarazioni di elementi

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Dichiarazioni di elementi
Ogni dichiarazione di elemento contiene il nome dellelemento e il tipo di dati
definito specifiche di contenuto costituite da uno tra i quattro tipi seguenti:

Un elenco di altri elementi, denominato modello di contenuto

Hosting Italiano

ULTIM'ORA

La parola chiave EMPTY

Microsoft ripropone una


falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale

La parola chiave ANY

Contenuto di vario tipo

FSF Europe esclusa dalla


Commissione Vigevano

ULTERIORI INFORMAZIONI SUL MODELLO DI CONTENUTO

46645: manda un SMS e


Google risponde

La DTD dellesempio precedente iniziava con una dichiarazione di elemento


inclusa nel modello di contenuto, come illustrato nella parentesi che segue:

Falla grave in Microsoft


Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

<!ELEMENT EMAIL (TO, FROM, CC, SUBJECT, BODY)>


Lelemento Email contiene solo sottoelementi o elementi secondari. Per ogni
elemento del modello di contenuto deve essere visualizzata una dichiarazione
di elemento corrispondente nella parte restante della DTD che segue.
DICHIARAZIONE DI ELEMENTO VUOTO
Per dichiarare che un elemento non pu avere alcun contenuto, possibile
utilizzare la parola chiave EMPTY nella dichiarazione di elemento, come
indicato di seguito:
<!ELEMENT TEST EMPTY>
Un elemento Test di un documento che includa la dichiarazione precedente
non potrebbe mai avere alcun contenuto e sarebbe necessario che fosse
indicato come elemento vuoto, ad esempio <TEST/>. Anche se gli elementi
vuoti potrebbero sembrare inutili, possono contenere attributi in grado di
fornire un contenuto significativo o di funzioni specifiche allinterno di un
documento. Il tag <BR> in HTML un esempio di tag di elemento vuoto.
DICHIARAZIONE DI TUTTI GLI ELEMENTI
La specifica di contenuto ANY esattamente lopposto della parola chiave
precedente. Se una dichiarazione di elemento utilizza la parola chiave ANY
per le specifiche di contenuto, quel tipo di elemento potr avere qualsiasi tipo
di contenuto in base alle disposizioni della DTD, disposto in un ordine
qualsiasi. La dichiarazione di tutti gli elementi assume questo aspetto:
<!ELEMENT TEST ANY>

http://www.html.it/xml/guida/elem.htm (1 di 2)12/10/04 16.18.08

cerca

XML: Capitolo III: Definizione del tipo di documento (DTD) - Dichiarazioni di elementi

CONTENUTO DI VARIO TIPO


Le specifiche di contenuto possono anche essere costituite da un singolo
insieme di alternative separate dal simbolo pipe (|). Ad esempio:
<!ELEMENT EXAMPLE (#PCDATA|x|y|z)*>

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/elem.htm (2 di 2)12/10/04 16.18.08

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Tipi di dati

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Tipi di dati
Allinterno del contenuto dei documenti, il linguaggio XML consente di
utilizzare dati di caratteri analizzabili dichiarati mediante la parola chiave
#PCDATA e i dati di caratteri dichiarati mediante la parola chiave CDATA. I
dati di caratteri analizzabili sono dati di caratteri di markup, contengono quindi
tag di markup. I dati di caratteri sono costituiti da testo ordinario che pu
includere caratteri in genere riservati al markup. In base allimpostazione
predefinita, gli elaboratori di XML presuppongono che il contenuto di un file
XML sia costituito da dati di caratteri.
Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale

Mentre i dati di caratteri analizzabili sono in genere utilizzati nel contenuto di


un documento XML, i dati di carattere possono essere utilizzati nel caso in cui
un autore desideri includere dati che non possono essere analizzati. Per
dichiarare una sezione come dati di carattere, necessario indicare linizio
della sezione con la sequenza <![CDATA[ e la fine con due parentesi di
chiusura ]]. Tutti i dati che risiedono allinterno di questo insieme di marcatori
verranno interpretati come semplici dati non analizzabili.

FSF Europe esclusa dalla


Commissione Vigevano
46645: manda un SMS e
Google risponde

Lezione

successiva

[Sommario]

Falla grave in Microsoft


Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/tipi.htm12/10/04 16.18.16

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Simboli relativi alla struttura

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Simboli relativi alla struttura


Il linguaggio XML utilizza una serie di simboli per specificare la struttura di una
dichiarazione di elementi. La tabella seguente identifica i simboli disponibili, lo
scopo di ogni simbolo, un esempio di come vengono utilizzati e il loro significato.
Simbolo

Hosting Italiano

ULTIM'ORA

Esempio
(content1,
content2)

Lelemento deve
contenere la sequenza
content1 e content2.

Virgola

Separa gli elementi di


una sequenza e
identifica lordine in
cui devono essere
visualizzati

(content1,
content2,
content3)

Lelemento deve
contenere content1,
content2 e content3
nellordine specificato.

Pipe

Separa gli elementi in


un gruppo di
alternative

(content1|

Lelemento deve
contenere content1,
content2 o content3.

'AOL Browser', il dopoNetscape si basa su IE

FSF Europe esclusa dalla


Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Significato

Parentesi Racchiudono una


sequenza, un gruppo
di elementi o una
serie di alternative

Microsoft ripropone una


falla gi patchata

P2P, Grokster e StreamCast


in tribunale

Scopo

content2|
content3)

Punto di
domanda

Indica che un
elemento deve essere
visualizzato una sola
volta o non apparire
mai

content1?

Lelemento pu
contenere content1. Se
content1 viene
visualizzato, deve
apparire una sola volta.

Asterisco

Indica che lelemento


pu essere
visualizzato ogni volta
che lautore desidera

content1*

Lelemento pu
contenere content1. Se
viene visualizzato, pu
apparire una o pi volte.

Segno
pi

Indica che un
elemento deve essere
visualizzato una o pi
volte

content1+

Lelemento deve
contenere content1 una
volta, ma pu essere
visualizzato anche pi
di una volta.

Nessun
simbolo

Indica che deve


essere visualizzato un
elemento

content1

Lelemento deve
contenere content1.

Le altre news

Lezione

successiva

[Sommario]

http://www.html.it/xml/guida/simboli.htm (1 di 2)12/10/04 16.18.22

cerca

XML: Capitolo III: Definizione del tipo di documento (DTD) - Simboli relativi alla struttura

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/simboli.htm (2 di 2)12/10/04 16.18.22

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Attributi

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Attributi
Oltre alla definizione della struttura di un elemento e al tipo di contenuto,
possibile associare attributi a un elemento. Gli attributi forniscono informazioni
aggiuntive relative allelemento o al contenuto dellelemento.
DICHIARAZIONI DI ATTRIBUTO

Hosting Italiano

Nel linguaggio XML gli attributi vengono dichiarati nella DTD utilizzando la
sintassi seguente:
<!ATTLIST ElementName AttributeName Type

Default>

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

In questo caso <!ATTLIST> rappresenta il tag che identifica una dichiarazione di


attributo. La voce ElementName rappresenta il nome dellelemento a cui vengono
applicati gli attributi, La voce AttributeName rappresenta il nome dellattributo. La
voce Type identifica il tipo di attributo dichiarato. La voce Default specifica le
impostazioni predefinite relative allattributo.
Ecco elencati i tipi di attributi disponibili per il linguaggio XML:
Tipo di attributo

Utilizzo

CDATA

In questo attributo possono essere utilizzati solo dati in


formato carattere.

ENTITY

Il valore dellattributo deve fare riferimento a unentit


binaria esterna dichiarata nella DTD.

Dirac, la BBC presenta il


codec video open source

Le altre news

ENTITIES

E equivalente allattributo ENTITY, ma consente lutilizzo di


pi valori separati da spazi.

ID

Il valore dellattributo deve essere un identificatore univoco.


Se un documento contiene attributi ID con lo stesso valore,
lelaboratore produrr un errore.

IDREF

Il valore deve essere un riferimento a un ID dichiarato in un


altro punto del documento. Se lattributo non corrisponde al
valore dellID specificato, lelaboratore produrr un errore.

IDREFS

E equivalente allattributo IDREF, ma consente lutilizzo di


pi valori separati da spazi.

NMTOKEN

Il valore dellattributo consiste in una qualsiasi


combinazione di caratteri del token del nome, rappresentati
da lettere, numeri, punti trattini, due punti o caratteri di
sottolineatura.

http://www.html.it/xml/guida/attrib.htm (1 di 3)12/10/04 16.18.32

cerca

XML: Capitolo III: Definizione del tipo di documento (DTD) - Attributi

NMTOKENS

E equivalente allattributo NMTOKEN, ma consente


lutilizzo di pi valori separati da spazi.

NOTATION

Il valore dellattributo deve fare un riferimento a


unannotazione dichiarata in un altro punto della DTD. La
dichiarazione pu anche essere costituita da un elenco di
annotazioni. Il valore deve corrispondere a una delle
annotazioni dellelenco. Ogni annotazione deve avere la
relativa dichiarazione nella DTD.

Enumerated

Il valore dellattributo deve corrispondere a uno dei valori


inclusi. Ad esempio: <!ATTLIST MyAttribute (content1|
content2)>.

La parte finale della dichiarazione di attributo limpostazione predefinita per il


valore dellattributo. Le impostazioni predefinite per i quattro tipi sono:
Impostazione
predefinita

Utilizzo

#REQUIRED

Ogni elemento contenente questo attributo deve


specificarne un valore. Un valore mancante pu
causare un errore.

#IMPLIED

Questo attributo opzionale. Lelaboratore pu


ignorare questo attributo se non viene rilevato
alcun valore.

#FIXED fixedvalue

Questo attributo deve avere il valore fixedvalue. Se


lattributo non incluso nellelemento, viene
stabilito il valore fixedvalue.

Default

Identifica un valore predefinito per un attributo. Se


lelemento non include lattributo, viene stabilito il
valore default.

Nel documento desempio mostriamo lutilizzo degli attributi aggiungendo alcune


dichiarazioni di attributo alla DTD:
<?xml version="1.0"?>
<!DOCTYPE EMAIL [
<!ELEMENT EMAIL (TO+, FROM, CC*, BCC*, SUBJECT?, BODY?)>
<!ATTLIST EMAIL
LANGUAGE(Western|Greek|Latin|Universal) " Western"
ENCRYPTED CDATA #IMPLIED
PRIORITY (NORMAL|LOW|HIGH) "NORMAL">
<!ELEMENT TO (#PCDATA)>
<!ELEMENT FROM (#PCDATA)>
<!ELEMENT CC (#PCDATA)>
<!ELEMENT BCC (#PCDATA)>
<!ATTLIST BCC
HIDDEN CDATA #FIXED "TRUE">
<!ELEMENT SUBJECT (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>

http://www.html.it/xml/guida/attrib.htm (2 di 3)12/10/04 16.18.32

XML: Capitolo III: Definizione del tipo di documento (DTD) - Attributi

]>
In questo esempio sono stati aggiunti attributi allelemento Email e al nuovo
elemento Bcc. Il primo attributo aggiunto allelemento Email LANGUAGE.
Questo attributo pu contenere una tra le numerose opzioni. Lattributo conterr il
valore predefinito Western se non verr specificato un altro valore. Lattributo
successivo dellelemento Email ENCRYPTED. Questo elemento deve
contenere i dati di carattere e poich limpostazione predefinita #IMPLIED,
lelaboratore ignorer questo attributo se non verr specificato alcun valore.
Lultimo attributo dellelemento Email PRIORITY. Questo attributo pu
assumere uno dei tre valori NORMAL, LOW e HIGH. Il valore predefinito
NORMAL.
Lattributo HIDDEN stato incluso nellelemento Bcc. Questo attributo di tipo
CDATA e il valore predefinito di #FIXED viene specificato dopo la parola chiave
#FIXED. Questo attributo deve sempre specificare il valore nella DTD, in questo
caso TRUE.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/attrib.htm (3 di 3)12/10/04 16.18.32

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Entita'

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Entit
Oltre allentit generale viste nel capitolo precedente esiste un altro tipo di entit definita
entit di parametro.
La maggior parte delle entit deve essere dichiarata nella DTD. Alcune entit predefinite
sono incorporate nel codice XML e sono utilizzate per visualizzare i caratteri generalmente
impiegati per il markup. Le dichiarazioni di entit seguono la stessa sintassi di base utilizzata
dalle altre dichiarazioni:
Hosting Italiano

ULTIM'ORA
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch
Dirac, la BBC presenta il
codec video open source

Le altre news

<!ENTITY EntityName EntityDefinition>


Le entit della DTD possono essere analizzabili o non analizzabili. Le entit del primo tipo o
entit di testo contengono testo che far parte del documento XML. Le entit del secondo
tipo o entit binarie sono in genere riferimenti a un file binario esterno. Le entit non
analizzabili possono anche essere costituite da testo non analizzabile ed quindi preferibile
pensare a queste entit come elementi che non sono stati creati per essere considerati parte
del codice XML.
ENTITA INTERNE
Le entit interne vengono dichiarate nella DTD e includono il contenuto che verr utilizzato
nel documento. Ad esempio, questa riga di codice aggiunge unentit interna definita
SIGNATURE:
<!ENTITY SIGNATURE "Bill">
Ogni volta che viene fatto riferimento allentit nel documento, &SIGNATURE, questultima
verr sostituita dal relativo contenuto, in questo caso Bill.
ENTITA ESTERNE: PAROLE CHIAVE SYSTEM E PUBLIC
Le entit esterne fanno riferimento a file esterni, anche ad altri file XML. Ad esempio, questa
entit fa riferimento a un file GIF esterno e verr visualizzata nel corpo del documento XML:
<!ENTITY IMAGE1 SYSTEM "Xmlquot.gif" NDATA GIF>
Una dichiarazione di entit esterna pu includere la parola chiave SYSTEM o PUBLIC. Molte
DTD sono sviluppate localmente, vengono cio sviluppate per unazienda o organizzazione
specifica o per un sito Web particolare. In questo caso andrebbe utilizzata la parola chiave
SYSTEM. Questa parola chiave seguita da un URI (Uniform Resource Identifier) che
indica allelaboratore dove reperire loggetto indicato nella dichiarazione. Nellesempio
precedente, il nome di file era utilizzato perch il codice aveva impiego locale. Nella
dichiarazione che segue, lURI un indirizzo Web che collega alla posizione dei file di
riferimento:
<!ENTITY IMAGE1 SYSTEM http://XMLCo.com/Images/Xmlquot.gif NDATA GIF>
Alcune DTD sono standard stabiliti disponibili per unampia gamma di utenti. Sarebbe
necessario utilizzare la parola chiave PUBLIC, seguita dallidentificatore pubblico che
lelaboratore pu impiegare se disponibile una libreria standard. Dopo lidentificatore
pubblico inserito un URI, simile a quello utilizzato con la parola chiave SYSTEM. Un
esempio potrebbe essere questo:
<!ENTITY IMAGE1 PUBLIC "-//XMLCo//TEXT Standard Images//EN"
"http://XMLCo.com/Images/Xmlquot.gif" NDATA
GIF>

http://www.html.it/xml/guida/entita.htm (1 di 3)12/10/04 16.20.52

XML: Capitolo III: Definizione del tipo di documento (DTD) - Entita'

ENTITA ESTERNE: ANNOTAZIONI E DICHIARAZIONI DI ANNOTAZIONI


Consideriamo la dichiarazione di entit:
<!ENTITY IMAGE1 SYSTEM "Xmlquot.gif" NDATA GIF>
Unannotazione NDATA GIF viene visualizzata nella parte finale della dichiarazione. Questa
annotazione indica allelaboratore il tipo di oggetto a cui viene fatto riferimento. A questo
punto se viene semplicemente aggiunta la dichiarazione di entit alla DTD e viene eseguita
attraverso lelaboratore, verr visualizzato un messaggio di errore simile al seguente:
Declaration IMAGE1 contains reference to undefined notation GIF.
(La dichiarazione IMAGE1 contiene un riferimento a unannotazione GIF non identificata.)
Lerrore si verifica perch la dichiarazione di entit fa riferimento a un tipo di file binario e
allelaboratore non stato indicato come operare con questo file. Si tratta di unentit non
analizzabile che lelaboratore non in grado di comprendere. In questo caso lannotazione
deve essere dichiarata come dichiarazione di annotazione. Una dichiarazione di annotazione
indica allelaboratore come operare con un tipo di file binario specifico. Le dichiarazioni di
annotazione hanno il seguente formato:
<!NOTATION GIF SYSTEM "Iexplore.exe">
Questa dichiarazione indica allelaboratore di utilizzare il programma Iexplore.exe per
elaborare il file GIF ogni volta che nella DTD ne viene rilevato uno.
ENTITA DI PARAMETRO
Anche se le entit di parametro funzionano in modo simile alle entit generali, possiedono
unimportante differenza sintattica. Le entit di parametro utilizzano il simbolo di percentuale
(%) nelle dichiarazioni e nei riferimenti. Nella dichiarazione di entit il simbolo di percentuale
segue la parola chiave !ENTITY, ma precede il nome dellentit come illustrato di seguito. Si
noti che richiesto uno spazio singolo prima e dopo il simbolo &:
<!ENTITY % ENCRYPTION
"40bit CDATA #IMPLIED
128bit CDATA #IMPLIED">
E ora possibile fare riferimento a questa entit in un altro punto della DTD. Ad esempio:
<!ELEMENT EMAIL (TO+, FROM, CC*, BCC*, SUBJECT?, BODY?)>
<!ATTLIST EMAIL
LANGUAGE(Western|Greek|Latin|Universal) "Western"
ENCRYPTED %ENCRYPTION;
PRIORITY (NORMAL|LOW|HIGH) "NORMAL">
Il riferimento allentit di parametro &ENCRYPTION; utilizza lo stesso formato di base del
riferimento di entit generale, a eccezione del simbolo % che sostituisce il simbolo &.
Le entit di parametro possono rivelarsi un metodo utile per creare uno stile personale
allinterno delle DTD e rendere queste ultime pi concise e meglio organizzate. Tuttavia
queste entit dovrebbero essere utilizzate con cautela, dato che possono creare situazioni
complesse allinterno di un documento in grado di rendere difficoltosa la gestione.
Lezione

successiva

[Sommario]

http://www.html.it/xml/guida/entita.htm (2 di 3)12/10/04 16.20.52

XML: Capitolo III: Definizione del tipo di documento (DTD) - Entita'

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/entita.htm (3 di 3)12/10/04 16.20.52

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Le parole chiave Ignore e Include

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Le parole chiave IGNORE e INCLUDE


Le parole chiave IGNORE e INCLUDE possono essere utilizzate dagli autori
per "attivare" o "disattivare" porzioni della DTD. IGNORE e INCLUDE sono
utilizzate nella DTD per creare allinterno del documento condizioni adatte a
vari scopi. Lutilizzo di IGNORE e INCLUDE consente ad esempio di verificare
diverse strutture durante il controllo delle variazioni. IGNORE e INCLUDE
sono utilizzati in modo simile a CDATA:
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

<![IGNORE [DTD section]]>


<![INCLUDE [DTD section]]>
Nessuna parola chiave pu apparire
dichiarazione e ogni sezione della
dichiarazione completa o una serie
commenti e spazi vuoti. Vediamo un
delle parole chiave:

allinterno di una
DTD deve includere una
di dichiarazioni,
esempio dellutilizzo

<![IGNORE[<!ELEMENT BCC (#PCDATA)>


<!ATTLIST BCC
HIDDEN CDATA #FIXED "TRUE">]]>
<![INCLUDE[<!ELEMENT SUBJECT (#PCDATA)>]]>
Questo frammento di codice indica allelaboratore di
ignorare lelemento Bcc e lelenco di attributi e
includere lelemento Subject.

Le altre news - RSS

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/ignore.htm12/10/04 16.23.08

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Istruzioni di elaborazione

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Istruzioni di elaborazione
Le istruzioni di elaborazione (PI, Processing Instructions) forniscono
indicazioni allapplicazione che elabora il documento. Queste istruzioni
vengono in genere visualizzate nel prologo, ma possono essere posizionate in
un punto qualsiasi del documento XML. Listruzione di elaborazione pi
comune la dichiarazione XML inclusa nella parte superiore del documento di
esempio:
<?xml version=1.0"?>
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE

Le istruzioni di elaborazione sono scritte con la sequenza <?, seguita dal


nome dellistruzione, da un valore o da unistruzione e sono chiuse con ?>. Il
nome o la destinazione di PI identifica quale applicazione dovrebbe seguire le
istruzioni. Esempi di istruzioni di elaborazione sono:
<?AVI CODEC="VIDEO1" COLORS="256"?>
<?WAV COMPRESSOR="ADPCM" BITS="8" RESOLUTION="16"?>

P2P, Grokster e StreamCast


in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde

Lezione

successiva

[Sommario]

Falla grave in Microsoft


Word, non c' la patch

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/pi.htm12/10/04 16.23.17

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Commenti

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Commenti

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'

I commenti rappresentano una delle parti generiche della DTD. Anche se i


commenti non sono necessari, vengono ampiamente utilizzati per migliorare la
leggibilit di un documento. E possibile aggiungere commenti per spiegare lo
scopo di una determinata sezione della DTD, per indicare il significato dei
riferimenti e per altri obiettivi. I commenti si rivelano utili come promemoria
durante le fasi della codifica, se si verifica la necessit di tornare alla DTD ed
effettuare le modifiche oppure se un altro autore utilizza il documento. I
commenti non sono vincolati alla DTD e possono essere utilizzati in tutto il
documento. Dato che i commenti sono a vantaggio esclusivo del lettore,
qualsiasi elaboratore di XML ne ignorer la presenza. I commenti vengono
visualizzati tra tag di commento (<!-- -->) e possono includere qualsiasi
combinazione di testo, markup e simboli a eccezione di combinazioni di
simboli che costituiscono i tag di commento.

Microsoft ripropone una


falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE

Lezione

successiva

[Sommario]

P2P, Grokster e StreamCast


in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/commenti.htm12/10/04 16.23.28

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - DTD esterne

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

DTD esterne
E possibile separare documenti e DTD per semplificarne lutilizzo. Dopo aver
creato una DTD separata, possibile farvi riferimento allinterno di qualsiasi
documento.
Per separare una parte della DTD nel documento XML basta tagliare
semplicemente la porzione di DTD e incollarla nel nuovo file di testo. Il nuovo
nome di file dovrebbe avere estensione .dtd.
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata

La separazione della DTD dal documento riduce notevolmente la dimensione


del file del documento XML e fornisce altri vantaggi. Dato che ora la DTD un
file separato, pu essere utilizzata in altri documenti da chiunque vi abbia
accesso. Un altro autore pu creare un documento utilizzando la stessa
struttura con un contenuto completamente diverso. Poich il nuovo documento
seguirebbe la DTD, potrebbe essere letto da qualsiasi applicazione in grado di
elaborare la DTD.

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale

Lezione

successiva

[Sommario]

FSF Europe esclusa dalla


Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/dtdest.htm12/10/04 16.23.36

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Vocabolari

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Vocabolari
Un vocabolario XML un insieme di elementi e della struttura di un tipo di
documento specifico. I vocabolari sono definiti in una DTD che rappresenta il
regolamento per quel vocabolario. I vocabolari sono utilizzati correntemente su
Internet e in alcune organizzazioni e aziende. Uno dei vocabolari principali e
maggiormente noti il Channel Definition Format (CDF) impiegato per definire
le pagine Web progettate per essere inviate automaticamente agli utenti client.
Hosting Italiano

I vocabolari sono adatti per le applicazioni verticali e per lo sviluppo di sistemi


di interscambio di dati per aziende specifiche, ad esempio telecomunicazioni,
prodotti farmaceutici e istituzioni legali.

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'

CHANNEL DEFINITION FORMAT

Microsoft ripropone una


falla gi patchata

Channel Definition Format (CDF) viene utilizzato per descrivere il


comportamento delle pagine Web in un modello di invio automatico. CDF
viene utilizzato da Microsoft Internet Explorer e descrive i processi quali
pianificazioni di download, visualizzazione della barra dei canali, utilizzo delle
pagine e frequenza degli aggiornamenti.

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano

OPEN FINANCIAL EXCHANGE

46645: manda un SMS e


Google risponde

Open Financial Exchange (OFX) correntemente unapplicazione SGML


utilizzata da pacchetti software per comunicare con le istituzioni finanziarie.
OFX sar presto basato sul linguaggio XML.

Falla grave in Microsoft


Word, non c' la patch

Le altre news - RSS

OPEN SOFTWARE DESCRIPTION


Open Software Description (OSD) un formato di dati utilizzato per consentire
laggiornamento e linstallazione di software tramite Internet. Questo formato
particolarmente utile per notificare agli utenti la disponibilit di nuove versioni
di software e per fornire un meccanismo per ottenere i programmi da Internet.
ELECTRONIC DATA INTERCHANGE
Electronic Data Interchange (EDI) viene utilizzato correntemente in tutto il
mondo per lo scambio di dati e per il supporto delle transazioni.
Nellimplementazione corrente tuttavia pu essere utilizzato solo da
organizzazioni che hanno impostato lo scambio di informazioni mediante
sistemi compatibili. Il linguaggio XML pu ampliare la portata di EDI e renderlo
pi accessibile a un maggior numero di organizzazioni.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/vocabo.htm12/10/04 16.23.45

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Spazio dei nomi XML (XML Namespace)

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Spazio dei nomi XML (XML Namespace)


Come sappiamo XML un linguaggio per definire linguaggi, cio insiemi di
marcatori personalizzati e le loro sintassi di utilizzo. Questa operazione
avviene attraverso i DTD che definiscono gli insiemi di marcatori che saranno
utilizzati nei documenti e le loro regole di nidificazione. I marcatori XML che
saranno definiti nei DTD adottati sui siti Web possono anche non essere
inventati dai Webmaster, ma possono appartenere a repertori standard per i
vari domini applicativi (i cosiddetti XML namespace), garantendo luniformit
sintattica delle pagine Web necessaria al funzionamento degli agenti.
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

I Namespace permettono la creazione e luso di marcatori ambigui, ovvero con


lo stesso nome, ma in riferimento a significati e ambienti diversi utilizzando
costrutti con nomi non equivoci. Pensiamo per esempio a documenti di una
rivista in cui la parola "titolo" a secondo del contesto pu referenziare il titolo di
una rivista, ma anche il ruolo di un giornalista allinterno della struttura
aziendale.
I dati, ovvero il contenuto di un documento XML, vengono recuperati
analizzando i singoli nodi allinterno del documento, meccanismo consentito
dal fatto che la struttura gerarchica dei documenti XML e le regole di validit e
di ben formato che gestiscono la creazione dei documenti XML garantiscono
che ogni nodo presente in un documento unico. Questo garantisce a sua
volta che esista un solo riferimento per ciascun nodo. Lutilizzo di documenti
XML in un ambiente di collaborazione potrebbe tuttavia dare luogo a potenziali
problemi. Ad esempio, due o pi documenti potrebbero contenere elementi
con gli stessi nomi, ma con semantica differente. I documenti possono essere
strutturati nello stesso modo. Qualora fosse necessario utilizzare entrambi i
documenti in un unico ambiente, la sovrapposizione di elementi sarebbe
causa di confusione. Consideriamo ad esempio:
<AUTOMOBILE>
<ID>232-HDF</ID>
</AUTOMOBILE>
<DOG>
<ID>Rover</ID>
</DOG>
Gli elementi Automobile e Dog contengono un elemento Id ciascuno, ma tale
Id assume significato differente nei due casi. Se questi elementi provenienti da
fonti diverse sono stati combinati in un solo documento, gli elementi Id
perdono il significato originale.
Questo problema, tuttaltro che trascurabile, potrebbe aggravarsi
parallelemente alla diffusione dellutilizzo del linguaggio XML sul Web e nelle
organizzazioni. La soluzione offerta dagli spazi dei nomi, che consentono di
creare nomi univoci indipendentemente dalla posizione in cui gli elementi
vengono utilizzati, garantendo luniformit sintattica delle pagine Web.
Lezione

successiva

[Sommario]

http://www.html.it/xml/guida/spazio.htm (1 di 2)12/10/04 16.23.56

cerca

XML: Capitolo III: Definizione del tipo di documento (DTD) - Spazio dei nomi XML (XML Namespace)

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/spazio.htm (2 di 2)12/10/04 16.23.56

Note e informazioni legali

XML: Capitolo III: Definizione del tipo di documento (DTD) - Creazione di nomi univoci tramite gli spazi dei nomi XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Creazione di nomi univoci tramite gli spazi


dei nomi XML

Hosting Italiano

La definizione spazio dei nomi utilizzata dal programmatore tradizionale per


indicare un gruppo di nomi in cui non esistono duplicati. Poich la natura del
linguaggio XML consente di definire set di tag personalizzati, che potrebbero dar
luogo a nomi duplicati nei documenti XML, nel linguaggio XML gli spazi dei nomi
offrono caratteristiche aggiuntive. Costituiscono infatti una metodologia per la
creazione di nomi universalmente univoci in un documento XML identificando i
nomi degli elementi con una risorsa esterna univoca. Nel linguaggio XML uno
spazio dei nomi pertanto una raccolta di nomi identificata da un URI e pu
essere qualificato o non qualificato.

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'

NOMI QUALIFICATI

Microsoft ripropone una


falla gi patchata

NellXML un nome qualificato si compone in due parti: il nome dello spazio dei
nomi e la parte locale. Il nome dello spazio dei nomi, ovvero un URI, definisce lo
spazio dei nomi, mentre la parte locale corrisponde al nome dellelemento o
dellattributo del documento locale. Poich lURI sempre univoco, il nome dello
spazio dei nomi crea insieme alla parte locale un nome di elemento
universalmente univoco. Per poter utilizzare uno spazio dei nomi in documento
XML, necessario includere una dichiarazione dello spazio dei nomi nel prologo
del documento. E inoltre possibile includere nella dichiarazione un prefisso dello
spazio dei nomi. Utilizzando i due punti (:), il prefisso pu essere aggiunto alla
parte locale in modo da associarla al nome dello spazio dei nomi. Nel documento
riportato nellesempio che segue, i due spazi dei nomi vengono dichiarati con
prefissi, quindi utilizzati nel documento.

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

<?xml version="1.0"?>
<?xml:namespace ns=http://inventory/schema/ns prefix="inv"?>
<?xml:namespace ns=http://wildflowers/schema/ns prefix="wf"?>
<PRODUCT>
<PNAME>Test1</PNAME>
<inv:quantity>1</inv:quantity>
<wf:price>323</wf:price>
<DATE>6/1</DATE>
</PRODUCT>
In questo esempio di codice, i prefissi vengono utilizzati per identificare elementi
appartenenti allo spazio dei nomi selezionato. Si otterranno in questo modo nomi
univoci, ma anche la conservazione del valore semantico dei nomi. Gli elementi
inv:quantity e wf:price contengono nomi completamente qualificati che
risulteranno univoci indipendemente dalla posizione in cui sono stati utilizzati. Il
prefisso parte del nome dellelemento e deve essere sempre incluso in modo
tale da indicare che lelemento appartiene allo spazio dei nomi.
NOMI NON QUALIFICATI
Un nome non qualificato non dispone di nome associato al nome dello spazio dei
nomi. I nomi di elementi XML tipici non sono qualificati poich non specificano
uno spazio dei nomi.
AREA DI VALIDITA DELLO SPAZIO DEI NOMI
Il prologo non lunica opzione disponibile per la posizione della dichiarazione
dello spazio dei nomi. E infatti possibile includere tale dichiarazione direttamente

http://www.html.it/xml/guida/spazio2.htm (1 di 3)12/10/04 16.24.05

cerca

XML: Capitolo III: Definizione del tipo di documento (DTD) - Creazione di nomi univoci tramite gli spazi dei nomi XML

allinterno di un elemento appartenente allo spazio dei nomi. A questo scopo,


sufficiente includere la dichiarazione la prima volta che si utilizza lelemento,
come mostrato nellesempio che segue:
<PRODUCT>
<PNAME>Test1</PNAME>
<inv:quantity>1</inv:quantity>
<wf:price xmlns:wf="urn:shemas-wildflowers-com:xml-prices">
323
</wf:price>
<DATE>6/1</DATE>
</PRODUCT>
Lo spazio dei nomi risulta quindi disponibile nel contesto dellelemento specifico,
ovvero tale elemento e tutti i relativi elementi secondari possono utilizzare lo
spazio dei nomi. Se dichiarato nellelemento del documneto, lo spazio dei nomi
pu essere utilizzato nellintero documento.
SPAZIO DEI NOMI PREDEFININTI
E possibile impostare come predefinito uno spazio dei nomi dichiarandolo senza
lassegnazione di un prefisso. In questo caso, lo spazio dei nomi viene
considerato allinterno del contesto dellelemento in cui stato dichiarato, come
mostrato nel seguente esempio di codice:
<CATALOG>
<INDEX>
<ITEM>Trees</ITEM>
<ITEM>Wildflowers</ITEM>

</INDEX>
<PRODUCT xmlns:wf="urn:shemas-wildflowers-com>
<NAME>Bloodroot</NAME>
<QUANTITY>10</QUNTITY>
<PRICE>$2.44</PRICE>
</PRODUCT>
</CATALOG>
Lelemento Product contiene la dichiarazione di uno spazio dei nomi senza
prefisso associato. In quanto tale, lo spazio dei nomi viene utilizzato per
lelemento Product e tutti i relativi elementi secondari, ma per nessun altro
elemento oltre Product.
DICHIARAZIONE DELLO SPAZIO DEI NOMI COME URL O URN
In quanto univoci, gli URL possono essere utilizzati per rendere univoci i nomi
degli spazi dei nomi. Se uno spazio dei nomi mappato a un URL, tale spazio dei
nomi risulter univoco nellintero contesto in cui viene utilizzato.
Unaltra situazione tipica rappresentata dallesistenza di uno schema dello
spazio dei nomi che identifica tutti i nomi contenuti nello spazio dei nomi e il modo
in cui sono strutturati. Il nome dello spazio dei nomi XML non fornisce alcun
meccanismo per il recupero di tale schema, meccanismo che tuttavia pu essere
reso disponibile utilizzzando gli URN (Uniform Resource Names).
Un URN consente di individuare e recuperare un file di schema che definisce un
determinato spazio dei nomi. Sebbene funzionalit simili possano essere fornite
da un comune URL, a questo scopo lURN pi efficiente e facile da gestire
poich pu essere riferito a pi URL.
Il codice seguente mostra lutilizzo di un URN nel contesto di uno spazio dei nomi
XML:

http://www.html.it/xml/guida/spazio2.htm (2 di 3)12/10/04 16.24.05

XML: Capitolo III: Definizione del tipo di documento (DTD) - Creazione di nomi univoci tramite gli spazi dei nomi XML

<CATALOG>
<INDEX>
<ITEM>Trees</ITEM>
<ITEM>Wildflowers</ITEM>

</INDEX>
<wf:product xmlns:wf="urn:shemas-wildflowers-com>
<wf:name>Bloodroot>/wf:name>
<QUANTITY>10</QUNTITY>
<PRICE>$2.44</PRICE>
</wf:product>
</CATALOG>
Lo schema relativo allo spazio dei nomi disponibile nella posizione identificata
dallURN e lapplicazione di elaborazione in grado di recuperare tale schema.
Lo schema contiene informazioni dettagliate relative agli elementi dello spazio dei
nomi utilizzabili nel documento.
SPAZIO DEI NOMI DEGLI ATTRIBUTI
Gli spazi dei nomi sono applicabili cos come agli elementi, anche agli attributi. Ad
esempio:
<wf:product TYPE="plant" class:kingdom="plantae"
xmlns:wf="urn:wildflowers:schemas:product"
xmlns:class="urn:bio:botany:classification">
<PNAME>Test1</PNAME>
<QUANTITY>1</QUNTITY>
<PRICE>323</PRICE>
<DATE>6/1</DATE>
</wf:product>
In questo esempio sia allelemento wf:product che allattributo class:kingdom sono
associate dichiarazioni degli spazi dei nomi. Lo spazio dei nomi degli attributi
viene utilizzato in modo simile allo spazio dei nomi degli elementi.
Limportanza degli spazi dei nomi aumenta parallelemente allo sviluppo di nuovi
vocabolari e di nuove tecnologie basate sul linguaggio XML. Sono comunque gi
tecnologie che utilizzano gli spazi dei nomi, tra cui XML-Data, i tipi di dati XML e il
linguaggio SMIL (Syncronized Multimedia Integration Language).
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/spazio2.htm (3 di 3)12/10/04 16.24.05

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Ampliare i documenti XMLAmpliare i


documenti XML

Hosting Italiano

ULTIM'ORA

Abbiamo visto come, seguendo la specifica del linguaggio XML, sia possibile
creare dei DTD personali e dei documenti XML. Il fatto che sia possibile creare
dei DTD personali, rende lXML un metalinguaggio, cio un linguaggio di livello
superiore con cui possibile creare altri linguaggi. Il gruppo di lavoro del W3C,
fornita la prima versione stabile della specifica XML, ha orientato gran parte
dei suoi sforzi proprio nello sviluppo di linguaggi di markup basati sullXML,
orientati ad argomenti che fanno contorno allambiente in cui lXML si trova ad
operare. Anche in questo caso lo scopo del gruppo di lavoro quello di creare
degli standard per argomenti fondamentali quali i collegamenti ipertestuali, la
rappresentazione di strutture dati relazionali o ad oggetti e i fogli di stile.

Truffa 100 utenti eBay per


godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata

Lezione

successiva

[Sommario]

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/amplia.htm12/10/04 16.24.15

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - XSL: l'XML con i fogli di stile

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

XSL: l'XML con i fogli di stile


LXML ha sempre riguardato i dati. LXML commenta semanticamente un
documento, fornendo la struttura e il contesto per i dati che contiene. Non
tuttavia indicato quale dovrebbe essere laspetto dei dati visualizzati. Lutilizzo
diretto del linguaggio HTML certamente un modo efficace per formattare i
documenti XML, ma esiste unalternativa: XSL (Extensible Stylesheet
Language), ossia un linguaggio creato esclusivamente per lutilizzo con i
documenti XML. LXSL unapplicazione di XML, quindi la sua struttura e la
sua sintassi sono identiche a quelle dellXML.
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'

Lezione

successiva

[Sommario]

Microsoft ripropone una


falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/xsl.htm12/10/04 16.24.22

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Nozioni fondamentali sul linguaggio XSL

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Nozioni fondamentali sul linguaggio XSL


LXSL si basa su un meccanismo di fogli di stile. I fogli di stile vengono
generalmente usati per applicare in modo coerente stili o formattazione ai
documenti. Il tipo di foglio di stile pi utilizzato sul Web basato sulla specifica
dei fogli di stile CSS (Cascading Style Sheets). Questi permettono agli utenti di
definire le classi di stile che possono essere applicate al documento HTML.

Hosting Italiano

ULTIM'ORA

LXSL offre lo stesso livello di formattazione e di flessibilit dei fogli di stile


CSS e molte altre caratteristiche, ma utilizza metodi diversi. LXSL si basa su
modelli, che sono sotto alcuni aspetti analoghi alle regole dei fogli di stile e che
offrono il meccanismo per lapplicazione di informazioni di formattazione ai dati
che rispondono a un particolare pattern.

Truffa 100 utenti eBay per


godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata

Lezione

successiva

[Sommario]

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/nozioni.htm12/10/04 16.24.29

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Componenti del linguaggio XSL

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Componenti del linguaggio XSL


Il linguaggio XSL composto da due componenti: un linguaggio di
trasformazione XSL e una specifica (vocabolario) di formattazione di un
oggetto. Questi due elementi sono distinti, ma possibile utilizzarli insieme per
ottenere funzionalit di formattazione sofisticate per la visualizzazione del
documento. Il linguaggio di trasformazione XSL e la specifica di formattazione
delloggetto vengono implementati come spazi dei nomi.
Hosting Italiano

LINGUAGGIO DI TRASFORMAZIONE XSL

P2P, Grokster e StreamCast


in tribunale

Il linguaggio di trasformazione XSL (spazio del nome xsl) dimostra come un


elaboratore pu trasformare la struttura di un documento XML in unaltra
struttura. Il processo di trasformazione converte quindi la struttura di un
documento in unaltra struttura di documento. Lutilizzo di questo linguaggio
quindi convertire un documento XML da una struttura semantica a una
struttura di visualizzazione, quale la conversione di un documento XML in
documento HTML. In realt, questa non lunica possibilit, dal momento che
il processo di trasformazione totalmente indipendente dal risultato finale.
Questo consente una grande flessibilit per il futuro, dal momento che lXSL,
potrebbe trasformare documenti in nuove strutture.

FSF Europe esclusa dalla


Commissione Vigevano

SPECIFICA DI FORMATTAZIONE DELLOGGETTO

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE

46645: manda un SMS e


Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

La specifica di formattazione delloggetto (spazio del nome fo) fornisce una


nuova semantica di formattazione sviluppata come vocabolario XML. Un
motore di visualizzazione pu quindi elaborare direttamente le informazioni di
formattazione contenute nello spazio del nome fo (a differenza delle
informazioni dello spazio del nome xsl) oppure un elaboratore pu trasformare
le informazioni in altre strutture di formattazione, ad esempio in codice HTML.
La differenza tra questo metodo e il metodo dello spazio del nome xsl consiste
nel fatto che il metodo dello spazio del nome fo connesso in modo specifico
alla formattazione della semantica, consentendo cos di sviluppare i vocabolari
per applicazioni specifiche, quali le applicazioni multimediali. La funzionalit
dello spazio del nome xsl finalizzata alla trasformazione del modello di
oggetti Document ed indipendente dalla semantica di formattazione.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/compone.htm12/10/04 16.24.35

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Fogli di stile XSL

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Fogli di stile XSL


LXSL include la funzionalit di trasformazione del documento di origine XML
in unaltra struttura. E possibile fare questo mediante luso di fogli di stile. I
fogli di stile XSL indicano la procedura in base alla quale deve essere creata la
struttura.
Lezione

successiva

[Sommario]
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/fogli.htm12/10/04 16.24.42

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Utilizzo dei modelli

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Utilizzo dei modelli


Un foglio di stile comprende uno o pi modelli che a loro volta contengono dei
pattern. I modelli forniscono la struttura dei documenti generati dal codice. Gli
elementi generati possono essere di qualsiasi tipo, poich non necessario
che i modelli XSL contengano riferimenti ai dati XML.
La reale potenzialit dei fogli di stile consiste nel generare dati XML in nuovi
documenti. I modelli XSL fanno riferimento ai dati XML mediante i pattern.
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

PATTERN
Il linguaggio XSL utilizza i pattern per specificare gli elementi XML a cui viene
applicato il modello XSL. Questo metodo di corrispondenza dei pattern rende
XSL un linguaggio di dichiarazioni in contrapposizione con i linguaggi basati
sulle procedure. Questo significa che i pattern definiscono il "livello" specifico
della struttura del documento da far corrispondere identificandone la gerarchia
della struttura. Per avere unidea della struttura di un modello, sar sufficiente
prendere in esame un semplice foglio di stile. Sar quindi necessario creare
un documento XML a cui applicare il foglio di stile:
<CATALOG>
<PLANT>
<COMMON>Bloodroot</COMMON>
<BOTANICAL>Sanguinaria canadensis</BOTANICAL>
<ZONE>4</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$7.05</PRICE>
<AVAILABILITY USONLY="true">02/01/99</AVAILABILITY>
</PLANT>
</CATALOG>
Quindi procedere con la creazione di un foglio di stile XSL per un unico
modello dellelemento Common:
<?xml version="1.0"?>
<xsl:template xmlns:xsl="uri:xsl">
<HTML>
<BODY>
<xsl:repeat for="CATALOG/PLANT">
<DIV>
<SPAN STYLE="font-weight:bold; font-size:20">
<xsl:get-value for="COMMON"/>
</SPAN>
</DIV>
</xsl:repeat>
</BODY>
</HTML>
</xsl:template>
Quando il documento XML viene elaborato con il foglio di stile XSL,
lelaboratore genera il seguente codice HTML:
<HTML>

http://www.html.it/xml/guida/modelli.htm (1 di 5)12/10/04 16.24.49

cerca

XML: Capitolo IV: Ampliare i documenti XML - Utilizzo dei modelli

<BODY>
<DIV>
<SPAN STYLE="font-weight:bold; font-size:20">
Bloodroot
</SPAN>
</DIV>
</BODY>
</HTML>
ANALISI DEL MODELLO
Ogni modello comprende uno o pi pattern. Lesempio che segue riporta la
sezione che contiene due pattern:
<xsl:repeat for="CATALOG/PLANT">
<DIV>
<SPAN STYLE="font-weight:bold; font-size:20">
<xsl:get-value for="COMMON"/>
</SPAN>
</DIV>
</xsl:repeat>
Il primo pattern specifica qualsiasi elemento Plant secondario allelemento
Catalog. Il secondo pattern per questa regola specifica lelemento Common. In
base alla regola, qualsiasi dato trovato nellelemento del pattern verr inserito
nellelemento Span a cui viene quindi applicato lo stile "font-weight:bold; fontsize:20". Questo modello espresso in modo discorsivo, sarebbe formulato nel
seguente modo: "Ripetere quanto segue per ogni elemento Plant secondario
dellelemento Catalog: prendere il valore dellelemento Common e inserirlo
nellelemento Span applicando il grassetto e una dimensione di carattere pari
a 20".
Il modello viene applicato a ogni elemento che risponda al pattern o ai criteri
definiti in esso.
Questa una delle potenzialit del linguaggio XSL. Utilizzando le funzionalit
di pattern matching, o corrispondenza dei pattern, del linguaggio XSL,
possibile riorganizzare in modo efficiente i dati XML, per soddisfare esigenze
precise. Se non si desidera includere uno o pi elementi nel risultato finale,
sar sufficiente escludere il pattern relativo a tali elementi. Se invece si
desidera includere un unico elemento in una sezione specifica del documento,
possibile creare un pattern dettagliato per convertirlo per la visualizzazione.
STRUTTURA A MODELLO SINGOLO
Il modello inizia con il tag <xsl:template xmlns:xsl="uri:xsl"> e termina con il
tag </xsl:template>. Questi due tag, o contenitori, facilitano lapplicazione di
diverse sezioni del foglio di stile quando vengono utilizzati pi modelli. Dal
momento che questo foglio di stile contiene un solo modello, possibile
utilizzare anche il contenitore <xsl:document> </xsl:document>. Ad esempio il
foglio di stile seguente equivale a quello precedente:
<?xml version="1.0"?>
<xsl:document xmlns:xsl="uri:xsl">
<HTML>
<BODY>
<xsl:repeat for="CATALOG/PLANT">
<DIV>
<SPAN STYLE="font-weight:bold; font-size:20">
<xsl:get-value for="COMMON"/>
</SPAN>
</DIV>
</xsl:repeat>
</BODY>
</HTML>
http://www.html.it/xml/guida/modelli.htm (2 di 5)12/10/04 16.24.49

XML: Capitolo IV: Ampliare i documenti XML - Utilizzo dei modelli

</xsl:document>
Ambedue i fogli di stile sono esempi di una struttura a modello singolo, ossia
ciascuno dei due fogli di stile costituito da un unico modello. Ma un foglio di
stile pu avere anche una struttura a pi modelli, nella quale il foglio di stile
contiene pi modelli che possono essere applicati indipendentemente dagli
altri.
STRUTTURA A PIU MODELLI
Un foglio di stile a pi modelli utilizza i tag <xsl:stylesheet> </xsl:stylesheet>,
che a loro volta possono contenere diverse coppie di tag <xsl:template> </xsl:
template>. Ciascuna di queste coppie pu essere applicata
indipendentemente dalle altre. Nellesempio che segue possibile esaminare
in modo pi approfondito questa struttura:
<CATALOG>
<PLANT BESTSELLER="no">
<NAME>
<COMMON>Bloodroot</COMMON>
<BOTAN>Sanguinaria canadensis</BOTAN>
</NAME>
<GROWTH>
<ZONE>4</ZONE>
<LIGHT>Mostly Shady</LIGHT>
</GROWTH>
<SALESINFO>
<PRICE>$3.00</PRICE>
<AVAILABILITY>4/21/99</AVAILABILITY>
</SALESINFO>
</PLANT>
<PLANT BESTSELLER="yes">
<NAME>
<COMMON>Columbine</COMMON>
<BOTAN>Aquilegia canadensis</BOTAN>
</NAME>
<GROWTH>
<ZONE>3</ZONE>
<LIGHT>Mostly Shady</LIGHT>
</GROWTH>
<SALESINFO>
<PRICE>$9.00</PRICE>
<AVAILABILITY>4/10/99</AVAILABILITY>
</SALESINFO>
</PLANT>
<PLANT BESTSELLER="no">
<NAME>
<COMMON>Marsh Marigold</COMMON>
<BOTAN>Caltha palustris</BOTAN>
</NAME>
<GROWTH>
<ZONE>4</ZONE>
<LIGHT>Mostly Sunny</LIGHT>
</GROWTH>
<SALESINFO>
<PRICE>$9.00</PRICE>
<AVAILABILITY>4/19/99</AVAILABILITY>
</SALESINFO>
</PLANT>
</CATALOG>
Nel listato seguente riportato il foglio di stile dellesempio precedente, il
quale contiene diversi modelli che vengono applicati in modo indipendente alle
diverse sezioni del documento XML:
http://www.html.it/xml/guida/modelli.htm (3 di 5)12/10/04 16.24.49

XML: Capitolo IV: Ampliare i documenti XML - Utilizzo dei modelli

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="uri:xsl">
<xsl:template match="/">
<HTML>
<BODY>
<TABLE BORDER="1">
<TR STYLE="font-weight:bold">
<TD>Common Name</TD>
<TD>Botanical Name</TD>
<TD>Zone</TD>
<TD>Light</TD>
<TD>Price</TD>
<TD>Availability</TD>
</TR>
<xsl:for-each select="CATALOG/PLANT">
<TR>
<xsl:apply-templates/>
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="NAME">
<TD><xsl:value-of select="COMMON"/></TD>
<TD><xsl:value-of select="BOTAN"/></TD>
</xsl:template>
<xsl:template match="GROWTH">
<TD><xsl:value-of select="ZONE"/></TD>
<TD><xsl:value-of select="LIGHT"/></TD>
</xsl:template>
<xsl:template match="SALESINFO">
<TD><xsl:value-of select="PRICE"/></TD>
<TD><xsl:value-of select="AVAILABILITY"/></TD>
</xsl:template>
</xsl:stylesheet>
Il foglio di stile inizia con il tag <xsl:stylesheet> e termina con il tag </xsl:
stylesheet>.
La sigla xmlns una parola riservata e serve per identificare un particolare
namespace; ad esempio in questo caso tutte le parole riservate che iniziano
con xsl: fanno parte del vocabolario individuato dallURL htttp://www.w3.org/
TR/WD-xsl.
Dal momento che il documento XML pu avere un solo elemento principale e
che lXSL un profilo di XML, il solo elemento xsl:stylesheet consente di
includere pi elementi xsl:template nel foglio di stile.
Il pattern di questo modello semplicemente "/" e definisce lelemento
principale del documento XML. E presente anche lelemento xsl:for-each
allinterno del modello, che definisce un altro pattern, CATALOG/PLANT, e
stabilisce che la struttura generata che segue deve essere applicata a ogni
sezione corrispondente al pattern. Allinterno di tale struttura contenuto
lelemento xsl:apply-templates che avvia la ricerca da parte dellelaboratore di
altri modelli nel foglio di stile, ciascuno con il suo pattern. Poich lelemento xsl:
apply-templates si trova allinterno del pattern CATALOG/PLANT, gli altri
modelli verranno applicati solo quando verr trovata una corrispondenza
allinterno dellelemento. Ad esempio, il modello NAME verr applicato solo
agli elementi nella gerarchia CATALOG/PLANT/NAME.

http://www.html.it/xml/guida/modelli.htm (4 di 5)12/10/04 16.24.49

XML: Capitolo IV: Ampliare i documenti XML - Utilizzo dei modelli

Facciamo una sintesi di quanto visto fino ad ora.


Il linguaggio XSL trasforma lXML in elementi di output. Questi elementi di
output vengono tipicamente utilizzati per preparare i dati per la visualizzazione
applicando formattazione ai dati XML, ma questo non ne costituisce lunico
utilizzo possibile. Questa trasformazione avviene in questa sequenza:

1.
Un foglio di stile specifica pattern che corrispondono ai dati rilevati nel
documento XML. Questi pattern fanno parte di singoli modelli che
contengono strutture di output.

2.
Lelaboratore rileva i dati che corrispondono ai pattern e li converte
nella struttura di output.

3.
Una volta elaborato lintero foglio di stile, nella memoria del computer
esiste una nuova struttura di dati basata sulloutput del foglio di stile.

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/modelli.htm (5 di 5)12/10/04 16.24.49

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Visualizzazione degli elementi di output

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Visualizzazione degli elementi di output


A questo punto introduciamo un nuovo concetto relativo al linguaggio XSL: la
visualizzazione.

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

Fino a poco tempo non esistevano software XML che erano in grado di visualizzare
un file XML secondo quanto espresso nei principi base del progetto del consorzio
W3. La situazione era quindi tale che in attesa di un processore o di un browser che
supportasse completamente XML si potevano seguire diverse strade, ad esempio
visualizzare i file XML con viewer SGML, utilizzare lActive X Msxml, generare offline dei file HTML da sorgenti XML e XSL utilizzando script .
Questa ultima modalit consentiva di elaborare e visualizzare
contemporaneamente il documento, in modo che lutente non doveva far altro che
controllarne il risultato. Pur essendo una modalit ottima per una fase di passaggio
pur sempre lontana dalla filosofia di partenza del progetto XML, che prevede
lutilizzo diretto di XML sul Web, perch comunque deve sempre tener conto dei
limiti di HTML.
La Microsoft quella che per prima ha gi sviluppato due parser XML che si
integrano con il suo ultimo browser.
Infatti con lavvento di Microsoft Internet Explorer 5 possibile adesso visualizzare i
dati XML utilizzando i fogli di stile XSL come dei file HTML e indipendentemente da
questi.
Per visualizzare un file XML utilizzando XSL bisogna indicare il tipo e la locazione
del foglio di stile XSL con le istruzioni di elaborazione (PI). La forma base per
queste istruzioni di elaborazione sono del tipo
<?xml-stylesheet type="text/xsl" href="mystyle.xsl"?>
Quando Internet Explorer 5 sfoglia il documento XML, elabora listruzione di
elaborazione, scarica il foglio di stile e lo utilizza per visualizzare il documento XML.
Il valore dellattributo type descrive il tipo del foglio di stile da attuare, se XSL "text/
xsl" se CSS "text/css". Lattributo href un collegamento URL relativo al foglio di
stile. Se il documento XML non contiene queste istruzioni di elaborazione, Internet
Explorer 5 visualizzer il documento XML come un albero gerarchico con il codice
di vario colore.
Ecco come verr visualizzato lesempio utilizzato in questo capitolo usando
Microsoft Explorer 5:

http://www.html.it/xml/guida/visual.htm (1 di 2)12/10/04 16.25.05

cerca

XML: Capitolo IV: Ampliare i documenti XML - Visualizzazione degli elementi di output

Per quanto riguarda Netscape, che inizialmente non aveva dimostrato molto
interesse verso XML, sembra essere ritornata sui suoi passi. La versione 5 del
browser Navigator dovrebbe contenere un processore in grado di leggere e
formattare i file XML.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/visual.htm (2 di 2)12/10/04 16.25.05

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Estrazione dei dati dall'XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Estrazione dei dati dall'XML


Molti elementi XSL possono essere utilizzati per recuperare dati dal documento
XML. Gli elementi XSL combinati con gli attributi XSL forniscono altre prestazioni
per il corretto recupero dei dati necessari dal documento XML.
ELEMENTI XSL

Hosting Italiano

ULTIM'ORA

Gli elementi XSL si comportano come comandi e indicano allelaboratore XSL


come gestire i dati. Di seguito riportiamo un elenco completo degli elementi XSL
supportati:
Elemento XSL

Truffa 100 utenti eBay per


godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata

Descrizione

xsl:apply-templates

Indica allelaboratore XSL di cercare il modello


corretto da applicare, in base al pattern specificato.

xsl:attribute

Genera un nodo di attributo e lo applica allelemento


di output.

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

xsl:cdata

xsl:choose

Le altre news - RSS

xsl:comment

Genera una sezione CDATA nelloutput.

Consente di eseguire test condizionali. Questo


elemento viene utilizzato in combinazione con gli
elementi xsl:otherwise e xsl:when.

Crea un commento nella struttura di output.

xsl:copy

Crea una copia del nodo di destinazione dalla fonte


da includere nelloutput.

xsl:define-template-set

Definisce un insieme di modelli a un specifico livello


di validit.

xsl:element

Genera un elemento nelloutput con il nome


specificato.

xsl:entity-ref

Genera un riferimento allentit nelloutput con il


nome specificato.

xsl:eval

Valuta una stringa di testo, solitamente codice script.

xsl:for-each

Applica lo stesso modello a pi nodi del documento.

xsl:if

http://www.html.it/xml/guida/estrazio.htm (1 di 3)12/10/04 16.25.16

Consente test condizionali in un modello.

cerca

XML: Capitolo IV: Ampliare i documenti XML - Estrazione dei dati dall'XML

xsl:node-name
xsl:otherwise

xsl:pi

xsl:script

xsl:stylesheet

Inserisce il nome del nodo corrente nelloutput come


stringa di testo.
Fornisce test condizionali. Questo elemento viene
utilizzato in combinazione con gli elementi xsl:
choose e xsl:when.

Genera un istruzione di elaborazione nelloutput.

Definisce dichiarazioni e funzioni di variabili globali.

Definisce linsieme di modelli che vengono applicati


alla struttura del documento di origine per generare il
documento di output.

xsl:template

Definisce un modello per loutput basato su un


pattern specifico.

xsl:value-of

Valuta un pattern XSL specificato nellattributo select


e restituisce il valore del nodo identificato come
testo, che verr poi inserito nel modello.

xsl:when

Fornisce test condizionali. Questo elemento viene


utilizzato in combinazione con gli elementi xsl:
choose e xsl:otherwise.

METODI XSL
Oltre agli elementi, nellXSL sono inclusi anche metodi. Questi metodi possono
essere chiamati dallelemento xsl:eval o da un normale codice script. Ad
esempio, il metodo formatIndex potrebbe essere utilizzato come di seguito:
<xsl:template match="NAME">
<TD STYLE="font-style:italic; font-size:20">
<xsl:value-of select="COMMON"/>
item number:
<xsl:eval>
formatIndex(childNumber(this),"1")
</xsl:eval>
</TD>
</xsl:template>
Ecco un elenco dei metodi supportati:
Metodo XSL

Descrizione

AbsoluteChildNumber

Restituisce il numero del nodo specificato relativo


a tutti gli elementi di pari livello.

AncestorChildNumber

Restituisce il numero del predecessore di un


nodo con il nome specificato.

ChildNumber

http://www.html.it/xml/guida/estrazio.htm (2 di 3)12/10/04 16.25.16

Restituisce il numero del nodo relativo agli


elementi di pari livello.

XML: Capitolo IV: Ampliare i documenti XML - Estrazione dei dati dall'XML

Depth

ElementIndexList

Restituisce, per il nodo specificato, il livello


gerarchico allinterno della struttura del
documento.

Restituisce una matrice di numeri secondari per il


nodo specificato e per tutti i nodi principali.
Questo elemento ricorsivo fino al nodo
principale.

FormatDate

Formatta la data mediante le opzioni di


formattazione specificate.

FormatIndex

Formatta il numero intero fornito utilizzando il


sistema numerico specificato.

FormatNumber

FormatTime

UniqueID

Formatta il numero fornito utilizzando il formato


specificato.

Formatta lora mediante le opzioni di


formattazione specificate.

Restituisce lunico identificatore per il nodo


specificato.

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/estrazio.htm (3 di 3)12/10/04 16.25.16

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - XLL: collegamenti con il linguaggio XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

XLL: collegamenti con il linguaggio XML


Il linguaggio XML in grado di fornire un metodo pi efficiente per collegare le
informazioni sul Web tramite unapplicazione XML denominata XLink e inoltre
anche un meccanismo che consente i collegamenti a strutture interne di un
documento XML denominato XPointer. Le principali propriet dellXLL sono:

Link multi direzionali: ad esempio lHTML fornisce solo link mono


direzionali; per questo tipo di link lunico modo per tornare "indietro"
quello di utilizzare lapposito pulsante. Invece in un link bi-direzionale
per esempio, un utente pu tornare indietro utilizzando lo stesso link
che gli ha permesso di arrivare a destinazione.

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata

Link a destinazione multipla: da un singolo link, un utente pu scegliere


fra differenti destinazioni.

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale

Link ad effetto multiplo: si pu fare in modo che la risorsa collegata


sostituisca il documento attivo, oppure che sia visualizzata in una
nuova finestra, o infine che sia inserita direttamente nel documento
attivo.

FSF Europe esclusa dalla


Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

Link ad attivazione multipla: si pu fare in modo che il link sia attivato


da un click dellutente, oppure che sia attivato automaticamente quando
individuato dallapplicazione di elaborazione.
Vediamo in dettaglio le due componenti dellXLL.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/xll.htm12/10/04 16.25.31

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - XLink: il sistema per i collegamenti XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

XLink: il sistema per i collegamenti XML


LXLink utilizza il linguaggio XML per definire tutti i componenti necessari per
creare collegamenti nei documenti XML e definisce due tipi di collegamenti
fondamentali: i collegamenti semplici e i collegamenti estesi. Realizzato in
modo tale da mantenere semplicit dei collegamenti HTML, lXLink fornisce
tuttavia maggiori efficienza ed estensibilit.
Lezione
Hosting Italiano

successiva

[Sommario]

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/xlink.htm12/10/04 16.25.44

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Collegamenti semplici nell'XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Collegamenti semplici nell'XML

Hosting Italiano

I collegamenti XML dovrebbero pi opportunamente essere considerati risorse


di connessione. Questo significa che l'XLink in grado di fornire il
collegamento a qualunque risorsa raggiungibile tramite un localizzatore
nellelemento di collegamento. Questo concetto non specifico dellXLink: la
nozione di risorse legata al funzionamento del World Wide Web. LXLink
fornisce tuttavia una sintassi pi sofisticata per la definizione degli elementi e
del comportamento dei collegamenti, ad esempio la capacit di un
collegamento di funzionare in pi direzioni. LXLink inoltre pi flessibile e
consente a un documento di collegarsi a qualsiasi tipo di risorsa raggiungibile
sul Web.

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

Come nellHTML, i collegamenti semplici sono collegamenti in linea, ovvero


fanno parte dellelemento e funzionano in una sola direzione. Un collegamento
semplice ha un solo identificatore di risorsa, o localizzatore. Il localizzatore, ad
esempio lattributo HREF nellelemento Anchor, contiene i dati relativi al
collegamento. NellXLink, tutte le informazioni sul localizzatore sono contenute
allinterno dellelemento di collegamento. Pertanto, lapplicazione di
elaborazione non avr bisogno di recuperare altre informazioni sul
localizzatore.
Il primo esempio di collegamento riportato contiene un collegamento XML
semplice. La creazione di un elemento di collegamento semplice nellXML
comporta maggiori difficolt rispetto alla creazione di un elemento Anchor e
allassegnazione di un valore HREF. LXML un metalinguaggio, pertanto la
creazione di un nuovo elemento che possa essere utilizzato in un documento
richiede la dichiarazione dellelemento e di tutti i relativi attributi. Il linguaggio
XML e la specifica XLink forniscono unampia gamma di efficienti opzioni per
la creazione di collegamenti. Creiamo adesso un elemento di collegamento
semplice, denominato MYLINK. Riportiamo la dichiarazione dellelemento e
lelenco degli attributi cos come potrebbe comparire in una dichiarazione del
tipo di documento (DTD).
<!ELEMENT MYLINK ANY>
<!ATTLIST MYLINK
XML:LINK CDATA #FIXED "simple"
HREF CDATA #REQUIRED
INLINE (true|false) "true"
ROLE CDATA #IMPLIED
TITLE CDATA #IMPLIED
SHOW (replace|new|embed) #IMPLIED
ACTUATE (auto|user) #IMPLIED
BEHAVIOR CDATA #IMPLIED
CONTENT-ROLE CDATA#IMPLIED
CONTENT-TITLE CDATA #IMPLIED
>

XML:LINK
Gli sviluppatori dellXLink avrebbero potuto riservare un nome di tag (ad
esempio <A> nellHTML), riservare un nome di attributo o lasciare la scelta al
software dellapplicazione per riconoscere un elemento come elemento di
collegamento. Decisero di adottare un nome di attributo, ritenendo che questo
avrebbe consentito agli autori di definire elementi personalizzati e
contemporaneamente mantenere lelemento di collegamento come parte del
collegamento della struttura dellelemento. Il risultato lattributo XML:LINK,
http://www.html.it/xml/guida/semplici.htm (1 di 4)12/10/04 16.25.52

cerca

XML: Capitolo IV: Ampliare i documenti XML - Collegamenti semplici nell'XML

che pu avere valore simple o extended.


Lesempio precedente assegna il valore simple, poich il collegamento in fase
di creazione di tipo semplice. Lesempio seguente mostra come apparir
lelemento Mylink in un documento:
<MYLINK XML:LINK="simple"
My Home Page
</MYLINK>

HREF="http://www.miosito.com">

Lattributo XML:LINK incluso nellelemento Mylink precedente, ma in quanto


dichiarato con un valore fisso nella dichiarazione dellelemento, non
necessario che lelemento stesso includa lattributo XML:LINK.
HREF
Ciascun elemento di collegamento nellXML deve avere un localizzatore di
risorsa che identifica la risorsa alla quale il collegamento fa riferimento. HREF
lattributo del localizzatore nellXLink e funziona come nellHTML.
INLINE
Un elemento di collegamento XLink pu essere in linea o non in linea. Un
collegamento in linea funziona come risorsa propria, ovvero lelemento di
collegamento, analogamente alla destinazione del collegamento, fornisce
contenuto. Anche in questo caso lelemento Anchor HTML rappresenta
perfettamente questo tipo di collegamento. Cos come la destinazione del
collegamento, lelemento Anchor fornisce anche contenuto. Nellesempio
riportato il valore predefinito true fa parte della dichiarazione dellattributo
INLINE. Non pertanto necessario specificare lattributo nellelemento.
ROLE
Lattributo ROLE indica al software dellapplicazione il significato del
collegamento. Con questo attributo si intende fornire informazioni sul
collegamento considerato come insieme e non solo come risorsa remota del
collegamento. Queste applicazioni devono essere comprese dallapplicazione
e non dagli utenti. Lutilizzo di ROLE consente di fornire allapplicazione
informazioni dettagliate sui collegamenti che vanno oltre la semplice
indicazione della risorsa a cui rimandano. Ad esempio, alcuni collegamenti
potrebbero condurre a voci di glossario, altri a informazioni generali su un
determinato argomento, altri ancora a informazioni sulle propriet di una
risorsa, tra cui informazioni sulla versione. Le applicazioni possono ora
ottenere questo tipo di informazioni direttamente dal collegamento e agire di
conseguenza.
TITLE
Lattributo TITLE, simile al tag <ALT> dellHTML, contiene unetichetta
visualizzabile o del testo che pu essere utilizzato per fornire informazioni
supplementari allutente. Si tratta di un attributo per risorse remote:
linformazione TITLE non intende correlarsi al collegamento nel suo insieme,
bens fornire informazioni allutente sulla relazione esistente tra risorsa e
collegamento. Mentre lattributo ROLE viene interpretato dal computer,
lattributo TITLE si rivolge allutente.
SHOW
Lattributo SHOW fa parte della semantica per le risorse remote dellXML e
rappresenta probabilmente uno dei miglioramenti pi rilevanti rispetto ai
collegamenti HTML. Lattributo SHOW accetta valori come replace, new ed
embed, che descrivono il modo in cui il collegamento dovr funzionare. Il
valore replace indica che la risorsa locale viene sostituita da una risorsa
remota. Questa tecnica tra le pi comunemente utilizzate dai collegamenti
http://www.html.it/xml/guida/semplici.htm (2 di 4)12/10/04 16.25.52

XML: Capitolo IV: Ampliare i documenti XML - Collegamenti semplici nell'XML

HTML. Il valore new specifica che la risorsa di destinazione deve essere


aperta in un contesto nuovo. Una funzionalit simile fornita nellHTML
dallattributo TARGET dellelemento Anchor: la destinazione del collegamento
si apre in un nuovo contesto, in genere unaltra finestra del browser. Il valore
embed indica la nuova tecnica relativa al funzionamento di un collegamento.
Se viene specificato il valore embed, il contenuto della destinazione del
collegamento viene incorporato nel contenuto dellorigine del collegamento.
Quando lutente fa clic sul collegamento con il valore embed specificato, le
informazioni vengono visualizzate nel contesto, direttamente allinterno del
documento di origine.
ACTUATE
Lattributo ACTUATE specifica il modo in cui il collegamento deve essere
attivato. Questo attributo pu accettare il valore auto o user. Il valore auto
indica che il collegamento deve essere attivato automaticamente quando il
collegamento viene elaborato dallapplicazione. Il valore user specifica che il
collegamento deve essere attivato da un meccanismo esterno, ad esempio un
clic del mouse. Combinando inoltre lattributo SHOW=embed con lattributo
ACTUATE=auto possibile creare un documento contenente molti
collegamenti incorporati. Quando un utente apre il documento, tutti i
collegamenti vengono automaticamente attivati e incorporati direttamente nel
documento. Il documento composto che ne deriva contiene informazioni
raccolte da varie origini invisibili allutente.
BEHAVIOR
Lattributo BEHAVIOR fornisce allautore del collegamento uno spazio in cui
descrivere cosa accadr allattivazione del collegamento. Al collegamento
possono ad esempio essere associati gli stati "precedente" e "successivo". Lo
stato precedente corrisponde allaspetto del collegamento prima che venga
attivato e pu includere tipo di carattere, colori e altri elementi di
formattazione. Lo stato successivo rimanda a quanto si verifica dopo
lattivazione del collegamento, ovvero al comportamento del collegamento.
Lattributo BEHAVIOR non presenta vincoli e pu contenere qualunque tipo di
istruzione che possa essere comunicata allapplicazione che elabora il
collegamento.
CONTENT-ROLE
Questo attributo funziona in modo analogo allattributo ROLE, ma specifico
delle risorse locali. Indica allapplicazione lo scopo della risorsa locale come
parte del collegamento. Come lattributo ROLE, questa informazione viene
utilizzata dallapplicazione e non dagli utenti.
CONTENT-TITLE
Anche CONTENT-TITLE un attributo della semantica delle risorse locali che
fornisce informazioni allutente relativamente alla parte locale del
collegamento. Svolge una funzione simile a quella dellattributo TITLE, ma si
rivolge agli utenti.
Lezione

successiva

[Sommario]

http://www.html.it/xml/guida/semplici.htm (3 di 4)12/10/04 16.25.52

XML: Capitolo IV: Ampliare i documenti XML - Collegamenti semplici nell'XML

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/semplici.htm (4 di 4)12/10/04 16.25.52

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Collegamenti estesi nell'XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Collegamenti estesi nell'XML


Lutilizzo dei collegamenti estesi consente di definire gruppi di possibili destinazioni da
ununica origine. I collegamenti estesi forniscono tutte le informazioni necessarie per
consentire i collegamenti multipli.
COLLEGAMENTI ESTESI IN LINEA

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

Il miglioramento delle potenzialit ha portato con s un aumento delle complessit e in


effetti i collegamenti estesi complicano lequazione. Vediamo un esempio di
collegamento esteso:
<!ELEMENT MYELINK ANY>
<!ATTLIST MYELINK
XML:LINK CDATA #FIXED "extended"
INLINE (true|false) "true"
ROLE CDATA #IMPLIED
TITLE CDATA #IMPLIED
SHOW (replace|new|embed) #IMPLIED
ACTUATE (auto|user) #IMPLIED
BEHAVIOR CDATA #IMPLIED
CONTENT-ROLE CDATA#IMPLIED
CONTENT-TITLE CDATA #IMPLIED
>
Il codice simile alla dichiarazione del collegamento semplice creato in precedenza, ma
in questo caso lattributo XML:LINK contiene il valore extended anzich simple, poich si
tratta di un collegamento esteso, e non vi sono attributi HREF dichiarati in quanto con i
collegamenti estesi i localizzatori devono essere contenuti in un insieme separato di
elementi. Questi elementi vengono identificati come localizzatori. Lutilizzo di questo
metodo per la definizione dei localizzatori consente di specificare pi localizzatori per un
solo elemento di collegamento. Non diversamente da altri elementi, anche il
localizzatore deve essere dichiarato. Ecco un esempio di dichiarazione di localizzatore:
<!ELEMENT ELOCATOR ANY>
<!ATTLIST ELOCATOR
XML:LINK CDATA #FIXED "locator"
HREF CDATA #REQUIRED
INLINE (true|false) "true"
ROLE CDATA #IMPLIED
TITLE CDATA #IMPLIED
SHOW (replace|new|embed) #IMPLIED
ACTUATE (auto|user) #IMPLIED
BEHAVIOR CDATA #IMPLIED
>
Lattributo XML:LINK contiene il valore locator per identificare questo elemento come
localizzatore XLink, inoltre utilizziamo lattributo HREF.
A questo punto esaminiamo il modo in cui questa struttura potrebbe funzionare in un
documento XML. Lelemento di collegamento avr aspetto simile al seguente codice:
<MYELINK XML:LINK="extended">minivan review
<ELOCATOR TITLE="Chrysler Town and Country" HREF="Chrysler.htm"/>
<ELOCATOR TITLE="Ford Windstar" HREF="Ford.htm"/>
<ELOCATOR TITLE="Chevrolet Venture" HREF="Chevy.htm"/>

http://www.html.it/xml/guida/estesi.htm (1 di 4)12/10/04 16.26.07

cerca

XML: Capitolo IV: Ampliare i documenti XML - Collegamenti estesi nell'XML

<ELOCATOR TITLE="Honda Odyssey" HREF="Honda.htm"/>


<ELOCATOR TITLE="Nissan Quest" HREF="Nissan.htm"/>
<ELOCATOR TITLE="Toyota Sienna" HREF="Toyota.htm"/>
</MYELINK>
COLLEGAMENTI ESTESI NON IN LINEA
Un collegamento in linea richiede il testo del collegamento affinch il collegamento
stesso risulti completo. I collegamenti estesi consentono di creare collegamenti in cui la
risorsa locale non appartiene al collegamento. Questo significa che un elemento o una
porzione di contenuto pu costituire un collegamento, bench non sia stato creato con
questo obiettivo. Questi collegamenti, definiti collegamenti non in linea, forniscono un
modo potente e flessibile per collegare informazioni. Per creare un collegamento non in
linea utilizzeremo la stessa dichiarazione degli elementi del collegamento esteso e la
stessa dichiarazione degli elementi localizzatori create per il collegamento esteso in
linea. Nel tag dellelemento occorre impostare lattributo INLINE su false per indicare che
lelemento un collegamento non in linea.
<MYELINK XML:LINK="extended" INLINE="false">
<ELOCATOR
<ELOCATOR
<ELOCATOR
<ELOCATOR
<ELOCATOR
<ELOCATOR

TITLE="Chrysler Town and Country" HREF="#Chrysler"/>


TITLE="Ford Windstar" HREF="#Ford"/>
TITLE="Chevrolet Venture" HREF="#Chevy"/>
TITLE="Honda Odyssey" HREF="#Honda"/>
TITLE="Nissan Quest" HREF="#Nissan"/>
TITLE="Toyota Sienna" HREF="#Toyota"/>

</MYELINK>
<REVIEW ID="Chrysler">
<TITLE="Chrysler Town and Country"</TITLE>
<!--Questa la sezione della Chrysler-- >
</REVIEW>
<REVIEW ID="Ford">
<TITLE ="Ford Windstar"</TITLE>
<!--Questa la sezione della Ford-- >
</REVIEW>
<REVIEW ID="Chevy">
<TITLE ="Chevrolet Venture"</TITLE>
<!--Questa la sezione della Chevrolet -- >
</REVIEW>
<REVIEW ID="Honda">
<TITLE ="Honda Odyssey"</TITLE>
<!--Questa la sezione della Honda-- >
</REVIEW>
REVIEW ID="Nissan">
<TITLE ="Nissan Quest"</TITLE>
<!--Questa la sezione della Nissan-- >
</REVIEW>
REVIEW ID="Toyota">
<TITLE ="Toyota Sienna"</TITLE>
<!--Questa la sezione della Toyota-- >
</REVIEW>
In questo esempio i localizzatori sono mantenuti nella relativa sezione e non sono
vincolati ad alcuna risorsa di collegamento locale. I localizzatori contengono tutte le
informazioni necessarie per fornire le connessioni alle sezioni appropriate nel
documento, ma compito dellapplicazione visualizzare i collegamenti per lutente.
Lapplicazione potrebbe ad esempio fornire un elenco separato dal contenuto che
consenta allutente di connettersi allelemento desiderato in qualunque momento. In

http://www.html.it/xml/guida/estesi.htm (2 di 4)12/10/04 16.26.07

XML: Capitolo IV: Ampliare i documenti XML - Collegamenti estesi nell'XML

questo modo vengono impostati collegamenti realmente multidirezionali, eliminando i


collegamenti con spostamento "avanti e indietro" che per la maggior parte degli utenti
Web consuetudine utilizzare.
A questo punto, si immagini un documento XML contenente nella DTD le dichiarazioni
degli elementi Myelink ed Elocator precedentemente utilizzati. Supponiamo inoltre che il
documento includa nellelemento Document i seguenti localizzatori:
<MYELINK XML:LINK="extended" INLINE="false">
<ELOCATOR
<ELOCATOR
<ELOCATOR
<ELOCATOR
<ELOCATOR
<ELOCATOR

TITLE="Chrysler Town and Country" HREF="Chrysler.htm"/>


TITLE="Ford Windstar" HREF="Ford.htm"/>
TITLE="Chevrolet Venture" HREF="Chevy.htm"/>
TITLE="Honda Odyssey" HREF="Honda.htm"/>
TITLE="Nissan Quest" HREF="Nissan.htm"/>
TITLE="Toyota Sienna" HREF="Toyota.htm"/>

</MYELINK>
Poich i localizzatori sono contenuti in documento distinto, qualsiasi applicazione che
utilizzi questo documento sar in grado di rendere disponibili tali collegamenti. Anche in
questo caso, la struttura creata per i collegamenti multidirezionale in quanto da
qualunque documento sar possibile accedere a un collegamento a qualsiasi altro
documento. Un ulteriore vantaggio deriva dalla possibilit di gestire lelenco dei
collegamenti in maniera separata dai documenti nei quali vengono utilizzati, grazie al
fatto che lelenco dei localizzatori risiede in un documento specifico. Questo tipo di
struttura consente inoltre di aggiungere collegamenti a documenti che normalmente non
possono essere modificati in modo tale da contenere collegamenti in linea propri.
Lapplicazione pu infine verificare che i documenti identificati nei localizzatori siano
disponibili anche prima che i collegamenti vengano visualizzati, evitando in tal modo
linterruzione dei collegamenti.
La configurazione di destinazioni multiple per i collegamenti, i collegamenti non in linea
estesi e i collegamenti multidirezionali sono gestiti da un numero esorbitante di
collegamenti. LXLink fornisce un metodo in grado di risolvere alcuni di questi aspetti: i
gruppi di collegamenti estesi.
GRUPPI DI COLLEGAMENTI ESTESI
I gruppi di collegamenti estesi semplificano la gestione delle informazioni sui
collegamenti correlati impostando elementi contenenti elenchi di documenti correlati.
Supponiamo di pubblicare mensilmente per una rivista di consumo un servizio sulle
novit automobilistiche. Anzich creare un singolo documento contenente elenchi di
tutte le automobili delle varie categorie per ogni mese, possibile raggruppare gli
elenchi in modo da renderli pi facilmente gestibili. Per utilizzare i gruppi di collegamento
estesi, sono necessari due elementi, uno per definire il gruppo (GROUP) e laltro per
specificare i documenti appartenenti al gruppo (DOCUMENT). Ecco un esempio di
dichiarazioni:
<!ELEMENT GROUP (DOCUMENT*)>
<!ATTLIST GROUP
XML:LINK CDATA #FIXED "group"
STEPS CDATA #IMPLIED
>
<!ELEMENT DOCUMENT EMPTY>
<!ATTLIST DOCUMENT
XML:LINK CDATA #FIXED "document"
HREF CDATA #REQUIRED
>
STEPS consiste nellindicare allapplicazione il numero di livelli dei documenti in cui
eseguire la ricerca prima di terminarla. Questo attributo risulta particolarmente utile
quando il gruppo contiene documenti nel quale sono inclusi altri gruppi, a loro volta
contenenti nuovi documenti che contengono ulteriori gruppi e cos via. Dopo aver

http://www.html.it/xml/guida/estesi.htm (3 di 4)12/10/04 16.26.07

XML: Capitolo IV: Ampliare i documenti XML - Collegamenti estesi nell'XML

predisposto le dichiarazioni degli elementi, necessario aggiungere gli elementi Group e


Document. Gli elementi Document contengono semplicemente HREF che portano
lapplicazione che li elabora ai documenti allinterno dei quali devono essere cercati i
collegamenti. Quando lapplicazione raggiunge uno di questi elementi, carica i
documenti specificati dagli attributi HREF degli elementi Document in Group. Essa
controlla quindi questi documenti alla ricerca di collegamenti al documento originale,
costruendo una tabella di collegamenti. Lapplicazione di elaborazione caricher tutti i
documenti ed elaborer linformazione di collegamento in essa contenuta; questa la
fase uno. Se lattributo STEPS maggiore di 1, lapplicazione caricher i documenti ai
quali i documenti originali erano collegati dal primo gruppo di collegamenti caricati
(STEPS evita che i documenti carichino centinaia di altri documenti).
In questo modo viene creato il gruppo di collegamenti:
<GROUP STEP=1>
<DOCUMENT HREF="cousin2.htm"/>
<DOCUMENT HREF="cousin3.htm"/>
<DOCUMENT HREF="cousin4.htm"/>
<DOCUMENT HREF="cousin5.htm"/>
</GROUP>
I gruppi di collegamenti estesi rendono possibile centralizzare linformazione di
collegamento, sostituendo un labirinto di collegamenti (figura A) con un sistema di
comunicazione centralizzato (figura B) che consente agli sviluppatori di esaminare e
gestire collegamenti senza dover leggere documenti senza fine. Esso inoltre riduce
loccupazione del sistema consentendo agli sviluppatori di richiedere a un documento
XML di scaricare solo un ulteriore documento (o eventualmente alcuni) per creare un
elenco completo di collegamenti.

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/estesi.htm (4 di 4)12/10/04 16.26.07

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - XPointer

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

XPointer
Un altro linguaggio basato sullXML lXPointer che consente di ottenere
collegamenti ancora pi precisi allinterno di documenti XML.

Hosting Italiano

Lobiettivo principale dellXPointer quello di fornire un metodo di


indirizzamento della struttura interna di un documento XML. Negli esempi
precedenti, per fare riferimento a una porzione specifica di un documento,
utilizzavamo un identificatore di frammento che richiedeva che lelemento
utilizzasse un attributo ID. Il linguaggio XPointer stato realizzato in modo da
fare riferimento alle strutture interne di un documento, sia che includano o
meno attributi ID.

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata

Lezione

successiva

[Sommario]

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/xpointer.htm12/10/04 16.26.18

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Concetti fondamentali relativi al linguaggio XPointer

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Concetti fondamentali relativi al linguaggio


XPointer
Lazione dellXPointer interna agli elementi e alle strutture che costituiscono
il documento XML. Un elemento XPointer contiene una serie di termini di
localizzazione che specifica una posizione nella struttura ad albero del
documento. Bench molto pi sofisticato degli identificatori di frammento
HTML, lXPointer pu essere utilizzato in maniera analoga. I termini di
localizzazione utilizzano la sintassi indicata nei seguenti esempi:
Hosting Italiano

HREF="uri#Xpointer"
HREF="uri|Xpointer"

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

Se come separatore si utilizza il simbolo di cancelletto (#), tale simbolo indica


che il client deve elaborare la connessione. Se si utilizza invece il simbolo pipe
(|), il meccanismo della connessione rimane aperto. In questo modo, la
connessione del collegamento pu essere gestita sul lato server, consentendo
un potenziale risparmio di larghezza di banda.
Un termine di localizzazione richiede unorigine di localizzazione. Si tratta di un
metodo che consente di indicare a XPointer il punto in cui iniziare ad operare
nella struttura del documento. Ogni termine di localizzazione utilizza una
parola chiave e pu contenere argomenti. La parola chiave specifica lorigine
di localizzazione, ad esempio Root o Id, che indica a XPointer dove iniziare.
Gli argomenti forniscono ulteriori informazioni sul percorso che XPointer dovr
compiere allinterno dellorigine. Un esempio di termine di localizzazione il
seguente:
Child(2,PRODUCT)
In cui viene indicato il secondo elemento Product tra gli elementi secondari
correnti..
I termini di localizzazione possono essere associati a posizioni assolute,
posizioni relative, posizioni con spanning, posizioni di attributi o posizioni di
stringhe.
TERMINI DI LOCALIZZAZIONE ASSOLUTI
Un termine di localizzazione assoluto fa riferimento a un punto specifico nella
struttura del documento. Non richiede alcuna origine di localizzazione e pu
essere utilizzato per stabilire unorigine di localizzazione o come elemento
XPointer autonomo. I termini di localizzazione assoluti supportano le seguenti
parole chiave:

Root() La parola chiave Root specifica che lorigine di localizzazione


coincide con lelemento principale della risorsa con funzione di
contenitore. Se non vengono specificate altre parole chiave,
considerata la parola chiave predefinita. Poich lo scopo di un termine
di localizzazione di puntare a un documento, questa parola chiave
raramente utilizzata.

Origin() Genera unorigine di localizzazione particolarmente utile se, a

http://www.html.it/xml/guida/xpoint.htm (1 di 4)12/10/04 16.26.26

cerca

XML: Capitolo IV: Ampliare i documenti XML - Concetti fondamentali relativi al linguaggio XPointer

causa di una richiesta quale un collegamento, lXPointer in fase di


elaborazione. Se XPointer inizia con Origin, lorigine di localizzazione
corrisponde alla risorsa da cui partita la richiesta.

Id(Name) La parola chiave Id utilizza la tecnica pi comune di


spostamento attraverso i documenti, ovvero la coppia ID e NAME. Lo
spostamento inizia al livello dellelemento con ID corrispondente al
NAME specificato.

Html(NameValue) Questa parola chiave emula lazione eseguita


dallidentificatore di frammento in un documento HTML. Contiene un
attributo NAMEVALUE. Lorigine di localizzazione il primo elemento
Anchor contenente un attributo NAME il cui valore corrisponde a quello
dellattributo NAMEVALUE nel termine di localizzazione.
Un esempio di termine di localizzazione assoluto il seguente:
HREF="http://www.foo.com/br.xml#Id(PRODUCT)"
Identifica lelemento PRODUCT allinterno del documento br.xml.
TERMINI DI LOCALIZZAZIONE RELATIVI
Le parole chiave per i termini di localizzazione relativi dipendono dalla
disponibilit di unorigine di localizzazione. Se non esiste alcuna origine,
XPointer fa riferimento allelemento principale della risorsa che contiene il
termine. I termini di localizzazione relativi supportano le seguenti parole chiave:

Child Se viene specificata, la parola chiave Child identifica i nodi


secondari dellorigine di localizzazione. Seleziona tutti i nodi secondari
dellorigine di localizzazione.

Descendant Specifica i nodi del documento che si trovano a qualunque


livello allinterno del contenuto dellorigine di localizzazione.

Ancestor Specifica i nodi contenenti lorigine di localizzazione o i relativi


elementi principali.

Preceding Specifica i nodi che compaiono nella struttura ad albero del


documento prima dellorigine di localizzazione.

Psibiling Specifica gli elementi di pari livello che compaiono prima


dellorigine di localizzazione. Gli elementi di pari livello condividono lo
stesso elemento principale.

Following Specifica i nodi che compaiono nella struttura ad albero del


documento dopo lorigine di localizzazione.

Fsibling Specifica gli elementi di pari livello che compaiono dopo


lorigine di localizzazione.

http://www.html.it/xml/guida/xpoint.htm (2 di 4)12/10/04 16.26.26

XML: Capitolo IV: Ampliare i documenti XML - Concetti fondamentali relativi al linguaggio XPointer

Un esempio di termine di localizzazione relativo il seguente:


Child(2,SECTION)
Identifica il secondo figlio di tipo SECTION.
TERMINI DI LOCALIZZAZIONE CON SPANNING
Un termine di localizzazione con spanning punta a una sottorisorsa
individuando i dati presenti tra i due argomenti. Nellesempio seguente, gli
argomenti sono relativi allorigine di localizzazione per il termine di
localizzazione con spanning:
Id(PRODUCT).Span(Child(1),Child(3))
Si seleziona dal primo al terzo figlio dellelemento PRODUCT.
TERMINI DI LOCALIZZAZIONE DI ATTRIBUTI
Il termine di localizzazione di un attributo esamina il nome di un attributo,
individua lattributo e ne restituisce il valore. Lesempio seguente mostra
lutilizzo di questo termine:
Id(PRODUCT).Attr(N)
Si seleziona il valore dellattributo N dellelemento PRODUCT.
TERMINI DI LOCALIZZAZIONE DI STRINGHE
Il termine di localizzazione di una stringa seleziona una o pi stringhe o
posizioni tra stringhe nellorigine di localizzazione. I termini di localizzazione
delle stringhe supportano le seguenti parole chiave:

InstanceOrAll Identifica loccorrenza ordinale della stringa specificata.


Se il numero positivo, XPointer inizia a contare a partire dallinizio
dellorigine di localizzazione. Se il numero negativo, XPointer inizia a
contare in senso inverso a partire dalla fine dellorigine di
localizzazione. Se si utilizza il valore All, verranno utilizzate tutte le
occorrenze della stringa.

SkipLit Specifica la stringa da individuare nellorigine di localizzazione.

Position Specifica loffset di carattere dallinizio della stringa o delle


stringhe allinizio della corrispondenza di stringa finale.

Length Specifica il numero di caratteri da selezionare nella stringa.


Un esempio di termine di localizzazione di stringa il seguente:
Id(PRODUCT).String(3,"widget")
Si seleziona il terzo elemento di PRODUCT contenente la stringa "widget".
Infine un semplice esempio di utilizzo di un XPointer :
HREF="http://www.foo.com/br.xml#id(list).child(3,item)"

http://www.html.it/xml/guida/xpoint.htm (3 di 4)12/10/04 16.26.26

XML: Capitolo IV: Ampliare i documenti XML - Concetti fondamentali relativi al linguaggio XPointer

viene selezionato il terzo elemento item che si trova allinterno dellelemento


list del documento br.xml.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/xpoint.htm (4 di 4)12/10/04 16.26.26

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - XML-Data

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

XML-Data
LXML un linguaggio orientato agli oggetti e, come altri linguaggi di questo
tipo, permette di creare oggetti e di specificare i loro attributi. In generale si fa
riferimento ad un oggetto XML come ad un elemento XML. LXML Data un
DTD costruito secondo le specifiche XML, che pu essere utilizzato per
rappresentare strutture dati comunque complesse attraverso uno schema.

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde

XML-Data quindi un linguaggio utilizzato per creare uno schema, che


identifica la struttura e i vincoli per un particolare documento XML.
Molti sviluppatori che operano allinterno di aziende pensavano che il
linguaggio del meccanismo DTD non fosse adeguato alle necessit delle
applicazioni XML presenti e future. Di conseguenza, diverse aziende e istituti
di studio di ricerca, quali Microsoft, DataChannel e luniversit di Edinburgo,
hanno espresso lesigenza di un nuovo meccanismo che svolgesse le stesse
funzioni di base del meccanismo DTD, fornendo allo stesso tempo maggiori
potenzialit e flessibilit.
Attenendosi al vocabolario specificato nel DTD dellXML Data, facile
rappresentare basi di dati relazionali o ad oggetti. Un aspetto molto positivo
che utilizzando lXML Data schema possiamo evitare di creare un nostro DTD
specifico; quindi siamo sicuri che lo schema cos creato sar interpretato da
qualunque DBMS che conosce il DTD XML Data.

Falla grave in Microsoft


Word, non c' la patch

Le altre news - RSS

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/xmldata.htm12/10/04 16.26.37

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Gli obiettivi di XML-Data

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Gli obiettivi di XML-Data


XML-Data stato creato per eliminare alcuni limiti della DTD. Ecco come XMLData raggiunge tali obiettivi.

1.
Gestione dei documenti dello schema senza necessit di utilizzo
di strumenti speciali. Le DTD vengono scritte utilizzando una sintassi
particolare specifica. Per questo motivo, la funzionalit dellXML per
lutilizzo delle DTD richiede non solo autori esperti del linguaggio DTD,
ma anche strumenti speciali in grado di leggere e scrivere nelle DTD,
per ogni strumento XML sviluppato. Il primo obiettivo di XML-Data
quindi leliminazione dellutilizzo di strumenti speciali ed raggiunto
mediante il semplice utilizzo della sintassi XML per il linguaggio.

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata

2.
Flessibilit degli schemi. Gli schemi devono essere sufficientemente
flessibili per consentirne ladattamento a unapplicazione specifica,
eliminando i relativi vincoli. In altre parole, non necessaria la
flessibilit dellapplicazione per lo schema. Questa flessibilit ottenuta
mediante una sintassi di definizione aperta dello schema, con la quale
uno schema pu essere reso specifico aggiungendo elementi o attributi.

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde

3.
Semplicit del linguaggio al fine di consentirne limplementazione
in tutti gli elaboratori XML. Questo obiettivo garantisce che il
linguaggio XML-Data non sia complesso e possa quindi essere
implementato da tutti gli sviluppatori di elaboratori XML. Questo
obiettivo pu essere raggiunto utilizzando la sintassi XML per definire il
linguaggio dello schema. In questo modo, limplementazione viene
semplificata e non pi necessario disporre di un particolare
elaboratore per analizzare lo schema.

Falla grave in Microsoft


Word, non c' la patch

Le altre news - RSS

4.
XML-Data deve soddisfare i requisiti delle applicazioni Web (ad
esempio le applicazioni per scambi commerciali) che riguardano
la convalida dei dati aggiuntivi e di quelli espressi dalla DTD
corrente. La DTD definisce la struttura e le regole del documento, ma
presenta dei limiti nella definizione dei tipi di dati e nella convalida dei
dati. Il linguaggio XML-Data definisce i tipi di dati primitivi e permette di
determinare intervalli di valori di dati, ad esempio, consentendo
allautore di determinare i valori massimi e minimi. Questo tipo di
caratteristiche sono tipiche dei linguaggi di database relazionali, come
SQL (Structured Query Language), e dei linguaggi di programmazione
pi recenti.

5.
Il linguaggio dello schema deve supportare la funzionalit che
consente ai singoli documenti di comprendere parti definite in
fonti di dati diverse. I documenti XML, come sappiamo, possono
comprendere altri documenti o parti di altri documenti mediante
linserimento di puntatori allinterno della DTD. Questo obiettivo
stabilisce che XML-Data, fornir una funzionalit simile, ottenuta
mediante lutilizzo dello spazio dei nomi negli schemi XML-Data.

http://www.html.it/xml/guida/obietti.htm (1 di 2)12/10/04 16.27.21

cerca

XML: Capitolo IV: Ampliare i documenti XML - Gli obiettivi di XML-Data

XML-Data deve essere totalmente compatibile con XML 1.0. Lo


scopo di questo obiettivo minimizzare i problemi relativi al
superamento delle tecnologie dovuto a nuove versioni o a
aggiornamenti della tecnologia stessa. Lo scopo diffondere lutilizzo di
XML-Data, grazie anche al fatto che utilizza la sintassi XML. Questo
obiettivo ne amplia il campo di azione poich prevede che XML-Data
sia compatibile con XML 1.0.

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/obietti.htm (2 di 2)12/10/04 16.27.21

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Linguaggio schema XML-Data

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Linguaggio schema XML-Data


Qualsiasi schema di XML-Data un documento XML ben formato e, in quanto
tale, pu costituire anche un documento XML valido. Il linguaggio XML-Data si
basa sulla DTD XML-Data. Un documento pu essere valido, se fa riferimento
a tale DTD, ma risulta un documento ben formato anche se conforme alla
specifica XML-Data, nonostante nel prologo non vi sia alcun riferimento della
DTD.
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'

Lezione

successiva

[Sommario]

Microsoft ripropone una


falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/schema.htm12/10/04 16.27.58

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Struttura del documento dello schema

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Struttura del documento dello schema


Un documento XML di base composto da un prologo e da un elemento Document. Anche il
documento dello schema XML-Data composto da questi componenti. Esiste tuttavia una
differenza tra i due, ossia che un documento dello schema non contiene alcuna DTD. La
struttura del documento infatti definita allinterno di un elemento Schema che costituisce
lelemento Document, o Root, in una definizione di schema.
Questo documento pu essere utilizzato nel seguente modo:
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

<?xml version="1.0"?>
<Schema name="nomeschema" xmlns="urn:schemas-microsoft-com:xml-data">
<!-- Qui vi sono le dichiarazioni -->
<ElementType name="nomeelemento" content="tipocontent"/>
</Schema>
Lelemento Schema deve essere derivato dallo spazio del nome xml-data urn:schemasmicrosoft-com:xml-data. Non necessario dichiarare lo spazio del nome nel prologo dello
schema.
Le dichiarazioni dello schema possono avere aree di validit diverse. Questo significa che
possono essere sia dichiarazioni di primo livello sia dichiarazioni di livello locale. Larea di
validit di una dichiarazione identifica dove e come viene utilizzato un elemento dichiarato
allinterno di un documento dello schema.
DICHIARAZIONI DI PRIMO LIVELLO
Le dichiarazioni di primo livello includono qualsiasi tipo di elemento o di attributo dichiarato
allinterno dellelemento Schema. I tipi di elemento o attributo dichiarati nellarea di validit di
primo livello possono essere indicati nella dichiarazione del contenuto di altri tipi di elemento
presenti nello stesso schema. Ad esempio, nello schema che segue, il nome del tipo di
elemento dichiarato al primo livello e ne facciamo riferimento anche nella dichiarazione del
tipo di elemento Plant:
<Schema name="wildflowers" xmlns="urn:schemas-microsoft-com:xml-data">
<ElementType name="name" content="textOnly"/>
<ElementType name="plant">
<element type="name"/>
</ElementType>
</Schema>
DICHIARAZIONI DI LIVELLO LOCALE
Una dichiarazione che appare allinterno di unaltra dichiarazione, che non di primo livello,
considerata di area di validit di livello locale. E possibile fare riferimento alla dichiarazione di
livello locale solo allinterno della dichiarazione in cui contenuta. Ad esempio, se
aggiungiamo una dichiarazione dellattributo di livello locale alla dichiarazione del tipo di
elemento Plant otteniamo quanto segue:
<Schema name="wildflowers" xmlns="urn:schemas-microsoft-com:xml-data">
<ElementType name="name" content="textOnly"/>
<ElementType name="plant">
<element type="name"/>
<attribute name="bestseller" values="yes no"/>
</ElementType>
</Schema>

http://www.html.it/xml/guida/schema2.htm (1 di 2)12/10/04 16.28.06

XML: Capitolo IV: Ampliare i documenti XML - Struttura del documento dello schema

Lattributo bestseller pu essere utilizzato solo nella dichiarazione del tipo di elemento Plant.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/schema2.htm (2 di 2)12/10/04 16.28.06

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Dichiarazioni del tipo di elemento

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Dichiarazioni del tipo di elemento


Il tipo di elemento dichiarato nellelemento ElementType. Ogni dichiarazione del
tipo di elemento deve includere un attributo Name, che definisce il tipo di
elemento. Ad esempio. La dichiarazione del tipo di elemento riportata di seguito
dichiara un tipo di elemento con il nome Plant:
<ElementType name="plant">
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano

Il tipo di contenuto di elemento pu essere dichiarato con lattributo content. In


questo modo il contenuto dellelemento vincolato al tipo specificato.
TIPO DI CONTENUTO
Ogni tipo di elemento pu contenere una delle quattro categorie relative al
contenuto: vuoto, solo testo, solo sottoelementi o una combinazione di testo e
sottoelementi. I valori possibili sono i seguenti:

empty - non contiene alcun tipo di contenuto

46645: manda un SMS e


Google risponde
Falla grave in Microsoft
Word, non c' la patch

textOnly - contiene solo testo

eltOnly - contiene solo sottoelementi

Le altre news - RSS

mixed - contiene una combinazione di testo e sottoelementi


Oltre ai vincoli relativi al contenuto, una dichiarazione del tipo di elemento pu
anche specificare il pattern in cui gli elementi nella dichiarazione appaiono,
utilizzando lattributo order.
ORDINAMENTO DEL CONTENUTO
Lattributo order vincola il pattern per i tipi di elementi dichiarati in una
dichiarazione del tipo di elemento. I valori possibili sono i seguenti:

seq - Gli elementi devono apparire nella stessa sequenza degli elementi a
cui si fa riferimento nella dichiarazione del tipo di elemento. Questo il
pattern predefinito per il contenuto eltOnly.

one - Un sottoelemento del tipo dichiarato nella dichiarazione del tipo di


elemento deve essere contenuto nellelemento principale.

all - Un elemento di ogni tipo dichiarato nella dichiarazione del tipo di


elemento deve comparire come sottoelemento, ma i sottoelementi
possono avere un ordine qualsiasi.

http://www.html.it/xml/guida/dichielem.htm (1 di 3)12/10/04 16.28.30

cerca

XML: Capitolo IV: Ampliare i documenti XML - Dichiarazioni del tipo di elemento

many - Ciascuno degli elementi dichiarati nella dichiarazione del tipo di


elemento pu avere un ordine qualsiasi. Questo il pattern predefinito per
il contenuto mixed.
Lesempio seguente mostra la dichiarazione del tipo di elemento Plant, che
contiene i sottoelementi che devono essere ordinati in modo sequenziale:
<ElementType name="name" content="textOnly"/>
<ElementType name="growth" content="mixed"/>
<ElementType name="saleinfo" content="mixed"/>
<ElementType name="plant" content="eltOnly" order="seq">
<element type="name"/>
<element type="growth"/>
<element type="saleinfo"/>
</ElementType>
E possibile applicare altri vincoli raggruppando i riferimenti degli elementi
mediante lelemento Group. Questo elemento supporta lattributo order con gli
stessi valori utilizzati per lelemento ElementType. Ecco un esempio che utilizza
lelemento Group:
<ElementType
<ElementType
<ElementType
<ElementType

name="name" content="textOnly"/>
name="zone" content="textOnly"/>
name="light" content="textOnly"/>
name="price" content="textOnly"/>

<ElementType name="plant" content="eltOnly" order="seq">


<element type="name"/>
<group order="one">
<element type="zone"/>
<element type="light"/>
<element type="price"/>
</group>
</ElementType>
In questo caso il tipo di elemento Plant deve contenere un nome a cui deve
seguire uno degli elementi Zone, Light o Price.
QUANTITA DI ELEMENTI E GRUPPI
Come nelle DTD XML, possibile applicare vincoli in modo da determinare la
posizione e il numero delle volte in cui un elemento o un gruppo pu essere
ripetuto allinterno di un documento. Gli attributi minOccurs e maxOccurs
possono essere specificati negli elementi Element e Group. Lattributo minOccurs
specifica il numero minimo delle ripetizioni di un elemento, mentre maxOccurs
quello massimo. Nella seguente tabella indichiamo le possibili combinazioni di
valori per gli attributi minOccurs e maxOccurs con i relativi significati:
minOccurs

Numero di ripetizioni
dellelemento o del gruppo

maxOccurs

1 o non specificato

1 o non specificato

1 (Necessario)

1 o non specificato

0 o 1 (opzionale)

Maggiore di 1

Maggiore di n

Maggiore di 1

Minore di 1

"*"

http://www.html.it/xml/guida/dichielem.htm (2 di 3)12/10/04 16.28.30

Almeno minOccurs ripetizione,


ma non pi di maxOccurs

0
Qualsiasi numero di ripetizioni

XML: Capitolo IV: Ampliare i documenti XML - Dichiarazioni del tipo di elemento

"*"

Almeno unoccorrenza

Maggiore di 0

"*"

Almeno minOccurs ripetizioni

Qualsiasi valore

Il valore predefinito per ambedue gli attributi minOccurs e maxOccurs 1.


Questo significa che, se non specificato diversamente, gli elementi devono
occorrere una sola volta allinterno di un determinato tipo di elemento.
Nellesempio che segue il gruppo deve occorrere almeno una volta, quindi anche
pi volte:
<ElementType
<ElementType
<ElementType
<ElementType

name="name" content="textOnly"/>
name="zone" content="textOnly"/>
name="light" content="textOnly"/>
name="price" content="textOnly"/>

<ElementType name="plant" content="eltOnly" order="seq">


<element type="name"/>
<group minOccurs="1" maxOccurs="*" order="one">
<element type="zone"/>
<element type="light"/>
<element type="price"/>
</group>
</ElementType>

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/dichielem.htm (3 di 3)12/10/04 16.28.30

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Dichiarazioni del tipo di attributo

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Dichiarazioni del tipo di attributo


Un tipo di attributo viene dichiarato allinterno di un elemento AttributeType.
XML-Data supporta gli stessi tipi di attributo disponibili nella DTD XML.
ELEMENTI AttributeType

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

Come per lelemento ElementType, in ogni elemento AttributeType deve


essere specificato un nome. Le dichiarazioni del tipo di attributo sono di primo
livello e indipendenti dalle dichiarazioni del tipo di elemento. Si pu fare
riferimento in qualsiasi dichiarazione del tipo di elemento. Eccone un esempio:
<AttributeType name="bestseller"/>
<ElementType name="plant">
<attribute type="bestseller"/>
</ElementType>
VALORI PREDEFINITI
Un riferimento o una dichiarazione di un tipo di attributo pu includere anche
un attributo default, che indica il valore predefinito dellattributo. Ad esempio,
nello schema che segue, lattributo default incluso nella dichiarazione del tipo
di attributo:
<AttributeType name="bestseller" default="yes"/>
<ElementType name="plant">
<attribute type="bestseller"/>
</ElementType>
In questo modo viene specificato che il valore dellattributo default verr
applicato ogniqualvolta il tipo di attributo viene utilizzato in un elemento.
ATTRIBUTO required
Un riferimento o una dichiarazione del tipo di attributo pu contenere un
attributo required che specifica se necessario che lattributo abbia un valore.
<ElementType name="plant">
<attribute type="bestseller" default="no" required="yes"/>
</ElementType>

Lezione

successiva

[Sommario]

http://www.html.it/xml/guida/dichiattr.htm (1 di 2)12/10/04 16.28.39

cerca

XML: Capitolo IV: Ampliare i documenti XML - Dichiarazioni del tipo di attributo

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/dichiattr.htm (2 di 2)12/10/04 16.28.39

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Tipi di dati

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Tipi di dati
XML-Data supporta una gamma di tipi di dati pi vasta rispetto ai 10 tipi di dati dellXML.
Come gli schemi sono definiti dallo spazio dei nomi xml-data, alo stesso modo i tipi di dati
sono definiti dallo spazio dei nomi datatypes, come il seguente esempio:
<Schema name="wildflowers" xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'

<AttributeType name="dateorder"/>
<ElementType name="plant">
<attribute type="dateorder"/>
</ElementType>
</Schema>

Microsoft ripropone una


falla gi patchata

ATTRIBUTO type

'AOL Browser', il dopoNetscape si basa su IE

Un tipo di dati viene definito riferendosi ad esso con lattributo type nello spazio dei nomi
datatypes. Nellesempio seguente, viene specificato un tipo di dati per il tipo di attributo
dateorder:

P2P, Grokster e StreamCast


in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

<AttributeType name="dateorder" dt:type="dateTime"/>


<ElementType name="plant">
<attribute type="dateorder"/>
</ElementType>
I tipi di dati degli elementi pi usati sono:

Le altre news - RSS

char

string

int

float

boolean

number

uri

uuid
VINCOLI DEI TIPI DI DATI

http://www.html.it/xml/guida/tipidati.htm (1 di 2)12/10/04 16.28.49

XML: Capitolo IV: Ampliare i documenti XML - Tipi di dati

E possibile applicare vincoli a valori dei tipi di dati. I vincoli facilitano lidentificazione del tipo
dei dati contenuti in un elemento o attributo.
min e max Gli attributi min e max definiscono i limiti e superiori inclusi relativi ai dati
contenuti in un elemento o attributo.
enumeration A volte necessario enumerare i valori di un elemento o attributo. Questo
possibile mediante il tipo di dati enumeration e lattributo values.
maxLength Lattributo maxLength specifica la lunghezza del valore in numero di caratteri.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/tipidati.htm (2 di 2)12/10/04 16.28.49

Note e informazioni legali

XML: Capitolo IV: Ampliare i documenti XML - Funzionamento degli schemi

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Funzionamento degli schemi


Dal momento che uno degli obiettivi principali di XML-Data di fornire una valida
alternativa alle DTD, riprendiamo lesempio di DTD del messaggio di posta
elettronica e trasformiamolo in uno schema XML-Data. In questo modo sar
possibile evidenziare le corrispondenze tra DTD e schemi.
MESSAGGIO DI POSTA ELETTRONICA
Hosting Italiano

Il documento XML utilizzato nei capitoli precedenti era un messaggio di posta


elettronica che comprendeva le informazioni dellintestazione e il contenuto del
documento. Ecco il codice XML che appartiene a quel documento:

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

<?xml version="1.0"?>
<!DOCTYPE EMAIL SYSTEM "my.dtd">
<EMAIL LANGUAGE="Western" ENCRYPTED="128" PRIORITY="HIGH">
<TO>Marco@msn.com</TO>
<FROM>&SIGNATURE;@msn.com</FROM>
<CC>Giuseppe@msn.com</CC>
<BCC>Naomi@msn.com</BCC>
<SUBJECT>Congratulazioni</SUBJECT>
<BODY>
Ciao, questo e' un esempio
di file XML !
</BODY>
</EMAIL>
Il documento contiene attributi, entit interne e riferimenti alla DTD nel prologo.
DTD
Una delle operazioni che verranno effettuate sar la sostituzione della DTD con uno
schema. Prima di tutto sar necessario rivedere la DTD:
<?xml version="1.0"?>
<!ELEMENT EMAIL (TO+, FROM, CC*, BCC*, SUBJECT?, BODY?)>
<!ATTLIST EMAIL
LANGUAGE (Western|Greek|Latin|Universal) "Western"
ENCRYPTED CDATA #IMPLIED
PRIORITY (NORMAL|LOW|HIGH) "NORMAL">
<!ELEMENT TO (#PCDATA)>
<!ELEMENT FROM (#PCDATA)>
<!ELEMENT CC (#PCDATA)>
<!ELEMENT BCC (#PCDATA)>
<!ATTLIST BCC
HIDDEN CDATA #FIXED "TRUE">
<!ELEMENT SUBJECT (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
<!ENTITY SIGNATURE "Flavio">
Sar necessario incorporare alcuni elementi della DTD nello schema. Oltre a definire

http://www.html.it/xml/guida/funzio.htm (1 di 6)12/10/04 16.30.21

cerca

XML: Capitolo IV: Ampliare i documenti XML - Funzionamento degli schemi

la struttura generale di un messaggio di posta elettronica, il DTD contiene altri


elementi specifici.

Lelemento To dichiarato con un segno (+), a indicare che dovr occorrere


una o pi volte.

Lelemento From dichiarato senza alcun simbolo, a indicare che dovr


occorrere una sola volta.

Gli elementi Cc e Bcc sono dichiarati con un asterisco (*), a indicare che gli
elementi sono opzionali, ma possono occorrere pi di una volta.

Gli elementi Subject e Body sono dichiarati con un punto di domanda (?), a
indicare che gli elementi sono opzionali, ma possono essere ripetuti pi di
una volta.

Gli elementi Email e Bcc hanno attributi associati, con valori predefiniti.

La maggior parte degli elementi sono dichiarati come elementi di testo


(#PCDATA).

Lentit Signature dichiarata e contiene un valore.


Gli elementi indicano quanto necessario per creare un documento dello schema
che soddisfi i criteri di corrispondenza con la DTD. Lultimo elemento necessario per
utilizzare questi esempi una pagina XSL utilizzata come modello per visualizzare i
dati.
PAGINA XSL
La pagina XSL utilizzata per visualizzare il contenuto XML la seguente:
<?xml version="1.0"?>
<xsl:template xmlns:xsl="uri:xsl">
<DIV STYLE="font-weight:bold;font-size:20">
To:
<SPAN STYLE="font-weight:normal;color:red">
<xsl:value-of select="EMAIL/TO"/>
</SPAN>
</DIV>
<BR></BR>
<DIV STYLE="font-weight:bold;font-size:20">
From:
<SPAN STYLE="font-weight:normal;color:red">
<xsl:value-of select="EMAIL/FROM"/>
</SPAN>
</DIV>
<BR></BR>
<DIV STYLE="font-weight:bold;font-size:20">
Cc:
<SPAN STYLE="font-weight:normal;color:red">
<xsl:value-of select="EMAIL/CC"/>
http://www.html.it/xml/guida/funzio.htm (2 di 6)12/10/04 16.30.21

XML: Capitolo IV: Ampliare i documenti XML - Funzionamento degli schemi

</SPAN>
</DIV>
<BR></BR>
<DIV STYLE="font-weight:bold;font-size:20">
Subject:
<SPAN STYLE="font-weight:normal;color:red">
<xsl:value-of select="EMAIL/SUBJECT"/>
</SPAN>
</DIV>
<HR></HR>
<SPAN STYLE="font-style:italic;font-size:32;color:orange">
<xsl:value-of select="EMAIL/BODY"/>
</SPAN>
</xsl:template>
La visualizzazione del documento la seguente:

clicca qui per vedere l'esempio email.xml (solo MSIE 5.0 o superiore)
SCHEMA
A questo punto procediamo con la creazione dello schema. E necessario
innanzitutto creare il documento dello schema. Le regole semantiche e strutturali
dovranno essere le stesse utilizzate nella DTD. Lesempio seguente contiene il
codice dello schema:
<?xml version="1.0"?>
<Schema name="email" xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<AttributeType name="language" dt:type="enumeration"
dt:values="Western Greek Latin Universal"/>
<AttributeType name="encrypted"/>
<AttributeType name="priority" dt:type="enumeration"
dt:values="NORMAL LOW HIGH"/>
<AttributeType name="hidden" default="true"/>
<ElementType name="to" content="textOnly"/>
<ElementType name="from" content="textOnly"/>

http://www.html.it/xml/guida/funzio.htm (3 di 6)12/10/04 16.30.22

XML: Capitolo IV: Ampliare i documenti XML - Funzionamento degli schemi

<ElementType name="cc" content="textOnly"/>


<ElementType name="bcc" content="mixed">
<attribute type="hidden" required="yes"/>
</ElementType>
<ElementType name="subject" content="textOnly"/>
<ElementType name="body" content="textOnly"/>
<ElementType name="email" content="eltOnly">
<attribute type="language" default="Western"/>
<attribute type="encrypted"/>
<attribute type="priority" default="NORMAL"/>
<element type="to" minOccurs="1" maxOccurs="*"/>
<element type="from" minOccurs="1" maxOccurs="1"/>
<element type="cc" minOccurs="0" maxOccurs="*"/>
<element type="bcc" minOccurs="0" maxOccurs="*"/>
<element type="subject" minOccurs="0" maxOccurs="1"/>
<element type="body" minOccurs="0" maxOccurs="1"/>
</ElementType>
</Schema>
Lo schema molto diverso dalla DTD, tuttavia si tratta sempre di codice XML, per
cui la sintassi e limpostazione sono familiari. A questo punto controlliamo il codice in
base al seguente elenco di requisiti.
Lelemento To dichiarato in modo che sia ripetuto una o pi volte. I riferimenti
allelemento To sono gli attributi minOccurs="1" e maxOccurs="*", che indicano che
lelemento deve occorrere almeno una volta e che il numero di ripetizioni illimitato.
Lelemento From dichiarato in modo che occorra una sola volta. I riferimenti
allelemento From sono minOccurs="1" e maxOccurs="1", che indicano che
lelemento deve occorrere una sola volta.
Gli elementi Cc e Bcc sono dichiarati in modo che gli elementi siano opzionali
e occorrano pi di una volta. Ambedue gli elementi devono contenere gli attributi
minOccurs="0" e maxOccurs="*", che indicano che sono opzionali e che il numero di
occorrenze illimitato.
Gli elementi Subject e Body sono dichiarati in modo che gli elementi siano
opzionali e che possano occorrere una sola volta. Gli attributi minOccurs="0" e
maxOccurs="1" indicano che gli elementi sono opzioni e che possono apparire una
sola volta.
Gli elementi Email e Bcc hanno attributi associati, con valori predefiniti dove
necessario. I tipi di attributi sono dichiarati nel livello superiore del documento e vi
viene fatto riferimento nelle rispettive dichiarazioni dei tipi di elemento. Non occorre
dichiarare i tipi di attributi al livello superiore, poich sufficiente che siano
dichiarazioni a livello locale.
La maggior parte degli elementi dichiarata come elementi di testo. La maggior
parte delle dichiarazioni include lattributo content"textOnly", che indica che esse
contengono solo testo. Leccezione rappresentata dallelemento Email, che
contiene solo sottoelementi, e dallelemento Bcc, che contiene un attributo oltre al
testo.
Lentit Signature dichiarata e contiene un valore. Le entit non sono ancora
supportate negli schemi XML-Data, per cui non necessario aggiungere nulla.
Se lo schema soddisfa tutti i requisiti relativi al messaggio di posta elettronica,
possibile passare alla modifica dellelemento XML per utilizzarlo con lo schema, nel
modo seguente:

http://www.html.it/xml/guida/funzio.htm (4 di 6)12/10/04 16.30.22

XML: Capitolo IV: Ampliare i documenti XML - Funzionamento degli schemi

<?xml version="1.0"?>
<em:email xmlns:em="x-schema:myschema.xml" language="Western"
encrypted="128" priority="HIGH">
<em:to>Marco@msn.com</em:to>
<em:from>Flavio@msn.com</em:from>
<em:cc>Giuseppe@msn.com</em:cc>
<em:subject>Congratulazioni</em:subject>
<em:body>Ciao, questo e' un esempio di file</em:body>
</em:email>
In questo modo possibile notare due importanti differenze rispetto alla versione
DTD nel documento XML. Innanzitutto, invece del riferimento alla DTD nel prologo,
nellelemento em:email presente lo spazio del nome dello schema. Inoltre nel
documento tutti i tag degli elementi contengono il prefisso em, che li identifica come
parte di un namespace associato. Ad eccezione di queste due piccole ma importanti
differenze, il documento fondamentalmente lo stesso utilizzato per lesempio del
messaggio di posta elettronica iniziale. Le regole strutturali del documento sono
uguali perch da un punto di vista funzionale lo schema corrisponde alla DTD creata
precedentemente. Per formattare il documento XML, viene utilizzato lo stesso foglio
di stile XSL del messaggio di posta elettronica con lunica differenza che nei pattern
viene inserito il prefisso em.
<?xml version="1.0"?>
<xsl:template xmlns:xsl="uri:xsl">
<DIV STYLE="font-weight:bold;font-size:20">
To:
<SPAN STYLE="font-weight:normal;color:red">
<xsl:value-of select="em:email/em:to"/>
</SPAN>
</DIV>
<BR></BR>
<DIV STYLE="font-weight:bold;font-size:20">
From:
<SPAN STYLE="font-weight:normal;color:red">
<xsl:value-of select="em:email/em:from"/>
</SPAN>
</DIV>
<BR></BR>
<DIV STYLE="font-weight:bold;font-size:20">
Cc:
<SPAN STYLE="font-weight:normal;color:red">
<xsl:value-of select="em:email/em:cc"/>
</SPAN>
</DIV>
<BR></BR>
<DIV STYLE="font-weight:bold;font-size:20">
Subject:
<SPAN STYLE="font-weight:normal;color:red">
<xsl:value-of select="em:email/em:subject"/>
</SPAN>
</DIV>
<HR></HR>
<SPAN STYLE="font-style:italic;font-size:32;color:orange">
<xsl:value-of select="em:email/em:body"/>
</SPAN>
</xsl:template>
E possibile notare che nonostante il codice sia molto diverso rispetto ai documenti di
origine, il risultato pressoch lo stesso. Inoltre si ottiene un documento convalidato

http://www.html.it/xml/guida/funzio.htm (5 di 6)12/10/04 16.30.22

XML: Capitolo IV: Ampliare i documenti XML - Funzionamento degli schemi

con i vantaggi offerti da uno schema, invece di una DTD, insieme alle potenzialit e
alla flessibilit dellXSL per la formattazione.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/funzio.htm (6 di 6)12/10/04 16.30.22

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Channel Definition Format (CDF)


Channel Definition Format (CDF) una applicazione XML sviluppata dalla
Microsoft che permette di creare un file che descrive un canale Web. Nel
World Wide Web un canale un sito Web che presenta informazioni
aggiornate periodicamente; un utente pu abbonarsi a tale canale e ricevere in
modo automatico le informazioni aggiornate. Per utilizzare questo servizio
lutente ha bisogno del browser Microsoft Internet Explorer 4.0 o successive
edizioni.
Hosting Italiano

Lezione
ULTIM'ORA

successiva

[Sommario]

Truffa 100 utenti eBay per


godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/cdf.htm12/10/04 16.30.36

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML - Webcasting (tecnologia push)

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Webcasting (tecnologia push)


CDF implementa la tecnologia Webcasting (detta anche tecnologia push) che
in generale permette di aggiornare informazioni che risiedono sul computer di
un utente. Tale aggiornamento avviene periodicamente tramite il World Wide
Web. La tecnologia Webcasting stata implementata sia dalla Microsoft
(MSIE), che dalla Netscape (Netcaster, componente della suite
Communicator). Nel Web esistono anche altri servizi che implementano tale
tecnologia, come Pointcast e Backweb.
Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

In generale quando si naviga in Internet il browser recupera le pagine da un


server WWW. Questo recupero viene spesso definito pulling (estrarre): il
browser estrae le pagine dal server e le invia al desktop. Con la tecnologia
Webcasting si pu fare molto di pi: il server WWW che "spinge" le
informazioni nel client (per questo viene chiamata anche tecnologia push)
senza che lutente ne faccia specifica richiesta (a parte ovviamente la richiesta
di abbonamento iniziale). In questo modo laccesso alle informazioni da parte
dellutente avviene senza ritardi dovuti al download. Laccesso pu avvenire
anche off-line (utente non collegato ad Internet) poich le informazioni
vengono memorizzate in una cache; inoltre lutente sicuro di rimanere
sempre aggiornato.
In pratica il modo push di raccolta delle informazioni possibile solo in
ambiente intranet perch il server sicuro di trovare i client sempre disponibili
a ricevere le informazioni aggiornate. In un ambiente home (utente che si
collega saltuariamente ad Internet) il modo di raccolta delle informazioni
detto smart pull: il browser estrae le informazioni dal server WWW ma con due
differenze molto importanti rispetto il modo pulling:

Il browser sa dove cercare le informazioni che interessano, quindi non


si devono pi sprecare ore per la loro ricerca.

Si pu impostare il browser in modo che controlli automaticamente le


nuove informazioni sul server WWW quando ci colleghiamo ad Internet.
In una soluzione smart pull esiste sul client un programma detto scheduler che
automaticamente controlla via HTTP la presenza di informazioni aggiornate
sul server WWW che ospita il canale a cui ci siamo abbonati. Per
programmare lo scheduler deve esistere un file che contenga informazioni sul
canale, quali lURL del canale stesso, la frequenza con cui vengono
aggiornate le informazioni, etc. CDF una proposta della Microsoft per
standardizzare file di questo tipo.

Lezione

successiva

[Sommario]

http://www.html.it/xml/guida/push.htm (1 di 2)12/10/04 16.30.43

cerca

XML: Capitolo V: Applicazioni dell'XML - Webcasting (tecnologia push)

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/push.htm (2 di 2)12/10/04 16.30.43

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML - Struttura di un file CDF

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Struttura di un file CDF


Un file CDF deve essere preparato dallamministratore del canale; contiene tutte le
informazioni sul canale e tutte le informazioni su come il client deve eseguire lo
smart pull. Vediamo un semplice esempio di file CDF:

Hosting Italiano

<?XML version="1.0"?>
<CHANNEL HREF="http://www.miosito.com/index.html"
LASTMOD="1998-07-07T12.00"
LEVEL="2"
PRECACHE="YES">
<TITLE>Il mio sito</TITLE>

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

<ABSTRACT>Nel mio sito potete trovare


informazioni molto utili su tutto</ABSTRACT>
<SCHEDULE>
<INTERVALTIME DAY="1"/>
</SCHEDULE>
<LOGO HREF="http://www.miosito.com/images/logo.gif"
STYLE="IMAGE"/>
</CHANNEL>
La prima istruzione specifica che il file CDF un documento XML. A questo
proposito, MSIE 4 include al suo interno un processore XML scritto in C++ per
interpretare i file CDF. Channel lelemento root; lattributo Href identifica il canale
(tramite URL). Lattributo Lastmod specifica la data dellultimo aggiornamento del
canale quindi devono essere scaricate tutte le pagine che sono state modificate
dopo le ore dodici del 7 Luglio 1998; lattributo Level specifica che devono essere
scaricate anche tutte la pagine collegate alle pagine del canale (fino al secondo
livello). Infine lattributo Precache specifica che il contenuto scaricato deve essere
memorizzato nella cache del client. Lelemento Title contiene il titolo del canale e
lelemento Abstract una descrizione dettagliata del suo contenuto. Lelemento
Schedule serve per specificare al client la frequenza degli aggiornamenti;
nellesempio il client sa che ogni giorno sono disponibili nuovi aggiornamenti.
Per specificare la frequenza in base alla quale un canale deve essere aggiornato,
possibile utilizzare un programma (schedule). possibile utilizzare anche lattributo
Hour:
<SCHEDULE>
<INTERVALTIME HOUR="12"/>
<ERLIESTTIME HOUR="1"/>
<LATESTTIME HOUR="2"/>
</SCHEDULE>
Il codice riportato specifica che gli aggiornamenti si verificano ogni dodici ore (in
generale il primo aggiornamento parte sempre a mezzanotte). Per evitare che il
server subisca degli overload nelle ore specificate (nellesempio a mezzanotte e a
mezzogiorno), lamministratore del canale inserisce anche gli elementi Earliesttime e
Latesttime, che obbliga il client a collegarsi fra luna e le due e fra le tredici e le
quattordici (naturalmente le ore sono riferite a questo esempio).
In Schedule possibile specificare anche gli attributi Startdate e Stopdate per
specificare la data di inizio e di fine del programma:
<SCHEDULE STARTDATE="1998-01-01" STOPDATE="1998-12-31">
<INTERVALTIME DAY="1"/>

http://www.html.it/xml/guida/strutturacdf.htm (1 di 3)12/10/04 16.31.40

cerca

XML: Capitolo V: Applicazioni dell'XML - Struttura di un file CDF

</SCHEDULE>
Infine lelemento Logo associa al canale unimmagine; lattributo Style specifica le
dimensioni dellimmagine:
Value Size
"ICON" 16H x 16W
"IMAGE" 32H x 80W
"IMAGE-WIDE" 32H x 194W
Se un canale diviso in varie sezioni, possibile impostare delle gerarchie nel file
CDF. Lelemento root Channel pu contenere altri elementi Channel; ogni elemento
Channel pu contenere degli elementi Item. Vediamo un esempio:
<?XML VERSION="1.0"?>
<CHANNEL
BASE="http://www.stream.it/iechannel/" HREF="home/stream.htm">
<TITLE>I Canali Stream</TITLE>
<ABSTRACT>I canali Stream: intrattenimento, viaggi, news...
e molto altro!</ABSTRACT>
<LOGO HREF="images/80x32.gif" STYLE="IMAGE"/>
<SCHEDULE>
<INTERVALTIME DAY="1"/>
<EARLIESTTIME HOURS="6"/>
</SCHEDULE>
<CHANNEL HREF="games/news/gamenews.htm">
<TITLE>InGame</TITLE>
<ABSTRACT>Giochi sempre nuovi, insieme a tutte le news
dal mondo ludico</ABSTRACT>
<LOGO HREF="games/16_ingame.ico"STYLE="ICON"/>
<ITEM HREF="games/fotomisteriosa/fotomisteriosa.html"
LASTMOD="1997.09.30T14:49+0100" PRECACHE="YES" LEVEL="1">
<TITLE>La foto misteriosa</TITLE>
<ABSTRACT>Confrontati con questo rompicapo...
Buon divertimento</ABSTRACT>
<LOGO HREF="games/fotomisteriosa/icona.ico" STYLE="ICON"/>
</ITEM>
</CHANNEL>
<CHANNEL HREF="plugintv/root.htm">
<TITLE>PlugINTV</TITLE>
<ABSTRACT>La televisione a portata di click</ABSTRACT>
<LOGO HREF="plugintv/16_plugintv.ico" STYLE="ICON"/>
</CHANNEL>
<CHANNEL HREF="cinema/default.htm">
<TITLE>Cinematografo</TITLE>
<ABSTRACT>Cinematografo: tutto sui nuovi film nelle sale
e in videocassetta</ABSTRACT>
<LOGO HREF="cinema/16_cinematografo.ico" STYLE="ICON"/>
</CHANNEL>
<CHANNEL HREF="tecnologia/default.htm">
<TITLE>Tecnologia</TITLE>
<ABSTRACT>Informazioni sulle ultime novit della
tecnologia</ABSTRACT>
<LOGO HREF="tecnologia/16_tecnologia.ico" STYLE="ICON"/>
</CHANNEL>
<CHANNEL HREF="viaggi/viagginews.htm">
<TITLE>Canale Viaggi</TITLE>

http://www.html.it/xml/guida/strutturacdf.htm (2 di 3)12/10/04 16.31.40

XML: Capitolo V: Applicazioni dell'XML - Struttura di un file CDF

<ABSTRACT>Viaggi, con informazioni su paesi e itinerari


consigliati</ABSTRACT>
<LOGO HREF="viaggi/16_canaleviaggi.ico" STYLE="ICON"/>
</CHANNEL>
<ITEM HREF="meteo/default.htm" LASTMOD="1997.09.30T14:06+0100"
PRECACHE="YES" LEVEL="1">
<TITLE>Meteo</TITLE>
<ABSTRACT>Previsioni meteorologiche sull'Italia e l'Europa
aggiornate costantemente</ABSTRACT>
<LOGO HREF="16_meteo.ico" STYLE="ICON"/>
</ITEM>
</CHANNEL>
Lattributo Base dellelemento root Channel specifica lURL di tutti gli elementi
innestati (Channel e Item). Ogni elemento innestato ha chiaramente il suo URL
relativo. Per ogni elemento innestato pu essere specificato oltre allURL relativo, il
titolo (Title), la descrizione dettagliata (Abstract) e il logo (Logo). Gli attributi
dellelemento Item sono Href, Lastmode, Precache e Level (gi descritti per
lelemento Channel). Questo file CDF di esempio viene visualizzato da MSIE 4 nella
barra dei canali come in Fig. 5.1.

Fig. 5.1: Esempio di file CDF visualizzato nella barra dei canali di MSIE.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/strutturacdf.htm (3 di 3)12/10/04 16.31.40

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML - Utilizzo del file CDF

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Utilizzo del file CDF


Il file CDF che descrive il canale deve semplicemente essere inserito nella
directory root del sito Web. Quindi nella home page si inserisce licona
caratteristica Add Active Channel che deve essere collegata al file CDF.
Quando lutente accede al sito per abbonarsi al canale deve semplicemente
cliccare sullicona Add Active Channel (Fig 5.2)
Hosting Italiano

Fig. 5.2 Pulsante per aggiungere un canale

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE

Il browser MSIE 4 (necessario per questo tipo di servizio) riconosce il canale e


guida lutente nella procedura di abbonamento. La procedura di abbonamento
consiste nello scaricare sul client il file CDF e il relativo logo; quindi viene
visualizzata una finestra di dialogo che permette di personalizzare la modalit
di abbonamento al canale (Fig. 5.3).

P2P, Grokster e StreamCast


in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

Fig. 5.3: Finestra di dialogo per personalizzare labbonamento ad un canale


Le scelte disponibili sono le seguenti:

Aggiungere alla barra dei canali: viene semplicemente aggiunto il


canale alla barra dei canali; la funzione meno interessante.

Aggiungere e comunicare: il canale viene aggiunto e viene notificato via


e-mail quando il suo contenuto sul server cambiato.

Aggiungere e scaricare: lopzione che sfrutta pienamente la potenza


dei canali. Ogni volta che ci colleghiamo ad Internet, MSIE controlla
automaticamente se sono disponibili nuovi aggiornamenti
(dallelemento Schedule del file CDF) e in caso affermativo effettua il
download delle pagine, memorizzandole nella cache, in modo che
siano disponibili anche off-line.
Effettuata la scelta, la procedura di abbonamento conclusa e da quel
momento si abbonati al canale.

http://www.html.it/xml/guida/utilizzo.htm (1 di 2)12/10/04 16.31.53

cerca

XML: Capitolo V: Applicazioni dell'XML - Utilizzo del file CDF

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/utilizzo.htm (2 di 2)12/10/04 16.31.53

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML - Esempio di un canale

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Esempio di un canale
Questo un semplice esempio su come far diventare il proprio sito Web un canale
con tecnologia CDF. Questo il file HTML:

<HTML>

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

<HEAD>
<TITLE>Marco Giann - Canale Personale/TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#800000" VLINK="#000080">
<BR><BR>
<H1> Salve,</H1>
<IMG SRC="casa.gif" BORDER="0" ALIGN="right">
<H3>sono Marco Giann e questo il mio canale personale.
Qui potete trovare le informazioni sulle mie ricerche.</H3>
<H2>Sottoscriviti, gratis</H2>
<BR>
<A HREF="javascript:window.external.addChannel
('http://www.miosito.com/mio.cdf')">
<IMG SRC="ieaddchanne.gif" BORDER="0">
</A>
<BR>
</BODY>
</HTML>
Lelemento significativo il valore di Href dellancora A, che richiama una funzione
javascript che MSIE utilizza per effettuare la procedura di abbonamento. Questo il
file CDF:
<?XML VERSION="1.0"?>
<CHANNEL HREF="http://www.miosito.com/index.htm">
<TITLE>Marco Giann- Canale Personale</TITLE>
<ABSTRACT>Mia homepage</ABSTRACT>
<SCHEDULE>
<INTERVALTIME DAY="1"/>
</SCHEDULE>
</CHANNEL>
La Fig. 5.4 mostra la pagina del canale.

http://www.html.it/xml/guida/esempcdf.htm (1 di 2)12/10/04 16.32.00

cerca

XML: Capitolo V: Applicazioni dell'XML - Esempio di un canale

Fig. 5.4: Un esempio di canale.


Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/esempcdf.htm (2 di 2)12/10/04 16.32.00

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML - Synchronized Multimedia Integration Language (SMIL)

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

cerca

Synchronized Multimedia Integration


Language (SMIL)
Il linguaggio SMIL (Synchronized Multimedia Integration Language) stato
progettato per permettere lintegrazione di un assortimento di oggetti
multimediali in modo sincronizzato. SMIL permette la creazioni di
presentazioni ed progettato per mettere insieme sul Web i componenti
multimediali.

Hosting Italiano

SMIL 1.0 stato recentemente rilasciato come raccomandazione W3C. Una


delle funzioni affascinanti che tutta la presentazione viene coordinata in una
descrizione di facile lettura. La sintassi utilizzata il linguaggio XML.

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano

Lo standard proposto dallo SMIL definisce i tag (per esempio, <audio> per i
file audio, <video> per i file video, <text> per i file di testo, <img> per le
immagini), ma lo standard non stabilisce un formato particolare per un
determinato tag. Si pu decidere di utilizzare il formato di file Wav per il suono,
il formato di file Mpeg per il video e i formati Gif, Jpeg e/o Png per le immagini.
Il linguaggio SMIL stato progettato sulla base di alcune idee e su due
concetti: le presentazioni parallele e quelle in sequenza. Le prime combinano
contemporaneamente componenti multimediali per fornire unimmagine
completa; le seconde vengono fornite in una serie di fasi individuali.

46645: manda un SMS e


Google risponde
Falla grave in Microsoft
Word, non c' la patch

Lezione

successiva

[Sommario]

Le altre news - RSS

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/smil.htm12/10/04 16.32.06

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML - Struttura di SMIL

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Struttura di SMIL
Una descrizione SMIL incorporata allinterno del tag SMIL. I documenti SMIL
sono composti da due parti: una testa e un corpo. Ognuna di queste parti
potrebbe contenere istruzioni XML speciali, quali commenti e istruzioni di
elaborazione. La testa di un documento indicata dal tipo di elemento Head, il
corpo dal tipo di elemento Body.

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata

<smil>
<head>
<!-- questa la parte della testa -->
</head>
<body>
<!-- Questa al parte del corpo -->
</body>
</smil>
IN TESTA

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

La sezione della testa di un documento SMIL viene utilizzata per descrivere gli
aspetti legati al layout della presentazione e contiene alcune metainformazioni
sulla presentazione. I metadati possono stabilire che un documento SMIL non
abbia limiti precisi. La sintassi ufficiale per descrivere alcuni metadati :
<meta
name="NomeDellaVariabile"
content="ValoreDellaVariabile"
/>
Il linguaggio SMIL ha alcuni nomi predefiniti per i metadati:

sync: la sincronizzazione di una presentazione SMIL pu essere


definita come rigida o flessibile. Rigida significa che un interprete SMIL
deve seguire le regole di sincronizzazione per le presentazioni per le
preentazioni parallele degli oggetti multimediali proprio come sono state
definite. Flessibile significa che viene data una certa libert di azione
durante lesecuzione.

title: serve per assegnare un nome alla presentazione.

pics-label: PICS lacronimo di Platform for Internet Content Selection.


Le eticehtte PICS vengono utilizzate per fornire un controllo migliore sul
contenuto al quale pu accedere un determinato pubblico.
NEL CORPO
Si possono definire tre stili di presentazione diversi nel corpo di una
presentazione SMIL, due dei quali di particolare importanza, lo stile parallelo e
quello in sequenza.
Lezione

http://www.html.it/xml/guida/strutturasmil.htm (1 di 2)12/10/04 16.32.14

successiva

cerca

XML: Capitolo V: Applicazioni dell'XML - Struttura di SMIL

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/strutturasmil.htm (2 di 2)12/10/04 16.32.14

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML - Stile parallelo

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Stile parallelo
Lo stile parallelo viene utilizzato per descrivere come due oggetti sono
presentati contemporaneamente e come linizio e la fine sono correlati tra di
loro (Fig. 5.5).

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale

Fig. 5.5 Oggetti multimediali in stile parallelo

FSF Europe esclusa dalla


Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

Un blocco parallelo viene indicato dal tag <par>. Per esempio, un oggetto
audio e un oggetto immagine per lo stile parallelo possono essere descritti in
questo modo:
<par>
<audio ... />
<img ... />
</par>
Per default, lora di conclusione di una presentazione parallela lora massima
di conclusione di tutti gli oggetti. Tuttavia si pu controllare lora di
conclusione. Lattributo facoltativo endsync specifica che la fine della sezione
parallela dipende dal tempo specificato di conclusione di uno dei suoi figli.
Esso pu avere due valori distinti e ha una sintassi generica:

last: questo valore conclude la presentazione quando lultimo oggetto


termina.

first: questo lopposto di last

id-ref: il progettista pu rendere la durata di questo gruppo parallelo


dipendente dalla conclusione dellazione di un oggetto specifico.

Lezione

successiva

[Sommario]

http://www.html.it/xml/guida/paral.htm (1 di 2)12/10/04 16.32.20

cerca

XML: Capitolo V: Applicazioni dell'XML - Stile parallelo

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/paral.htm (2 di 2)12/10/04 16.32.20

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML - Stile in sequenza

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Stile in sequenza
Una sequenza definisce una serie di oggetti che devono essere eseguiti in
ordine sequenziale. Per esempio, prima si vede video 1 e poi video 2 (Fig. 5.6).

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

Fig. 5.6 Una sequenza semplice


La sintassi generale per una sequenza la seguente :
<seq>
<!-- primo oggetto -->
<!-- secondo oggetto -->
</seq>
Il primo oggetto inizia la presentazione nel momento in cui stato
programmato che tutta la sequenza abbia inizio. Il resto degli oggetti avvia la
propria azione quando terminano i suoi predecessori. La sequenza completa
finisce quando lultimo membro ha terminato la sua presentazione.
ATTRIBUTI BEGIN ED END
Gli attributi begin ed end cambiano il tempo di inizio e di fine di default di un
elemento. In base al tipo di oggetto al quale sono applicati questi attributi, la
semantica differente. I valori che questi attributi possono avere sono valori di
offset oppure eventi qualificati. Nelle sequenze, il valore di offset determina il
tempo tra la fine delloggetto precedente e linizio di quello successivo.
Nella specifica parallela lattributo begin specifica un ritardo rispetto al tempo
globale di inizio delloggetto parallelo.
Lezione

successiva

[Sommario]

http://www.html.it/xml/guida/seque.htm (1 di 2)12/10/04 16.32.30

cerca

XML: Capitolo V: Applicazioni dell'XML - Stile in sequenza

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/seque.htm (2 di 2)12/10/04 16.32.30

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML - Specifiche dell'impostazione

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Specifiche dell'impostazione
La specifica SMIL afferma che possibile utilizzare un assortimento di formati di
specifica dellimpostazione differenti insieme alla presentazione SMIL. Tuttavia,
SMIL viene fornito con una proposta di un semplice meccanismo di specifica
dellimpostazione.

Truffa 100 utenti eBay per


godersi la 'bella vita'

SMIL utilizza il concetto dei canali per specificarne limpostazione. Un canale


definisce la posizione, le dimensioni e la scala di un oggetto multimediale. I
canali che si sovrappongono sono gestiti da un processo denominato clipping
(ritagliare), che si occupa di gestire le immagini che sono troppo grandi o troppo
piccole per essere inserite perfettamente in una determinata area. Ogni canale
definito deve avere un ID univoco mediante il quale viene identificato. Si pu
anche utilizzare limpostazione di default inserendo questo frammento di codice
nella descrizione SMIL:

Microsoft ripropone una


falla gi patchata

<layout type="text/smil - basic"></layout>

Hosting Italiano

ULTIM'ORA

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale

La posizione di un canale viene definita dai valori seguenti:

FSF Europe esclusa dalla


Commissione Vigevano

top: questo valore viene definito come la distanza rispetto alla parte
superiore dellarea di rappresentazione.

46645: manda un SMS e


Google risponde
Falla grave in Microsoft
Word, non c' la patch

left: questo valore descrive la distanza rispetto allangolo sinistro della


finestra di rappresentazione.

Le altre news - RSS

Le proporzioni di un canale sono definite dalla larghezza e dallaltezza:

width: questo tag, se disponibile, definisce la larghezza di un oggetto. Se


non viene specificato un valore, width viene definito come lo spazio tra la
posizione left e langolo destro dellarea di rappresentazione.

height: questo tag la controparte di width e segue le stesse regole. Se


non viene specificata unaltezza, il valore viene calcolato come lo spazio
tra una coordinata top e la parte inferiore dellarea di rappresentazione.

http://www.html.it/xml/guida/imposta.htm (1 di 3)12/10/04 16.33.04

cerca

XML: Capitolo V: Applicazioni dell'XML - Specifiche dell'impostazione

Figura La definizione delle coordinate dello schermo


CLIPPING
La funzione di ritaglio (clipping) permette di gestire quelle situazioni nelle quali le
dimensioni effettive delloggetto non corrispondono alle proporzioni specificate
nella definizione del canale. Il linguaggio SMIL fornisce un insieme di attributi
che possono essere utilizzati per controllare la strategia del ritaglio, se una cosa
di questo tipo dovrebbe verificarsi. Il nome dellattributo clip e i possibili valori
sono i seguenti:

meet (valore di default): indica al software di presentazione scalare di un


oggetto, pur mantenendo il rapporto, fino a quando laltezza o la
larghezza delloggetto non rientra nel canale.

slice: questo valore indica che un oggetto viene scalato, mantenendo il


rapporto fino a quando laltezza o la larghezza non rientra nelle
proporzioni del canale.

fill: si comporta in modo simile al tag di immagine HTML (<img>). Allunga


la larghezza e laltezza delloggetto in modo ceh corrisponda alle
proporzioni del canale.

visible: questo valore significa che la larghezza e laltezza di un elemento


sono ampliate per contenere tutto il contenuto rappresentato.

hidden: simile a slice; lunica differenza che il software SMIL non


regola la larghezza o laltezza per adattare loggetto, perlomeno per
quanto riguarda uno degli assi.

auto: questo valore lascia allapplicazione il compito di gestire le immagini


che non si adattano alle dimensioni..

scroll: questo valore indica che devono essere aggiunte le barre di


scorrimento al canale.

http://www.html.it/xml/guida/imposta.htm (2 di 3)12/10/04 16.33.04

XML: Capitolo V: Applicazioni dell'XML - Specifiche dell'impostazione

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/imposta.htm (3 di 3)12/10/04 16.33.04

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML - Switching

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Switching
Spesso la descrizione di una presentazione come quella SMIL, dovrebbe
fornire un metodo per descrivere una serie di alternative dalle quali possibile
effettuare una selezione in base allinput dellutente o alle variabili di ambiente.
Il linguaggio SMIL utilizza la primitiva switch per fornire questa funzione. Lo
switching SMIL si basa su alcuni attributi predefiniti. Ma, nello spirito dellXML,
si possono specificare i propri attributi di switching.
BITRATE

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

Bitrate permette al progettista di una presentazione di fornire oggetti


multimediali alternativi in base allampiezza di banda del consumatore. In
questo modo, possibile raggiungere un maggiore equilibrio tra velocit,
dimensioni e qualit delloutput.
Per gli utenti moderni, un bitrate tipico dovrebbe essere 14.000 bps (bit per
secondo), 28.000 bps, 56.000 bps oppure 128.000 bps nel caso di una linea
ISDN. Con questo tipo di informazioni, lapplicazione potrebbe scegliere un
oggetto particolare in base a quello che sa sulla velocit di downloading del
proprio ambiente. In alternativa, potrebbe richiedere allutente di scegliere un
oggetto. Ecco un esempio:
<switch>
<par bitrate="14400">
<!-- alcuni oggetti multimediali -->
</par>
<par bitrate="28800">
<!-- alcuni oggetti multimediali -- >
</par>
<par bitrate="56000">
<!-- alcuni oggetti multimediali -->
</par>
</switch>
LINGUA
Lattributo lang in SMIL fornisce semplicemente un elenco di opzioni ed
diverso dallattributo lang in XML, che si occupa invece della codifica delle
lingue. Ecco il codice per la sintassi di queste specifiche di lingua :
<switch>
<audio src="interview-in-french" language="fr"/>
<audio src="interview-in-german" language="de"/>
<audio src="interview-in-english" language="en"/>
</switch>
DIMENSIONI DELLO SCHERMO
Il linguaggio SMIL permette di specificare un parametro per le dimensioni dello
schermo disponibili per la presentazione. Il numero che si utilizza indica il
numero delle unit di pixel che sono disponibili sullo schermo. Ecco un
esempio:
<switch>
<par screen-size="640x480">

http://www.html.it/xml/guida/switch.htm (1 di 2)12/10/04 16.33.17

cerca

XML: Capitolo V: Applicazioni dell'XML - Switching

<!-- oggetti multimediali per 640x480 -->


</par>
<par screen-size="1280x1024">
<!-- oggetti multimediali per 1280x1024 -->
</par>
</switch>
PROFONDITA DELLO SCHERMO
La profondit della tavolozza di colori dello schermo una caratteristica del
supporto di output che rende difficile al progettista fornire una soluzione che
risponda a tutte le esigenze. I valori tipici per la profondit dello schermo sono
8, 16 e 32. Il codice seguente quello dellesempio precedente con laggiuta
dei valori di attributo per screen-depth:
<switch>
<par screen-size="640x480" screen-depth="32">
<!-- oggetti multimediali per 640x480 -->
</par>
<par screen-size="1280x1024" screen-depth="16">
<!-- oggetti multimediali per 1280x1024 -->
</par>
</switch>

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/switch.htm (2 di 2)12/10/04 16.33.17

Note e informazioni legali

XML: Capitolo V: Applicazioni dell'XML - Esempio SMIL

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Esempio SMIL
Bench Microsoft Internet Explorer e Netscape Navigator non siano al momento in grado
di supportare direttamente il linguaggio SMIL, diversi produttori forniscono il supporto
browser necessario. Per visualizzare quindi un file SMIL possibile utilizzare un utilit o
un plug-in separato di riproduzione, quale RealPlayer G2 sviluppato da RealNetworks.
Comunque, nel tentativo di non essere completamente esclusa dal gioco, Microsoft ha
recentemente annunciato una controproposta di standard chiamata HTML+TIME.
Hosting Italiano

Vediamo un esempio realizzato con SMIL Composer, un software gratuito che permette
di creare un file SMIL in modo semplice e veloce e che potr poi essere visualizzato con
RealPlayer.

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

<smil>
<head>
<meta name="author" content="Marco"/>
<meta name="title" content="Demo"/>
<meta name="copyright" content=" 1999"/>
<layout>
<root-layout height="196" width="136"/>
<region id="composer_Region" left="0" top="0"
height="100" width="106" z-index="1"/>
<region id="my_Region" left="0" top="0"
height="196" width="136" z-index="0"/>
</layout>
</head>
<body>
<seq>
<video id="composer" src="media/composer.rm"
region="composer_Region"
system-bitrate="13178"/>
<par>
<img id="my" src="media/my.rp" region="my_Region"
system-bitrate="12000"/>
<switch>
<audio id="france" src="media/france.ra" systemlanguage="fr"
system-bitrate="8041"/>
<audio id="usa" src="media/usa.ra" system-language="en"
system-bitrate="8041"/>
<audio id="turkey" src="media/turkey.ra" systemlanguage="tr"
system-bitrate="8041"/>
</switch>
</par>
</seq>
</body>
</smil>
La parte destra della schermata nella figura seguente mostra il codice SMIL della
presentazione multimediale.

http://www.html.it/xml/guida/esempsmil.htm (1 di 2)12/10/04 16.33.24

cerca

XML: Capitolo V: Applicazioni dell'XML - Esempio SMIL

Conclusa la presentazione, il programma stesso consente di visualizzare lanteprima


lanciando automaticamente il player.

clicca qui per vedere l'esempio demo.smi (solo con RealPlayer G2)
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/esempsmil.htm (2 di 2)12/10/04 16.33.24

Note e informazioni legali

XML: Conclusioni

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Conclusioni

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE

Lenorme sviluppo di Internet degli ultimi anni ha creato un interesse sempre


maggiore verso questa tecnologia. Sempre pi persone utilizzano la rete per
lavorare, comunicare, giocare, comprare, cercare informazioni di ogni genere.
Grazie alla sua interfaccia attraente e amichevole, il World Wide Web lo
strumento di Internet pi utilizzato. La grande eterogeneit dei servizi che
deve fornire, ha messo in crisi lHTML, il linguaggio utilizzato per condividere
le informazioni nel WWW. Lorigine di tale crisi da ricercarsi nel fatto che
lHTML un linguaggio non estensibile e quindi incapace di adattarsi a tutti i
compiti che chiamato a risolvere. Per questo motivo stato creato un nuovo
linguaggio, lXML, che ha come punto di forza proprio la capacit di essere
estensibile, quindi di permettere ai progettisti di documenti di gestire fonti
multiple di dati e di creare ambienti personalizzati per tipi speciali di dati.
Lanalisi svolta ha riguardato i seguenti punti:

Limportanza dellXML: partendo dai limiti dellHTML, si cercato di


capire quali sono i punti di forza dellXML, e come questo linguaggio
potrebbe risolvere molti dei problemi presenti nel Web.

P2P, Grokster e StreamCast


in tribunale
FSF Europe esclusa dalla
Commissione Vigevano

46645: manda un SMS e


Google risponde

Le basi dellXML: dalla specifica del linguaggio si cercato di capire


come costruire e utilizzare nel Web documenti XML.

Falla grave in Microsoft


Word, non c' la patch

Le altre news - RSS

Lutilizzo del linguaggio XML: dalla definizione di metalinguaggio si


cercato di capire come ampliare i documenti XML con altri linguaggi
derivati quali lXLL, lXSL e lXML-Data.

Le applicazioni dellXML: sono state studiate due applicazioni che si


basano sullXML: il CDF e lo SMIL.
Dallanalisi svolta sono emersi i seguenti importanti fattori:

La semplicit del linguaggio XML: le descrizioni della sintassi nella


specifica XML utilizza una grammatica formale concisa, semplice da
capire e facile da trasformare in codice di programmazione.

La semplicit dei documenti XML: il concetto di documento ben


formattato consente limmediata comprensione della struttura dati
presente nel documento stesso. L'estensibilit dei tag permette di
comprendere in modo semplice e intuitivo il significato dei dati presenti
nel documento. Questi due aspetti sono molto utili sia per le
applicazioni che per gli sviluppatori software.

La semplicit degli strumenti software XML: il software XML


menzionato in precedenza tutto scritto in Java. Questo semplifica

http://www.html.it/xml/guida/conclu.htm (1 di 2)12/10/04 16.33.32

cerca

XML: Conclusioni

molto la codifica di tali strumenti; inoltre, visto lambiente in cui si


trovano ad operare, molto importante che la dimensione sia
contenuta (si pensi infatti ad un applet Java che deve essere scaricato
assieme al dati). Pur essendo gli strumenti analizzati molto semplici,
prevedibile che in futuro anche applicazioni pi complesse rimangano
aderenti a questa filosofia.
chiaro allora che il grosso punto di forza del linguaggio rispetto ad altri dello
stesso tipo la sua grande semplicit. Questo non un caso visto che lXML
un sottoinsieme dellSGML, linguaggio molto potente e flessibile, ma anche
molto complicato e difficile. LXML unisce la potenza e la flessibilit dellSGML,
con la semplicit e la facilit duso.
Le classi di applicazioni che trarranno il maggior beneficio dallXML sono lo
scambio dei dati e la costruzione di pagine Web.
Questo nuovo linguaggio avr probabilmente un impatto deciso nel campo di
Internet nel prossimo futuro e cambier completamente lo scenario a cui gli
utenti sono ora abituati.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/conclu.htm (2 di 2)12/10/04 16.33.32

Note e informazioni legali

XML: Appendice A: Strumenti software - Il processore XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Il processore XML

Hosting Italiano

Un processore XML un modulo software utilizzato per leggere documenti


XML e verificare che soddisfino la specifica XML. La sua funzione principale
consiste nellanalisi e nella convalida dei dati XML. Un processore XML
fornisce anche il contenuto di un documento ad una eventuale applicazione;
questo vuol dire che una qualsiasi applicazione che deve interagire con
documenti XML deve avere al suo interno un processore XML. Un processore
pu essere utilizzato in modo standalone, per verificare che un documento
appena scritto soddisfi la specifica XML, quindi che sia o ben formattato (se
non accompagnato da nessun DTD) o valido (se accompagnato da DTD).
dunque uno strumento necessario per chi scrive file XML in generale.

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'

Per indicare al processore a quale specifica un documento si riferisce bisogna


sempre indicare nella prima istruzione il numero di versione di tale specifica:

Microsoft ripropone una


falla gi patchata

<?xml version="1.0"?>

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde

Chiaramente un processore segnala errore se riceve un documento con un


numero di versione che non supporta.
In generale gli errori che un processore riporta sono di due tipi:

Error: violazione di una regola della specifica; il processore notifica


allapplicazione lerrore rilevato e continua sia ad analizzare il
documento, sia a fornirne il contenuto allapplicazione; questultima
che deve decidere il comportamento rispetto allerrore (ignorarlo,
cercare di correggerlo, etc.).

Falla grave in Microsoft


Word, non c' la patch

Le altre news - RSS

Fatal error: grave violazione di una regola della specifica; il processore


notifica allapplicazione lerrore rilevato e pu o meno continuare
lanalisi del documento per cercare altri errori; non deve per
continuare a fornire il contenuto del documento allapplicazione.
Ad esempio una violazione di un vincolo espresso in un DTD (chiaramente
non il DTD dellXML, ma un DTD scritto dallutente) considerata un "error";
una violazione di una regola di buona formattazione invece considerata un
"Fatal error" (violare una regola di buona formattazione vuol dire violare un
vincolo espresso nel DTD dellXML).
Ci sono due tipi di processori XML: validating e non-validating (in genere un
processore di tipo validating viene chiamato parser). Sia i processori validating
che quelli non-validating, devono riportare le violazioni delle regole di buona
formattazione incontrate nellentit documento ed in generale in una qualsiasi
entit parsed. Un processore validating deve anche riportare le violazioni dei
vincoli espressi attraverso le dichiarazioni nel DTD; per far questo deve poter
leggere e processare lintero DTD. Un processore non-validating deve poter
accedere allintera entit documento, incluso leventuale DTD interno (ma solo
per verificare che anche questa parte del documento sia ben formattata);
questultimo fornisce vantaggi nelle prestazioni dato che non deve leggere ed
elaborare la DTD.
Allo stato attuale sono disponibili alcuni processori di pubblico dominio

http://www.html.it/xml/guida/processore.htm (1 di 2)12/10/04 16.33.39

cerca

XML: Appendice A: Strumenti software - Il processore XML

(shareware e freeware) che possono essere utilizzati in modo standalone. La


maggior parte degli elaboratori disponibili viene creata mediante il linguaggio
di programmazione Java e anche le applicazioni tendono ad essere pi lente
rispetto alle applicazioni basate su C++; Java consente spesso di utilizzare
piattaforme multiple.
Per controllare che gli esempi forniti in questa tesi fossero conformi alle
specifiche XML, ho utilizzato il processore fornito dalla Microsoft, lelaboratore
Msxml. Microsoft Internet Explorer dotato di un elaboratore di XML
incorporato. Questo elaboratore, Msxml, progettato come componente di
Windows e pu essere utilizzato come controllo Active X nelle pagine Web o
nelle applicazioni di Visual Basic o C++. Microsoft ha inoltre contribuito allo
sviluppo di un elaboratore di XML su Java.

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/processore.htm (2 di 2)12/10/04 16.33.39

Note e informazioni legali

XML: Appendice A: Strumenti software - Il parser XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Il parser Msxml
Il processore fornito dalla Microsoft pu essere scaricato allindirizzo http://www.
microsoft.com/xml/parser/xmlinst.exe. Questo pacchetto contiene oltre al
processore anche unutile serie di esempi su come utilizzare documenti XML
nelle pagine Web.

Hosting Italiano

ULTIM'ORA

Il processore di tipo validating, ed scritto in Java; pu essere utilizzato al


prompt del DOS o con un applet Java fornito nel pacchetto della Microsoft. Al
prompt del DOS basta semplicemente digitare:
C:\> jview

msxml -d [nome del documento]

Truffa 100 utenti eBay per


godersi la 'bella vita'

Il processore notifica eventuali errori rilevati durante lanalisi.

Microsoft ripropone una


falla gi patchata

Se ad esempio la prima riga del documento la seguente:

'AOL Browser', il dopoNetscape si basa su IE

<?xml version="1.0">

P2P, Grokster e StreamCast


in tribunale

il processore notifica:

FSF Europe esclusa dalla


Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

C:\> jview msxml -d [nome del documento]


Expected ?> instead of tag end(>)
Location: file:/C:// [nome del documento](2,-1)
Context: <xml>
Se invece il file non presenta errori il processore fornisce sullo standard output lo
stesso file nel formato originale XML, mettendo in evidenza la struttura dati ivi
contenuta utilizzando opportune indentazioni.
Il Java applet XMLViewer fornito dalla stessa Microsoft pu essere utilizzato
assieme al processore per visualizzare la struttura dati di un file, come mostra la
Fig. A.1.

http://www.html.it/xml/guida/parser.htm (1 di 2)12/10/04 16.33.46

cerca

XML: Appendice A: Strumenti software - Il parser XML

Fig. A.1: Il Java applet XML Viewer visualizza la struttura dati di un file XML.
Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/parser.htm (2 di 2)12/10/04 16.33.46

Note e informazioni legali

XML: Appendice A: Strumenti software - Panorama del software

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Panorama del software

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

Per quanto riguarda i browser lunica soluzione fino a pochi mesi fa consisteva
nell'utilizzo di appositi browser SGML, magari integrati nei tradizionali programmi
di navigazione. Attualmente sul mercato esistono sostanzialmente dei Software:
Panorama, prodotto dalla SoftQuad, una delle aziende leader nel settore SGML,
Multidoc PRO, della finlandese Citec e Jumbo, una applicazione Java usata per
Chemical Markup Language (CML), un'applicazione specifica di XML. Panorama
disponibile in due versioni, una commerciale e l'altra gratuita. La versione
commerciale, a sua volta, consiste di due moduli: Panorama Publisher, un
browser stand-alone dotato di strumenti per la creazione di fogli di stile e reti
ipertestuali tra pi documenti; Panorama Viewer, un plug-in per Netscape ed
Explorer che pu solo visualizzare i documenti (di quest'ultimo viene distribuita
una versione di prova, con alcune limitazioni funzionali, sul sito della SoftQuad).
La versione gratuita invece basata sulla release 1 del browser ed reperibile
dal sito Web della OCLC al proprio indirizzo. Multidoc Pro, disponibile solo in
versione commerciale, ma chi interessato pu scaricarne una versione
funzionante per tre settimane presso il sito della Citec. Jumbo disponibile in
versione freeware presso il sito della "Venus".
La Microsoft ha finalmente rilasciato la versione 5 del suo browser che, oltre a
contenere un processore XML di tipo validating e supportare pienamente la
specifica XML 1.0 i Namespace e gli schemi (XML-Data), in grado di
visualizzare le pagine XML come se fossero pagine HTML grazie al supporto
dellXSL.
Per quanto riguarda i parser il panorama molto pi variegato. A parte i software
che permettono anche la visualizzazione, di cui si parlato, che ovviamente
prima eseguono il controllo formale, esistono in versione freeware molti parser,
tra i quali vanno ricordati Sax della "Microstar Software Ltd.", XML for Java da
IBM AlphaWorks, TclXML.
Infine i tool di sviluppo. Recentemente Microsoft ha rilasciato la prima release di
un tool per la costruzione di file XML; si chiama "XML Notepad" ed disponibile
freeware nel sito della societ Americana. Anche la "Arbortext", che da tempo
produce software per SGML ha implementato un tool di sviluppo "XML Styler, la
"Vervet Logic" commercializza un tool "XML Pro" ", ed infine anche la "Architag"
ha sviluppato il "Real-Time XML Editor" che molto semplice da imparare per
creare documenti XML in quanto avverte in tempo reale se si stanno
commettendo errori (fig. A.2).

http://www.html.it/xml/guida/softwa.htm (1 di 2)12/10/04 16.33.54

cerca

XML: Appendice A: Strumenti software - Panorama del software

Fig. A.2: Real-Time XML Editor


Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/softwa.htm (2 di 2)12/10/04 16.33.54

Note e informazioni legali

XML: Appendice A: Strumenti software - Esempio di file XML

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Esempio di file XML


Ecco un esempio di file XML e XSL che potrete trovare all'indirizzo http://digilander.iol.it/
oldani/HomePino.
Il file XML il seguente:

Hosting Italiano

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'
Microsoft ripropone una
falla gi patchata
'AOL Browser', il dopoNetscape si basa su IE
P2P, Grokster e StreamCast
in tribunale
FSF Europe esclusa dalla
Commissione Vigevano
46645: manda un SMS e
Google risponde
Falla grave in Microsoft
Word, non c' la patch

Le altre news - RSS

<?xml version="1.0" standalone="no"?>


<?xml:stylesheet type="text/xsl" href="curric.xsl" ?>
<!DOCTYPE radice SYSTEM "Curriculum.dtd">
<radice>
<curriculum>
<dati>
<nome>Luca</nome>
<cognome>Rossi</cognome>
<sesso>Maschile</sesso>
<indirizzo>
<via>Via Degli Angeli 35</via>
<cap>21057</cap>
<city>Olgiate Olona</city>
<provincia>VA</provincia>
<nazione>Italia</nazione>
</indirizzo>
<telefono>03313434322</telefono>
<posta>rossi@mail.com</posta>
</dati>
<studi>
<maturita>
<titolo>Maturita' Scientifica</titolo>
<voto>48/60</voto>
</maturita>
<laurea>
<universita>Statale di Milano</universita>
<facolta>Informatica</facolta>
<votol>110</votol>
</laurea>
</studi>
<esperienze>Da 3 anni responsabile tecnico
"Inforscuola"</esperienze>
<lingua>Inglese</lingua>
</curriculum>
<curriculum>
<dati>
<nome>Marco</nome>
<cognome>Colombo</cognome>
<sesso>Maschile</sesso>
<indirizzo>
<via>Via De Amicis 3</via>
<cap>21057</cap>
<city>MILANO</city>
<provincia>VA</provincia>
<nazione>Italia</nazione>
</indirizzo>
<telefono>0231534322</telefono>
<posta>colombo@hotmail.com</posta>
</dati>
<studi>
<maturita>
<titolo>Maturita' Classica</titolo>
<voto>54/60</voto>

http://www.html.it/xml/guida/esempxml.htm (1 di 5)12/10/04 16.34.03

cerca

XML: Appendice A: Strumenti software - Esempio di file XML

</maturita>
<laurea>
<universita>Statale di Milano</universita>
<facolta>Filosofia</facolta>
<votol>90</votol>
</laurea>
</studi>
<esperienze>Da 2 anni collabora con l'ufficio
Arte e cultura del Corriere</esperienze>
<lingua>Spagnolo</lingua>
</curriculum>
<curriculum>
<dati>
<nome>Francesca</nome>
<cognome>Marillo</cognome>
<sesso>femminile</sesso>
<indirizzo>
<via>Via Piave 7</via>
<cap>21057</cap>
<city>Como</city>
<provincia>CO</provincia>
<nazione>Italia</nazione>
</indirizzo>
<telefono>031634340</telefono>
<posta>marillo@tin.it</posta>
</dati>
<studi>
<maturita>
<titolo>Maturita' Scientifica</titolo>
<voto>38/60</voto>
</maturita>
<laurea>
<universita>Cattolica</universita>
<facolta>Scienze Politiche</facolta>
<votol>106</votol>
</laurea>
</studi>
<esperienze>Nessuna</esperienze>
<lingua>Tedesco</lingua>
</curriculum>
<curriculum>
<dati>
<nome>Stefano</nome>
<cognome>Bassi</cognome>
<sesso>maschile</sesso>
<indirizzo>
<via>Via Piave 7</via>
<cap>21057</cap>
<city>Como</city>
<provincia>CO</provincia>
<nazione>Italia</nazione>
</indirizzo>
<telefono>031908765</telefono>
<posta>stefano@cio.it</posta>
</dati>
<studi>
<maturita>
<titolo>Maturita' Tecnica Industriale in
meccanica</titolo>
<voto>42/60</voto>
</maturita>
<laurea>
<universita>Politecnico</universita>
<facolta>Ingegneria Civile</facolta>
<votol>106</votol>
</laurea>
</studi>

http://www.html.it/xml/guida/esempxml.htm (2 di 5)12/10/04 16.34.03

XML: Appendice A: Strumenti software - Esempio di file XML

<esperienze>Impiegato al comune di
Como</esperienze>
<lingua>Tedesco</lingua>
</curriculum>
<curriculum>
<dati>
<nome>Paolo</nome>
<cognome>Bellucci</cognome>
<sesso>maschile</sesso>
<indirizzo>
<via>Via Piave 7</via>
<cap>21057</cap>
<city>Seregno</city>
<provincia>MI</provincia>
<nazione>Italia</nazione>
</indirizzo>
<telefono>0234546787</telefono>
<posta>bellucci@dido.it</posta>
</dati>
<studi>
<maturita>
<titolo>Maturita' Artistica</titolo>
<voto>60/60</voto>
</maturita>
<laurea>
<universita>Politecnico</universita>
<facolta>Architettura</facolta>
<votol>101</votol>
</laurea>
</studi>
<esperienze>Nessuna</esperienze>
<lingua>Tedesco</lingua>
</curriculum>
<curriculum>
<dati>
<nome>Camilla</nome>
<cognome>Silvestri</cognome>
<sesso>femminile</sesso>
<indirizzo>
<via>Via Piave 7</via>
<cap>21057</cap>
<city>Torino</city>
<provincia>TO</provincia>
<nazione>Italia</nazione>
</indirizzo>
<telefono>03434322098</telefono>
<posta>camilla@tin.it</posta>
</dati>
<studi>
<maturita>
<titolo>Maturita' Scientifica</titolo>
<voto>46/60</voto>
</maturita>
<laurea>
<universita>Cattolica</universita>
<facolta>Scienze Ambientali</facolta>
<votol>106</votol>
</laurea>
</studi>
<esperienze>Lavora part-time presso uno studio
veterinario</esperienze>
<lingua>Inglese</lingua>
</curriculum>
</radice>
Il DTD il seguente:

http://www.html.it/xml/guida/esempxml.htm (3 di 5)12/10/04 16.34.03

XML: Appendice A: Strumenti software - Esempio di file XML

<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT

radice (curriculum+)>
curriculum (dati, studi, esperienze, lingua, hobbies*)>
dati (nome+, cognome, sesso, indirizzo, telefono*, posta*)>
nome (#PCDATA)>
cognome (#PCDATA)>
sesso (#PCDATA)>
indirizzo (via, cap, city, provincia, nazione)>
via (#PCDATA)>
cap (#PCDATA)>
city (#PCDATA)>
provincia (#PCDATA)>
nazione (#PCDATA)>
telefono (#PCDATA)>
posta (#PCDATA)>
studi (maturita*, laurea*)>
maturita (titolo, voto)>
laurea (universita, facolta, votol)>
titolo (#PCDATA)>
voto (#PCDATA)>
universita (#PCDATA)>
facolta (#PCDATA)>
votol (#PCDATA)>
esperienze (#PCDATA)>
lingua (#PCDATA)>

Il file XSL che permette la visualizzazione con MSIE 5 il seguente:


<?xml version="1.0"?>
<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<BODY STYLE="font-family:Arial, helvetica, sans-serif;
font-size:22pt">
<xsl:for-each select="radice/curriculum">
<DIV STYLE="background-color:teal; color:white;
margin-bottom:0.5em">
<xsl:value-of select="dati/nome"/>
<xsl:value-of select="dati/cognome"/>
</DIV>
<DIV STYLE="margin-left:20px; margin-bottom:1em;
font-size:18pt;font-style:italic">
Indirizzo: <xsl:value-of select="dati/indirizzo/via"/>
<DIV STYLE="margin-left:100px;font-style:italic;font-size:18pt">
<xsl:value-of select="dati/indirizzo/cap"/>
<SPAN>
<xsl:value-of select="dati/indirizzo/city"/>
</SPAN>
<SPAN>
<xsl:value-of select="dati/indirizzo/provincia"/>
</SPAN>
</DIV>
<DIV> Telefono:<xsl:value-of select="dati/telefono"/>
</DIV> E-mail :<xsl:value-of select="dati/posta"/>
</DIV>
<DIV STYLE=" font-size:24;font-style:verdana;
color:black;background-color:#EEEEEE">
Studi</DIV>
<xsl:for-each select="studi/maturita">
<DIV STYLE="font-style:arial; color:black;font-size:18pt;
margin-top:1em;margin-left:20px">
Media Superiore: <SPAN STYLE="color:teal">
<xsl:value-of select="titolo"/>
</SPAN> - Voto : <SPAN STYLE="color:teal"&g;
<xsl:value-of select="voto"/>
</SPAN>
</DIV>
</xsl:for-each>
<xsl:for-each select="studi/laurea">
<DIV STYLE="font-style:arial; color:black;
font-size:18pt; margin-left:20px">
Universita': <SPAN STYLE="color:teal">
http://www.html.it/xml/guida/esempxml.htm (4 di 5)12/10/04 16.34.03

XML: Appendice A: Strumenti software - Esempio di file XML

<xsl:value-of select="universita"/>
</SPAN> - Corso di Laurea: <SPAN STYLE="color:teal">
<xsl:value-of select="facolta"/>
</SPAN> - Voto : <SPAN STYLE="color:teal">
<xsl:value-of select="votol"/>
</SPAN>
</DIV>
</xsl:for-each>
<DIV STYLE="background-color:#EEEEEE; color:black;
margin-top:1em; font-size:24">
Esperienze Lavorative </DIV>
<DIV STYLE="font-style:italic; color:teal;font-size:18pt;
margin-top:0.5em; margin-left:20px">
<xsl:value-of select="esperienze"/>
</DIV>
<DIV STYLE="background-color:#EEEEEE; color:black;
margin-top:0.5em; font-size:24">
Lingua Straniera </DIV>
<DIV STYLE="font-style:italic; color:teal;font-size:18pt;
margin-top:0.5em;
margin-bottom:2em; margin-left:20px">
<xsl:value-of select="lingua"/>
</DIV>
</xsl:for-each>
</BODY>
</HTML>
Il risultato questo :

Lezione

successiva

[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/esempxml.htm (5 di 5)12/10/04 16.34.03

Note e informazioni legali

XML: Bibliografia

HOME| CORSI IN AULA| ACCESSO FREE| LIBRI| WEBTOOL


CREA| DOWNLOAD| FORUM| MLIST| NEWSLETTER
BASIC| PRO ADSL| ASP| B2B| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PHP| PROGRAMMAZIONE| SICUREZZA

Bibliografia

Hosting Italiano

Extensible Markup Language (XML) 1.0, W3C Recommendation 10


February 1998, http://www.w3.org/TR/1998/REC-xml-19980210.
Tesi di Giancarlo Parma, Universit di Modena e Reggio Emilia,
Facolt di Ingegneria, A.A. 1997-1998, http://polaris.ing.unimo.it/
didattica/curriculum/letizia/tesi/TesiSvolte

Interessante corso sull'XML sviluppato da tre studenti milanesi http://


digilander.iol.it/oldani/HomePino

ULTIM'ORA
Truffa 100 utenti eBay per
godersi la 'bella vita'

Microsoft ripropone una


falla gi patchata

Extensible Stylesheet Language (XSL) Specification, W3C Working


Draft, http://www.w3.org/TR/1999/WD-xsl-19990421.

'AOL Browser', il dopoNetscape si basa su IE


P2P, Grokster e StreamCast
in tribunale

XML Namespace, W3C Working Draft, http://www.w3.org/TR/1998/WDxml-names-19990114.

FSF Europe esclusa dalla


Commissione Vigevano
46645: manda un SMS e
Google risponde

Synchronized Multimedia Integration Language (SMIL) 1.0


Specification, W3C Recommendation, http://www.w3.org/TR/1998/RECsmil-19980615.

Falla grave in Microsoft


Word, non c' la patch

Le altre news - RSS

XML in Action, William J.Pardi - Microsoft.

XML Le Basi, Simon St.Laurent - Tecniche Nuove.

Un sito interamente dedicato ad XML, http://www.xml.com.

Luniversit di XML, http://www.xmlu.com.

Il sito della Microsoft su XML, http://msdn.microsoft.com/xml/index.asp.

Prime informazioni, approfondimenti, domande, http://xml.org, http://


www.xmlinfo.com.

Software XML, http://www.xmlsoftware.com.

http://www.html.it/xml/guida/biblio.htm (1 di 2)12/10/04 16.34.15

cerca

XML: Bibliografia

Il consorzio W3C, http://www.w3c.org.

Un enorme elenco di link a risorse relative a XML, http://www.cs.caltech.


edu/~adam/local/xml.html.

Il sito di un noto esperto, Robin Cover, http://www.sil.org/sgml/xml.html.


[Sommario]

1997-2004 - Grafica, layout e guide sono di esclusiva propriet di HTML.it s.r.l.

http://www.html.it/xml/guida/biblio.htm (2 di 2)12/10/04 16.34.15

Note e informazioni legali

Potrebbero piacerti anche