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 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. |