XmlNamespaceManager Clase

Definición

Resuelve, agrega y quita espacios de nombres en una colección y proporciona la administración del ámbito de estos espacios de nombres.Resolves, adds, and removes namespaces to a collection and provides scope management for these namespaces.

public ref class XmlNamespaceManager : System::Collections::IEnumerable, System::Xml::IXmlNamespaceResolver
public class XmlNamespaceManager : System.Collections.IEnumerable, System.Xml.IXmlNamespaceResolver
type XmlNamespaceManager = class
    interface IXmlNamespaceResolver
    interface IEnumerable
Public Class XmlNamespaceManager
Implements IEnumerable, IXmlNamespaceResolver
Herencia
XmlNamespaceManager
Derivado
Implementaciones

Comentarios

Para obtener información general sobre cómo se declaran y usan los espacios de nombres en documentos XML, vea administrar espacios de nombres en un documento XML.For general information about how namespaces are declared and used in XML documents, see Managing Namespaces in an XML Document.

XmlNamespaceManageralmacena prefijos y espacios de nombres como cadenas.XmlNamespaceManager stores prefixes and namespaces as strings. A continuación se muestra un resumen de las tareas de administración y búsqueda que puede realizar con esta clase.Here's a summary of management and lookup tasks you can perform with this class. Para obtener más información y ejemplos, siga los vínculos a la página de referencia para cada método o propiedad.For more information and examples, follow the links to the reference page for each method or property.

EnTo UsarUse
Agregar un espacio de nombresAdd a namespace Método AddNamespaceAddNamespace method
Eliminar un espacio de nombresRemove a namespace Método RemoveNamespaceRemoveNamespace method
Encontrar el URI del espacio de nombres predeterminadoFind the URI for the default namespace PropiedadDefaultNamespaceDefaultNamespace property
Encontrar el URI de un prefijo de espacio de nombresFind the URI for a namespace prefix Método LookupNamespaceLookupNamespace method
Encontrar el prefijo de un URI del espacio de nombresFind the prefix for a namespace URI Método LookupPrefixLookupPrefix method
Obtener una lista de espacios de nombres del nodo actualGet a list of namespaces in the current node Método GetNamespacesInScopeGetNamespacesInScope method
Asignar un ámbito a un espacio de nombresScope a namespace Métodos PushScope y PopScopePushScope and PopScope methods
Comprobar si un prefijo está definido en el ámbito actualCheck whether a prefix is defined in the current scope Método HasNamespaceHasNamespace method
Obtener la tabla de nombres usada para buscar prefijos e identificadores URIGet the name table used to look up prefixes and URIs PropiedadNameTableNameTable property

Para agregar espacios de nombres al administrador de espacios de nombres, XmlNamespaceManager cree un objeto y, AddNamespace a continuación, use el método.To add namespaces to the namespace manager, you create a XmlNamespaceManager object and then use the AddNamespace method. Al crear el administrador de espacios de nombres, se agregan automáticamente pares de prefijo y espacio de nombres predeterminados.Default prefix and namespace pairs are automatically added to the namespace manager on creation.

Al crear el administrador de espacios de nombres, puede especificar una tabla de nombres XmlReaderde XsltContextla clase XmlDocument , o y, a continuación AddNamespace , utilizar el método para agregar los espacios de nombres.When you create the namespace manager, you can specify a name table from the XmlReader, XsltContext, or XmlDocument class, and then use the AddNamespace method to add the namespaces.

Puede proporcionar el XmlNamespaceManager objeto como un parámetro SelectNodes al método o SelectSingleNode de la XmlDocument clase para ejecutar expresiones de consulta XPath que hacen referencia a nombres de atributos y elementos de espacio de nombres calificados.You can supply the XmlNamespaceManager object as a parameter to the SelectNodes or SelectSingleNode method of the XmlDocument class to execute XPath query expressions that reference namespace-qualified element and attribute names.

El administrador de espacios de nombres presupone que los prefijos y espacios de nombres ya se han comprobado y cumplen con la especificación de espacios de nombres del W3C .The namespace manager assumes that prefixes and namespaces have already been verified and conform to the W3C Namespaces specification. El administrador de espacios de nombres no realiza ninguna validación.The namespace manager does not perform any validation.

El administrador de espacios de nombres atomiza las cadenas cuando se agregan mediante AddNamespace el método y cuando se realiza una búsqueda mediante el LookupNamespace método LookupPrefix o.The namespace manager atomizes the strings when they are added by using the AddNamespace method and when a lookup is performed by using the LookupNamespace or LookupPrefix method.

El administrador de espacios de nombres implementa la compatibilidad con el proceso de enumeración, además de la adición y la recuperación de espacios de nombres.The namespace manager implements enumeration support in addition to adding and retrieving namespaces. Puede recorrer la información guardada en el administrador de espacios de nombres mediante foreach la construcción.You can loop through the information saved in the namespace manager by using the foreach construct. Por ejemplo, si crea un administrador de espacios de nombres con nsmanagerel nombre, puede recorrer en iteración la foreach (String prefix in nsmanager)tabla mediante.For example, if you create a namespace manager with the name nsmanager, you can iterate through the table by using foreach (String prefix in nsmanager).

Dado que el administrador de espacios de nombres permite la comparación de cadenas con el prefijo y los espacios de nombres como objetos, se produce una mejora del rendimiento al utilizarlo en la comparación directa de una cadena.Because the namespace manager provides a string comparison with the prefix and namespaces as objects, there is a performance improvement when using the namespace manager over the direct comparison of a string.

En el ejemplo de código siguiente se muestra cómo enlazar el prefijo xsd con el URI de espacio de nombres de y agregarlo al administrador de espacios de http://www.w3.org/2001/XMLSchema nombres:The following code example shows how to bind the prefix xsd with the namespace URI of http://www.w3.org/2001/XMLSchema and add it to the namespace manager:

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

A continuación, puede buscar el espacio de nombres LookupNamespace mediante el método:You can then find the namespace by using the LookupNamespace method:

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

En el ejemplo siguiente se XmlNamespaceManager crea un mediante la tabla de nombres de un lector XML:The following example creates an XmlNamespaceManager by using the name table from an XML reader:

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)));  
}  

Constructores

XmlNamespaceManager(XmlNameTable)

Inicializa una nueva instancia de la clase XmlNamespaceManager con el objeto XmlNameTable especificado.Initializes a new instance of the XmlNamespaceManager class with the specified XmlNameTable.

Propiedades

DefaultNamespace

Obtiene el identificador URI de espacio de nombres del espacio de nombres predeterminado.Gets the namespace URI for the default namespace.

NameTable

Obtiene la XmlNameTable asociada a este objeto.Gets the XmlNameTable associated with this object.

Métodos

AddNamespace(String, String)

Agrega el espacio de nombres especificado a la colección.Adds the given namespace to the collection.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetEnumerator()

Devuelve un enumerador que se utilizará para recorrer en iteración los espacios de nombres de XmlNamespaceManager.Returns an enumerator to use to iterate through the namespaces in the XmlNamespaceManager.

GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetNamespacesInScope(XmlNamespaceScope)

Obtiene una colección de nombres de espacios de nombres por clave de prefijo que se puede utilizar para enumerar los espacios de nombres que actualmente se encuentran en el ámbito.Gets a collection of namespace names keyed by prefix which can be used to enumerate the namespaces currently in scope.

GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
HasNamespace(String)

Obtiene un valor que indica si el prefijo proporcionado tiene un espacio de nombres definido para el ámbito que se ha insertado.Gets a value indicating whether the supplied prefix has a namespace defined for the current pushed scope.

LookupNamespace(String)

Obtiene el identificador URI de espacio de nombres del prefijo especificado.Gets the namespace URI for the specified prefix.

LookupPrefix(String)

Busca el prefijo declarado para el identificador URI de espacio de nombres especificado.Finds the prefix declared for the given namespace URI.

MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
PopScope()

Extrae un ámbito de espacio de nombres de la pila.Pops a namespace scope off the stack.

PushScope()

Inserta un ámbito de espacio de nombres en la pila.Pushes a namespace scope onto the stack.

RemoveNamespace(String, String)

Quita el espacio de nombres dado del prefijo especificado.Removes the given namespace for the given prefix.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

Se aplica a

Consulte también: