XmlNamespaceManager Classe

Definição

Resolve, adiciona e remove namespaces de uma coleção e fornece gestão de escopos para esses namespaces.

public ref class XmlNamespaceManager : System::Collections::IEnumerable, System::Xml::IXmlNamespaceResolver
public ref class XmlNamespaceManager : System::Collections::IEnumerable
public class XmlNamespaceManager : System.Collections.IEnumerable, System.Xml.IXmlNamespaceResolver
public class XmlNamespaceManager : System.Collections.IEnumerable
type XmlNamespaceManager = class
    interface IEnumerable
    interface IXmlNamespaceResolver
type XmlNamespaceManager = class
    interface IEnumerable
type XmlNamespaceManager = class
    interface IXmlNamespaceResolver
    interface IEnumerable
Public Class XmlNamespaceManager
Implements IEnumerable, IXmlNamespaceResolver
Public Class XmlNamespaceManager
Implements IEnumerable
Herança
XmlNamespaceManager
Derivado
Implementações

Observações

Para informações gerais sobre como os namespaces são declarados e utilizados em documentos XML, veja Gestão de Namespaces num Documento XML.

XmlNamespaceManager armazena prefixos e namespaces como strings. Aqui está um resumo das tarefas de gestão e pesquisa que pode realizar com esta aula. Para obter mais informações e exemplos, siga os links para a página de referência para cada método ou propriedade.

Para Use
Adicionar um namespace AddNamespace método
Remover um namespace RemoveNamespace método
Localizar o URI do namespace padrão DefaultNamespace propriedade
Localizar o URI de um prefixo de namespace LookupNamespace método
Localizar o prefixo de um URI de namespace LookupPrefix método
Obter uma lista dos namespaces no nó atual GetNamespacesInScope método
Escopo de um namespace métodos PushScope e PopScope
Verificar se um prefixo está definido no escopo atual HasNamespace método
Obter a tabela de nomes usada para pesquisar prefixos e URIs NameTable propriedade

Para adicionar namespaces ao gestor de namespace, cria-se um XmlNamespaceManager objeto e depois utiliza-se o AddNamespace método. Pares prefixos e espaços de nomes por defeito são automaticamente adicionados ao gestor de espaço de nomes na criação.

Quando crias o gestor de espaços de nomes, podes especificar uma tabela de nomes a partir da XmlReaderclasse , XsltContext, ou XmlDocument , e depois usar o AddNamespace método para adicionar os espaços de nomes.

Podes fornecer o XmlNamespaceManager objeto como parâmetro ao SelectNodes método ou SelectSingleNode da XmlDocument classe para executar expressões de consulta XPath que referenciam nomes de elementos e atributos qualificados para namespace.

O gestor de espaços de nomes assume que os prefixos e espaços de nomes já foram verificados e cumprem a especificação de espaços de nomes do W3C . O gestor de namespace não realiza qualquer validação.

O gestor de namespace atomiza as cadeias quando são adicionadas usando o AddNamespace método e quando uma pesquisa é feita usando o LookupNamespace método ou.LookupPrefix

O gestor de espaços de nomes implementa suporte à enumeração, além de adicionar e recuperar espaços de nomes. Pode percorrer a informação guardada no gestor de namespace usando o foreach constructo. Por exemplo, se criares um gestor de namespace com o nome nsmanager, podes iterar pela tabela usando foreach (String prefix in nsmanager).

Como o gestor de espaços de nomes fornece uma comparação de cadeias com o prefixo e os espaços de nomes como objetos, há uma melhoria de desempenho ao usar o gestor de espaços de nomes em comparação direta com uma cadeia.

O seguinte exemplo de código mostra como associar o prefixo xsd ao URI do namespace de http://www.w3.org/2001/XMLSchema e adicioná-lo ao gestor de namespace:

nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema")
nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");

Pode então encontrar o namespace usando o LookupNamespace método:

nsmgr.LookupNamespace("xsd")
nsmgr.LookupNamespace("xsd");

O exemplo seguinte cria um XmlNamespaceManager usando a tabela de nomes de um leitor XML:

Dim reader As New XmlTextReader("myfile.xml")
Dim nsmanager As New XmlNamespaceManager(reader.NameTable)
nsmanager.AddNamespace("msbooks", "www.microsoft.com/books")
nsmanager.PushScope()
nsmanager.AddNamespace("msstore", "www.microsoft.com/store")
While reader.Read()
    Console.WriteLine("Reader Prefix:{0}", reader.Prefix)
    Console.WriteLine("XmlNamespaceManager Prefix:{0}",
     nsmanager.LookupPrefix(nsmanager.NameTable.Get(reader.NamespaceURI)))
End While
XmlTextReader reader = new XmlTextReader("myfile.xml");
XmlNamespaceManager nsmanager = new XmlNamespaceManager(reader.NameTable);
nsmanager.AddNamespace("msbooks", "www.microsoft.com/books");
nsmanager.PushScope();
nsmanager.AddNamespace("msstore", "www.microsoft.com/store");
while (reader.Read())
{
    Console.WriteLine("Reader Prefix:{0}", reader.Prefix);
    Console.WriteLine("XmlNamespaceManager Prefix:{0}",
    nsmanager.LookupPrefix(nsmanager.NameTable.Get(reader.NamespaceURI)));
}

Construtores

Name Description
XmlNamespaceManager(XmlNameTable)

Inicializa uma nova instância da XmlNamespaceManager classe com o especificado XmlNameTable.

Propriedades

Name Description
DefaultNamespace

Obtém o URI do namespace para o namespace padrão.

NameTable

Obtém o XmlNameTable valor associado a este objeto.

Métodos

Name Description
AddNamespace(String, String)

Adiciona o namespace dado à coleção.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetEnumerator()

Devolve um enumerador para usar para iterar pelos namespaces no XmlNamespaceManager.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetNamespacesInScope(XmlNamespaceScope)

Recebe uma coleção de nomes de espaços de nomes indexada por prefixo, que pode ser usada para enumerar os espaços de nomes atualmente no âmbito.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
HasNamespace(String)

Obtém um valor que indica se o prefixo fornecido tem um namespace definido para o âmbito atualmente empurrado.

LookupNamespace(String)

Recebe o URI de namespace para o prefixo especificado.

LookupPrefix(String)

Encontra o prefixo declarado para o espaço de nomes dado URI.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
PopScope()

Tira um escopo de espaço de nomes da pilha.

PushScope()

Empurra um âmbito de namespace para a pilha.

RemoveNamespace(String, String)

Remove o espaço de nomes dado para o prefixo dado.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Métodos da Extensão

Name Description
AsParallel(IEnumerable)

Permite a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable para um IQueryable.

Cast<TResult>(IEnumerable)

Conjura os elementos de an IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base num tipo especificado.

Aplica-se a

Ver também