XmlNamespaceManager Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |