eXtensible Markup Language Tutorial - by Marco Giannì
Capitolo III: Definizione del tipo di documento (DTD)

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 l'uniformità sintattica delle pagine Web necessaria al funzionamento degli agenti.

I Namespace permettono la creazione e l'uso 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 all'interno della struttura aziendale.

I dati, ovvero il contenuto di un documento XML, vengono recuperati analizzando i singoli nodi all'interno 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. L'utilizzo 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, tutt'altro che trascurabile, potrebbe aggravarsi parallelemente alla diffusione dell'utilizzo 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 l'uniformità sintattica delle pagine Web.

<indietro home page avanti>

Copyright © 2000-2005. Tutti i diritti sono riservati. Per informazioni: mgianni@infinito.it