Dela via


Översikt över namnområden (LINQ till XML)

Den här artikeln beskriver XML-namn, XML-namnområden, XML-namnområdesprefix och XName klasserna och XNamespace .

XML-namn är ofta en källa till komplexitet i XML-programmering. Ett XML-namn består av ett XML-namnområde (kallas även xml-namnområdes-URI) och ett lokalt namn. Ett XML-namnområde liknar ett namnområde i ett .NET-program. Det gör att du unikt kan kvalificera namnen på element och attribut för att undvika namnkonflikter mellan olika delar av ett XML-dokument. När du har deklarerat ett XML-namnområde kan du välja ett lokalt namn som bara behöver vara unikt inom det namnområdet.

En annan aspekt av XML-namn är XML-namnområdesprefix, vilket orsakar det mesta av komplexiteten i XML-namn. Med de här prefixen kan du skapa en genväg för ett XML-namnområde, vilket gör XML-dokumentet mer koncist och begripligt. Men innebörden av ett XML-prefix beror på kontexten, vilket ökar komplexiteten. XML-prefixet aw kan till exempel associeras med ett XML-namnområde i en del av ett XML-träd och med ett annat namnområde i en annan del.

En av fördelarna med att använda LINQ till XML med C# är att du inte behöver använda XML-prefix. När LINQ till XML läser in eller parsar ett XML-dokument matchas varje XML-prefix till motsvarande XML-namnområde. När du sedan arbetar med ett dokument som använder namnområden kommer du nästan alltid åt namnrymderna via namnområdes-URI:n och inte via namnområdesprefixet. När utvecklare arbetar med XML-namn i LINQ till XML arbetar de alltid med ett fullständigt kvalificerat XML-namn (det vill: ett XML-namnområde och ett lokalt namn). Med LINQ till XML kan du dock arbeta med och kontrollera namnområdesprefix efter behov.

När du använder LINQ till XML med Visual Basic- och XML-literaler måste du använda namnområdesprefix när du arbetar med dokument i namnområden.

I LINQ till XML är XNameklassen som representerar XML-namn . XML-namn visas ofta i HELA LINQ till XML-API:et, och där ett XML-namn krävs hittar du en XName parameter. Men du arbetar sällan direkt med en XName. XName innehåller en implicit konvertering från strängen.

Mer information finns i XNamespace och XName.