Przegląd przestrzeni nazw (LINQ to XML)Namespaces overview (LINQ to XML)

W tym artykule wprowadzono nazwy XML, przestrzenienazw XML, prefiksy przestrzeni nazw XMLoraz XName XNamespace klasy i.This article introduces XML names, XML namespaces, XML namespace prefixes, and the XName and XNamespace classes.

Nazwy XML często są źródłem złożoności w programowaniu XML.XML names are often a source of complexity in XML programming. Nazwa XML składa się z przestrzeni nazw XML (nazywanej również identyfikatorem URI przestrzeni nazw XML) i nazwy lokalnej.An XML name consists of an XML namespace (also called an XML namespace URI) and a local name. Przestrzeń nazw XML jest podobna do przestrzeni nazw w programie .NET.An XML namespace is similar to a namespace in a .NET program. Umożliwia ona unikatową kwalifikowanie nazw elementów i atrybutów w celu uniknięcia konfliktów nazw między różnymi częściami dokumentu XML.It enables you to uniquely qualify the names of elements and attributes to avoid name conflicts between various parts of an XML document. Po zadeklarowaniu przestrzeni nazw XML można wybrać lokalną nazwę, która musi być unikatowa w obrębie tej przestrzeni nazw.When you've declared an XML namespace, you can select a local name that only has to be unique within that namespace.

Innym aspektem nazw XML są prefiksy przestrzeni nazw XML, które powodują większość złożoności nazw XML.Another aspect of XML names is XML namespace prefixes, which cause most of the complexity of XML names. Te prefiksy umożliwiają utworzenie skrótu dla przestrzeni nazw XML, co sprawia, że dokument XML jest bardziej zwięzły i zrozumiały.These prefixes enable you to create a shortcut for an XML namespace, which makes the XML document more concise and understandable. Jednak znaczenie prefiksu XML zależy od kontekstu, który zwiększa złożoność.However, the meaning of an XML prefix depends on context, which adds complexity. Na przykład prefiks XML aw może być skojarzony z jedną przestrzenią nazw XML w części drzewa XML i z inną przestrzenią nazw w innej części.For example, the XML prefix aw could be associated with one XML namespace in part of an XML tree, and with a different namespace in another part.

Jedną z zalet korzystania z LINQ to XML w języku C# jest to, że nie trzeba używać prefiksów XML.One of the advantages of using LINQ to XML with C# is that you don't have to use XML prefixes. Gdy LINQ to XML ładuje lub analizuje dokument XML, każdy prefiks XML jest rozpoznawany jako odpowiadający mu obszar nazw XML.When LINQ to XML loads or parses an XML document, each XML prefix is resolved to its corresponding XML namespace. Po wykonaniu tej czynności podczas pracy z dokumentem, który używa przestrzeni nazw, prawie zawsze uzyskuje się dostęp do przestrzeni nazw za pomocą identyfikatora URI przestrzeni nazw, a nie za pośrednictwem prefiksu przestrzeni nazw.After that, when you work with a document that uses namespaces, you almost always access the namespaces through the namespace URI, and not through the namespace prefix. Gdy deweloperzy pracują z nazwami XML w LINQ to XML zawsze pracują z w pełni kwalifikowaną nazwą XML (czyli przestrzenią nazw XML i nazwą lokalną).When developers work with XML names in LINQ to XML they always work with a fully-qualified XML name (that is, an XML namespace and a local name). Jednak LINQ to XML umożliwia współdziałanie z prefiksami przestrzeni nazw i kontrolowanie ich w razie potrzeby.However, LINQ to XML does allow you to work with and control namespace prefixes as needed.

W przypadku używania LINQ to XML z literałami Visual Basic i XML należy używać prefiksów przestrzeni nazw podczas pracy z dokumentami w przestrzeni nazw.When using LINQ to XML with Visual Basic and XML literals, you must use namespace prefixes when working with documents in namespaces.

W LINQ to XML Klasa, która reprezentuje nazwy XML, to XName .In LINQ to XML, the class that represents XML names is XName. Nazwy XML często pojawiają się w interfejsie API LINQ to XML i wszędzie tam, gdzie jest wymagana nazwa XML, XName parametr zostanie znaleziony.XML names appear frequently throughout the LINQ to XML API, and wherever an XML name is required, you will find an XName parameter. Jednak rzadko pracujemy bezpośrednio z XName .However, you rarely work directly with an XName. XName zawiera niejawną konwersję z ciągu.XName contains an implicit conversion from string.

Aby uzyskać więcej informacji, zobacz XNamespace i XName.For more information, see XNamespace and XName.