Il linguaggio XML può essere utilizzato come fonte di dati. Vediamo come rappresentare in XML una semplice base di dati, definendone lo schema e i tipi di dati contenuti in essa. Ci serviremo di XML-Data, un'applicazione XML ideata dalla Microsoft per sostituire le DTD.
IMPIEGATO (
Matricola, Nome, Cognome, Dipart, Ufficio, Stipendio)DIPARTIMENTO (
Nome, Indirizzo, Città)Sono sottolineate le chiavi primarie delle due tabelle. I database consentono la definizione di chiavi primarie multiparte, costituite da più di una colonna. Questa possibilità è prevista nella bozza di lavoro di XML-Data presentata al W3C, ma, al momento, non è ancora implementata in Explorer 5. Per questo motivo ci limitiamo ad utilizzare colonne singole come chiavi, realizzandole per mezzo degli identificatori univoci di XML.
Supponiamo che le tabelle definite precedentemente siano riempite da questi dati:
Matricola |
Nome |
Cognome |
Dipart |
Ufficio |
Stipendio |
RSSMRA |
Mario |
Rossi |
Amministrazione |
10 |
45 |
Nome |
Indirizzo |
Città |
Amministrazione |
Via Tito Livio, 27 |
Milano |
Vediamo lo schema XML-Data che descrive la nostra base di dati:
<?xml version="1.0"?>
<Schema name="
Abbiamo utilizzato lo schema di XML-Data, anziché la DTD, per sfruttare lo spazio dei nomi:
urn:schemas-microsoft-com:datatypes
che permette di specificare il formato dei dati contenuti negli elementi e negli attributi
La scarsa compatibilità con gli spazi dei nomi è uno dei difetti principali delle DTD, e deriva dal fatto che le DTD sono nate con SGML, mentre gli spazi dei nomi sono una tecnologia molto più recente. È evidente, pertanto, la necessità di implementare un linguaggio per la definizione degli schemi pienamente compatibile con gli spazi dei nomi e che offra le potenzialità dei moderni database, altrimenti sarà impossibile realizzare delle vere basi di dati tramite XML. Non sappiamo se XML-Data risolverà tutti questi problemi, poiché il W3C sta lavorando su un altro linguaggio per la definizione degli schemi, chiamato XML-Schema.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="
Listato completo
Foglio di stile per la visualizzazione dei dati
Dal grafo si nota che l'attributo Dipart dell'elemento IMPIEGATO è un riferimento ad uno degli elementi DIPARTIMENTO.