Ambito di validità della dichiarazione di uno spazio dei nomi

Le dichiarazioni dello spazio dei nomi hanno un ambito di validità. Questo significa che gli spazi dei nomi possono essere inseriti in qualsiasi punto del documento ma, essendo dotati di un ambito di validità, come le variabili di programmazione, hanno effetto solo su tale ambito. Esistono due tipi di ambito: predefinito e qualificato.

Uno spazio dei nomi è detto predefinito quando viene dichiarato nell'elemento di primo livello. In questo caso viene applicato a tutti gli elementi non qualificati del documento. Si dice invece qualificato uno spazio dei nomi dichiarato quando è presente uno spazio dei nomi più specifico che esegue l'override in qualche parte del documento.

Sebbene sia necessario dichiarare uno spazio dei nomi prima di poterlo utilizzare, ciò non significa che la dichiarazione debba trovarsi all'inizio del documento XML. Nel codice riportato di seguito, ad esempio, uno spazio dei nomi qualificato viene dichiarato tra i dati, a livello dell'elemento BOOK, e viene applicato esclusivamente alle proprie derivazioni.

<Author>Joe Smith</Author>
<BOOK xmlns:book="http://www.contoso.com">
    <title>My Wonderful Day</title>
      <price>$3.95</price>
</BOOK>
<Publisher>
    <Name>MSPress</Name>
</Publisher>

Lo spazio dei nomi definito nell'elemento BOOK non è applicabile agli elementi esterni all'elemento BOOK, come l'elemento Publisher. La presenza di uno spazio dei nomi in un documento implica che lo spazio dei nomi dichiarato entra in vigore dal punto della dichiarazione fino alla fine dell'elemento, dove era stato dichiarato.

Se è stato dichiarato uno spazio dei nomi per l'elemento Publisher, sarà necessario qualificare l'elemento anteponendo lo spazio dei nomi mediante i due punti (:). Se, per ipotesi, l'elemento Publisher appartiene allo spazio dei nomi mybook, l'elemento verrà dichiarato come <mybook:Publisher>.

Vedere anche

Spazi dei nomi in un documento XML | Dichiarazioni dello spazio dei nomi | Spazi dei nomi predefiniti | Gestione degli spazi dei nomi con XmlNamespaceManager | Informazioni ottenute da XmlNamespaceManager