Обзор пространств имен (LINQ to XML)

В этой статье представлены имена XML, пространства имен XML, префиксы пространства имен XML и XNameXNamespace классы.

Имена XML часто становятся источником сложности при программировании на XML. Имя XML состоит из пространства имен XML (которое также называется URI-кодом пространства имен XML) и локального имени. Пространство имен XML аналогично пространству имен в программах на основе .NET. Он позволяет однозначно квалифицировать имена элементов и атрибутов, чтобы избежать конфликтов имен между различными частями XML-документа. Когда вы объявили пространство имен XML, можно выбрать локальное имя, которое должно быть уникальным только в этом пространстве имен.

Другим аспектом имен XML является префикс пространства имен XML, что приводит к большей сложности имен XML. Эти префиксы позволяют создавать ярлык пространства имен XML, что делает XML-документ более организованным и понятным. Однако значение префикса XML зависит от контекста, который добавляет сложность. Например, префикс aw XML может быть связан с одним пространством имен XML в части дерева XML и другим пространством имен в другой части.

Одним из преимуществ использования LINQ to XML с C# является то, что вам не нужно использовать префиксы XML. При загрузке или анализе XML-документа LINQ to XML каждый префикс XML разрешается в соответствующее пространство имен XML. После этого при работе с документом, в котором используются пространства имен, почти всегда можно оценить пространство имен при помощи URI-кода пространства имен, а не по префиксу. Когда разработчики работают с XML-именами в LINQ to XML, они всегда работают с полным XML-именем (т. е. пространство имен XML и локальное имя). Однако LINQ to XML позволяет работать с префиксами пространства имен и управлять ими по мере необходимости.

При использовании LINQ to XML с visual Basic и XML-литералом необходимо использовать префиксы пространства имен при работе с документами в пространствах имен.

В LINQ to XML класс, представляющий имена XNameXML. Имена XML часто отображаются в API LINQ to XML, и везде, где требуется XML-имя, вы найдете XName параметр. Однако напрямую работать с XName приходится редко. XName содержит неявное преобразование строки.

Дополнительные сведения см. в разделах XNamespace и XName.