XmlNamespaceManager Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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. |