Sintassi dei namespace

17 marzo 2006

In un documento XML si fa riferimento ad un namespace utilizzando un attributo speciale (xmlns) associato al root element, come nel seguente esempio:

<articolo xmlns=”http://www.dominio.it/xml/articolo”>

Questo indica che l’elemento articolo ed i suoi sottoelementi utilizzano i nomi definiti nel namespace identificato dall’identificatore http://www.dominio.it/xml/articolo.

L’identificatore di un namespace può essere rappresentato da una qualsiasi stringa, purché sia univoca. Proprio per garantirne l’univocità, è prassi ormai consolidata utilizzare un URI (Uniform Resource Identifier) come identificatore.

È bene evidenziare che non è necessario che l’indirizzo specificato come identificatore di namespace corrisponda ad un file pubblicato sul Web. Esso è utilizzato semplicemente come identificatore ed il parser non accederà al Web per verificare l’esistenza dell’URL.

Per mettere in relazione un namespace con il relativo XML Schema occorre dichiararlo nel root element come nel seguente esempio:

<articolo
  xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
  xmlns=”http://www.dominio.it/xml/articolo”
  xmlns=”http://www.dominio.it/xml/bibliografia”
  xsi:schemaLocation=”http://www.dominio.it/xml/articolo
   articolo.xsd”
  xsi:schemaLocation=”http://www.dominio.it/xml/bibliografia
   bibliografia.xsd”
>

L’attributo xmlns:xsi specifica la modalità con cui viene indicato il riferimento allo schema, mentre l’attributo xsi:schemaLocation indica il namespace ed il file in cui è definito il relativo XML Schema separati da uno spazio.

Eì possibile combinare più namespace facendo in modo che ciascun elemento utilizzato faccia riferimento al proprio namespace.

Occorre tener presente che quando si fa riferimento ad un namespace, questo riferimento vale per l’elemento corrente e per tutti gli elementi contenuti, a meno che non venga specificato un diverso namespace.

Il seguente esempio utilizza elementi tratti da due diversi namespace: uno relativo alla grammatica della struttura di un articolo e l’altro relativo alla grammatica di bibliografie:

<articolo xmlns=”http://www.dominio.it/xml/articolo” titolo=”Guida ad XML”>
 <paragrafo titolo=”Introduzione”>
  <testo>
   bla bla bla
  </testo>
 </paragrafo>
 <paragrafo titolo=”Bibliografia”>
  <bibliografia
   xmlns=”http://www.dominio.it/xml/bibliografia”>
   <autore>
    Tizio
   </autore>
   <titolo>
    Opera citata
   </titolo>
   <anno>
    1999
   </anno>
  </bibliografia>
 </paragrafo>
</articolo>

Riportare il riferimento ad un namespace per ogni elemento è di solito scomodo e rende di difficile lettura il documento XML. È possibile creare delle abbreviazioni per fare riferimento ai namespace.

Queste abbreviazioni sono costituite da caratteri alfanumerici seguiti da due punti (:) dichiarati nel root element ed utilizzati come prefissi dei nomi degli elementi. Il seguente esempio riporta il codice XML precedente facendo uso di questi prefissi:

<art:articolo titolo=”Guida ad XML”
 xmlns:art=”http://www.dominio.it/xml/articolo”  
 xmlns:bibl=”http://www.dominio.it/xml/bibliografia” >
  <art:paragrafo titolo=”Introduzione”>
   <art:testo>
    bla bla bla
   </art:testo>
  </art:paragrafo>
  <art:paragrafo titolo=”Bibliografia”>
   <bibl:bibliografia>
    <bibl:autore>
     Tizio
    </bibl:autore>
    <bibl:titolo>
     Opera citata
    </bibl:titolo>
    <bibl:anno>
     1999
    </bibl:anno>
   </bibl:bibliografia>
 </art:paragrafo>
</art:articolo>

Le dichiarazioni xmlns:art e xmlns:bibl assegnano i prefissi art: e bibl: ai relativi namespace e questi prefissi vengono utilizzati per ciascun elemento del documento XML.

Tutte le lezioni

1 ... 12 13 14 ... 21

Se vuoi aggiornamenti su Sintassi dei namespace inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Sintassi dei namespace

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy