Partilhar via


XmlNamespaceManager Classe

Definição

Resolve, adiciona e remove namespaces para 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 obter mais informações e exemplos, siga os links para a página de referência para cada método ou propriedade.

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

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

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

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

O gerenciador de namespaces pressupõe que prefixos e namespaces já foram verificados e estão em conformidade com a especificação de Namespaces W3C . O gerenciador de namespaces 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 método ou LookupPrefix o LookupNamespace método.

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

Como o gerenciador de namespaces 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 namespaces na comparação direta de uma cadeia de caracteres.

O exemplo de código a seguir mostra como associar o prefixo xsd ao URI do http://www.w3.org/2001/XMLSchema namespace 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 uma 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

Nome Description
XmlNamespaceManager(XmlNameTable)

Inicializa uma nova instância da XmlNamespaceManager classe com a especificada XmlNameTable.

Propriedades

Nome Description
DefaultNamespace

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

NameTable

Obtém o XmlNameTable associado a esse objeto.

Métodos

Nome Description
AddNamespace(String, String)

Adiciona o namespace fornecido à 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 por meio dos 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 com chave por 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 enviado por push atual.

LookupNamespace(String)

Obtém o URI do namespace para o prefixo especificado.

LookupPrefix(String)

Localiza o prefixo declarado para o URI de namespace fornecido.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
PopScope()

Exibe um escopo de namespace fora da pilha.

PushScope()

Envia por push um escopo de namespace para a pilha.

RemoveNamespace(String, String)

Remove o namespace fornecido para o prefixo fornecido.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Métodos de Extensão

Nome Description
AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

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.

Aplica-se a

Confira também