X
M
L
e
tensible
arkup anguage
L’XML è un linguaggio di markup aperto e basato su testo che fornisce informazioni di
tipo strutturale e semantico relative ai dati veri e propri.
L’XML è stato ottimizzato per il Web, diventando potente complemento dell’HTML
basato su standard.
L’utilizzo 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.
L’ HTML è 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.
Oggi le informazioni sul World Wide Web sono database di testo, immagini, suoni,
video, audio. Quindi l’HTML è 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 dell’HTML, spesso fra loro incompatibili.
e
XtensibleMarkupLanguage
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
dell’XML Special Interest Group (precedentemente noto come SGML Working Group)
anch’esso organizzato dal W3C.
L’XML si differenzia dall’HTML 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.
X
M
L
e
tensible
arkup anguage
L’XML è importante in due classi di applicazioni Web:
ƒ la creazione di documenti
ƒ
lo scambio dei dati
L’XML permette di creare dei tag personalizzati; inoltre uno stesso documento XML
può essere utilizzato per scopi diversi da applicazioni diverse.
L’XML può essere utilizzato come piattaforma per lo scambio di dati tra le applicazioni,
come mostra la figura; ciò è possibile perché è orientato alla descrizione dei dati.
e
XtensibleMarkupLanguage
Le pagine HTML hanno l’unico scopo di essere visualizzate da un browser (infatti si
dice che i dati nell’HTML sono orientati al video); per questo è molto difficile
l’elaborazione successiva delle informazioni contenute nelle pagine HTML. I documenti
basati sull’XML invece, non fanno supposizioni su come verranno utilizzati dal client;
così le informazioni ricevute possono essere utilizzate da un’applicazione 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.
XML permette di aggiungere informazioni semantiche al testo:
<Autore>Giancarlo Parma</Autore>
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 è l’autore;
in questo modo si può superare uno dei limiti dell’HTML, in cui i dati sono orientati al
video e difficili da utilizzare per una elaborazione successiva.
e
XtensibleMarkupLanguage
Un documento XML è costituito da dichiarazioni, elementi, istruzioni di elaborazione e
commenti. Alcuni componenti sono opzionali, altri sono necessari.
PROLOGO
Il primo elemento strutturale di un documento XML è un prologo opzionale, costituito
da due componenti principali anch’essi opzionali:
• la dichiarazione XML
• la dichiarazione del tipo di documento.
e
XtensibleMarkupLanguage
DICHIARAZIONE XML
La dichiarazione XML identifica la versione delle specifiche XML a cui è conforme il
documento. Esempio:
<?xml version="1.0"?>
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 per una particolare classe di
documenti. Queste stringhe di codice aggiungono una dichiarazione del tipo di
documento all’esempio:
<?xml version="1.0"?>
<!DOCTYPE Wildflowers SYSTEM "Wldflr.dtd">
e
XtensibleMarkupLanguage
L’ELEMENTO DOCUMENT
L’elemento Document contiene tutti i dati di un documento XML inclusi tutti i
sottoelementi nidificati e le entità esterne. Può essere considerato simile all’unità 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 l’elemento Plant all’esempio:
<?xml version="1.0"?>
<!DOCTYPE Wildflowers SYSTEM "Wldflr.dtd">
<PLANT>
<COMMON>Columbine</COMMON>
<BOTANICAL>Aquilegia canadensis</BOTANICAL>
</PLANT>
e
XtensibleMarkupLanguage
La nidificazione è il processo che consente di incorporare un oggetto o un costrutto
l’uno all’interno dell’altro. Un documento XML può ad esempio contenere elementi
nidificati e altri documenti. Ogni elemento secondario, cioè un elemento diverso
dall’elemento Document risiede interamente all’interno del relativo elemento principale,
così :
<DOCUMENT>
<PARENT1>
<CHILD1></CHILD1>
<CHILD2></CHILD2>
</PARENT1>
</DOCUMENT>
e
XtensibleMarkupLanguage
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:
< < (parentesi angolare di apertura)
> > (parentesi angolare di chiusura)
&amp ; & (e commerciale)
' ‘ (apostrofo)
" " (virgolette doppie)
e
XtensibleMarkupLanguage
Creiamo un documento XML di messaggio di posta elettronica con un sottoinsieme
DTD ( Document Type Definitions ) interno.
<?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)>
]>
e
XtensibleMarkupLanguage
<EMAIL>
<TO>[email protected]</TO>
<FROM>[email protected]</FROM>
<CC>[email protected]</CC>
<SUBJECT>My first DTD</SUBJECT>
<BODY>Hello, World</BODY>
</EMAIL>
e
XtensibleMarkupLanguage
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: