Panoramica degli spazi dei nomi (LINQ to XML)

In questo articolo vengono illustrati nomi XML, spazi dei nomi XML, prefissi di spazio dei nomi XML e le classi XName e XNamespace.

I nomi XML sono spesso causa di complessità nella programmazione XML. Un nome XML è composto da uno spazio dei nomi XML (detto anche URI dello spazio dei nomi XML) e da un nome locale. Uno spazio dei nomi XML è simile a uno spazio di nomi in un programma .NET. Consente infatti di qualificare in modo univoco i nomi di elementi e attributi per evitare conflitti di nomi tra le diverse parti di un documento XML. Dopo aver dichiarato uno spazio dei nomi XML, è possibile selezionare un nome locale che deve essere univoco all'interno di tale spazio dei nomi.

Un'altra peculiarità dei nomi XML è rappresentata dai prefissi di spazio dei nomi XML, che determinano gran parte della complessità dei nomi XML. I prefissi consentono di creare un collegamento per uno spazio dei nomi XML al fine di rendere il documento XML più conciso e comprensibile. Tuttavia, il significato di un prefisso XML dipende dal contesto ed è proprio questo aspetto ad aggiungere complessità. Ad esempio, il prefisso XML aw può essere associato a uno spazio dei nomi XML in parte di un albero XML e a uno spazio dei nomi diverso in un'altra parte.

Uno dei vantaggi derivanti dell'uso di LINQ to XML con C# è che non è necessario usare prefissi XML. Quando LINQ to XML carica o analizza un documento XML, ogni prefisso XML viene risolto nello spazio dei nomi XML corrispondente. Successivamente, quando si opera su un documento che usa spazi dei nomi, si accede quasi sempre agli spazi dei nomi tramite l'URI dello spazio dei nomi e non tramite il prefisso. Quando gli sviluppatori usano nomi XML in LINQ to XML, usano sempre nomi XML completi, ovvero costituiti da uno spazio dei nomi XML e da un nome locale. Tuttavia, LINQ to XML consente di usare e controllare i prefissi di spazio dei nomi in base alle esigenze.

Quando si esegue LINQ to XML con Visual Basic e i valori letterali XML, è necessario usare i prefissi di spazio dei nomi per operare sui documenti negli spazi dei nomi.

In LINQ to XML la classe che rappresenta i nomi XML è XName. I nomi XML vengono usati frequentemente in tutta l'API di LINQ to XML. Nei casi in cui è richiesto un nome XML, sarà presente un parametro XName. Solo in casi rari, tuttavia, si usa direttamente un oggetto XName. XName contiene una conversione implicita da stringa.

Per altre informazioni, vedere XNamespace e XName.