Compartilhar via


XmlNamespaceManager Classe

Definição

Resolve, adiciona e remove namespaces de uma coleção e fornece gerenciamento de escopo 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

Comentários

Para obter informações gerais sobre como os namespaces são declarados e usados em documentos XML, consulte Gerenciando namespaces em um documento XML.

XmlNamespaceManager armazena prefixos e namespaces como cadeias de caracteres. Aqui está um resumo das tarefas de gerenciamento e pesquisa que você pode executar com essa classe. Para saber mais e exemplos, siga os links para a página de referência para cada método ou propriedade.

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

Para adicionar namespaces ao gerenciador de namespace, crie um XmlNamespaceManager objeto e use o AddNamespace método . Os pares padrão do prefixo do namespace e são automaticamente adicionados para o gerenciador do namespace em design.

Ao criar o gerenciador de namespace, você pode especificar uma tabela de nomes da XmlReaderclasse , XsltContextou XmlDocument e, em seguida, usar o AddNamespace método para adicionar os namespaces.

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

O gerenciador de namespace pressupõe que prefixos e namespaces já foram verificados e estão em conformidade com a especificação de Namespaces W3C . O gerenciador de namespace não executa nenhuma validação.

O gerenciador de namespace atomiza as cadeias de caracteres quando elas são adicionadas usando o AddNamespace método e quando uma pesquisa é executada usando o LookupNamespace método ou LookupPrefix .

O gerenciador de namespace implementa o suporte da enumeração além de adicionar e recuperar namespaces. Você pode percorrer as informações salvas no gerenciador de namespace usando o foreach constructo . Por exemplo, se você criar um gerenciador de namespace com o nome nsmanager, poderá iterar por meio da tabela usando foreach (String prefix in nsmanager).

Porque o gerenciador de namespace fornece uma comparação de cadeia de caracteres com o prefixo e namespaces como objetos, há uma melhoria de desempenho ao usar o gerenciador de namespace sobre a comparação direta de uma cadeia de caracteres.

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

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

Em seguida, você pode encontrar o namespace usando o LookupNamespace método :

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

O exemplo a seguir 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

XmlNamespaceManager(XmlNameTable)

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

Propriedades

DefaultNamespace

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

NameTable

Obtém o XmlNameTable associado a este objeto.

Métodos

AddNamespace(String, String)

Adiciona o namespace especificado à coleção.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetEnumerator()

Retorna um enumerador a ser usado para iterar os namespaces no XmlNamespaceManager.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetNamespacesInScope(XmlNamespaceScope)

Obtém uma coleção de nomes de namespace inseridos pelo prefixo que pode ser usada para enumerar os namespaces atualmente no escopo.

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 escopo atual que passou por push.

LookupNamespace(String)

Obtém o URI do namespace do prefixo especificado.

LookupPrefix(String)

Encontra o prefixo declarado para o URI de namespace especificado.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
PopScope()

Remove um escopo de namespace mais recente da pilha.

PushScope()

Efetua push em um escopo de namespace para a pilha.

RemoveNamespace(String, String)

Remove o namespace especificado para o prefixo especificado.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Aplica-se a

Confira também