Compartilhar via


Visão geral de namespaces (LINQ to XML)

Este artigo apresenta nomes XML, namespaces XML, prefixos de namespace XML e classesXName.XNamespace

Os nomes XML geralmente são uma fonte de complexidade na programação XML. Um nome XML consiste em um namespace XML (também chamado de URI de namespace XML) e um nome local. Um namespace XML é semelhante a um namespace em um programa .NET. Ele permite que você qualifique exclusivamente os nomes de elementos e atributos para evitar conflitos de nome entre várias partes de um documento XML. Quando você declarou um namespace XML, pode selecionar um nome local que só precisa ser exclusivo dentro desse namespace.

Outro aspecto dos nomes XML são os prefixos de namespace XML, que causam a maior parte da complexidade dos nomes XML. Esses prefixos permitem que você crie um atalho para um namespace XML, o que torna o documento XML mais conciso e compreensível. No entanto, o significado de um prefixo XML depende do contexto, o que adiciona complexidade. Por exemplo, o prefixo aw XML pode ser associado a um namespace XML em parte de uma árvore XML e com um namespace diferente em outra parte.

Uma das vantagens de usar LINQ to XML com C# é que você não precisa usar prefixos XML. Quando LINQ to XML carrega ou analisa um documento XML, cada prefixo XML é resolvido para seu namespace XML correspondente. Depois disso, quando você trabalha com um documento que usa namespaces, quase sempre acessa os namespaces por meio do URI do namespace e não por meio do prefixo do namespace. Quando os desenvolvedores trabalham com nomes XML em LINQ to XML, eles sempre trabalham com um nome XML totalmente qualificado (ou seja, um namespace XML e um nome local). No entanto, LINQ to XML permite que você trabalhe e controle prefixos de namespace conforme necessário.

Ao usar LINQ to XML com literais do Visual Basic e XML, você deve usar prefixos de namespace ao trabalhar com documentos em namespaces.

No LINQ to XML, a classe que representa nomes XML é XName. Os nomes XML aparecem com frequência em toda a API LINQ to XML e, onde quer que um nome XML seja necessário, você encontrará um XName parâmetro. No entanto, raramente você trabalha diretamente com um XName. XName contém uma conversão implícita de string.

Para obter mais informações, consulte XNamespace e XName.