Sdílet prostřednictvím


Přehled oborů názvů (LINQ to XML)

Tento článek představuje názvy XML, obory názvů XML, předpony oboru názvů XML a XName třídy.XNamespace

Názvy XML jsou často zdrojem složitosti programování XML. Název XML se skládá z oboru názvů XML (označovaného také jako identifikátor URI oboru názvů XML) a místního názvu. Obor názvů XML je podobný oboru názvů v programu .NET. Umožňuje jedinečně kvalifikovat názvy prvků a atributů, aby nedocházelo ke konfliktům názvů mezi různými částmi dokumentu XML. Když jste deklarovali obor názvů XML, můžete vybrat místní název, který musí být jedinečný pouze v rámci daného oboru názvů.

Dalším aspektem názvů XML jsou předpony oboru názvů XML, které způsobují většinu složitosti názvů XML. Tyto předpony umožňují vytvořit zástupce pro obor názvů XML, díky kterému je dokument XML stručnější a srozumitelnější. Význam předpony XML ale závisí na kontextu, který zvyšuje složitost. Předpona aw XML může být například přidružena k jednomu oboru názvů XML v části stromu XML a s jiným oborem názvů v jiné části.

Jednou z výhod použití LINQ to XML s jazykem C# je, že nemusíte používat předpony XML. Při načtení nebo analýze dokumentu XML LINQ to XML se každá předpona XML přeloží do odpovídajícího oboru názvů XML. Potom, když pracujete s dokumentem, který používá obory názvů, téměř vždy přistupujete k oborům názvů prostřednictvím identifikátoru URI oboru názvů, a ne prostřednictvím předpony oboru názvů. Když vývojáři pracují s názvy XML v LINQ to XML, vždy pracují s plně kvalifikovaným názvem XML (to znamená obor názvů XML a místním názvem). LINQ to XML však umožňuje pracovat s předponami oboru názvů a řídit je podle potřeby.

Při použití LINQ to XML s literály jazyka Visual Basic a XML je nutné při práci s dokumenty v oborech názvů použít předpony oboru názvů.

V LINQ to XML třída, která představuje názvy XML je XName. Názvy XML se často zobrazují v rozhraní API LINQ to XML a všude, kde je požadován název XML, najdete XName parametr. Ale zřídka pracujete přímo s .XName XName obsahuje implicitní převod z řetězce.

Další informace najdete v tématech XNamespace a XName.