XmlNamespaceManager Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Resuelve, agrega y quita espacios de nombres a una colección y proporciona administración de ámbitos para estos espacios de nombres.
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
- 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 Administración de espacios de nombres en un documento XML.
XmlNamespaceManager almacena prefijos y espacios de nombres como cadenas. Este es un resumen de las tareas de administración y búsqueda que puede realizar con esta clase. Para obtener más información y ejemplos, siga los vínculos a la página de referencia de cada método o propiedad.
| Para | Uso |
|---|---|
| Agregar un espacio de nombres | método AddNamespace |
| Eliminar un espacio de nombres | método RemoveNamespace |
| Busque el URI del espacio de nombres predeterminado. | PropiedadDefaultNamespace |
| Encontrar el URI de un prefijo de espacio de nombres | método LookupNamespace |
| Encontrar el prefijo de un URI del espacio de nombres | método LookupPrefix |
| Obtener una lista de espacios de nombres del nodo actual | método GetNamespacesInScope |
| Definir el ámbito de un espacio de nombres | métodos PushScope y PopScope |
| Compruebe si se define un prefijo en el ámbito actual. | método HasNamespace |
| Obtención de la tabla de nombres usada para buscar prefijos e URI | PropiedadNameTable |
Para agregar espacios de nombres al administrador de espacios de nombres, cree un XmlNamespaceManager objeto y, a continuación, use el AddNamespace método . Los pares de prefijo y espacio de nombres predeterminados se agregan automáticamente al administrador de espacios de nombres al crear.
Al crear el administrador de espacios de nombres, puede especificar una tabla de nombres de la XmlReaderclase , XsltContexto XmlDocument y, a continuación, usar el AddNamespace método para agregar los espacios de nombres.
Puede proporcionar el XmlNamespaceManager objeto como parámetro al SelectNodes método o SelectSingleNode de la XmlDocument clase para ejecutar expresiones de consulta XPath que hagan referencia a nombres de atributos y elementos calificados del espacio de nombres.
El administrador de espacios de nombres supone que los prefijos y los espacios de nombres ya se han comprobado y se ajustan a la especificación de espacios de nombres W3C . El administrador de espacios de nombres no realiza ninguna validación.
El administrador de espacios de nombres atomiza las cadenas cuando se agregan mediante el AddNamespace método y cuando se realiza una búsqueda mediante el LookupNamespace método o LookupPrefix .
El administrador de espacios de nombres implementa compatibilidad con la enumeración además de agregar y recuperar espacios de nombres. Puede recorrer en bucle la información guardada en el administrador de espacios de nombres mediante la foreach construcción . Por ejemplo, si crea un administrador de espacios de nombres con el nombre nsmanager, puede recorrer en iteración la tabla mediante foreach (String prefix in nsmanager).
Dado que el administrador de espacios de nombres proporciona una comparación de cadenas con el prefijo y los espacios de nombres como objetos, hay una mejora del rendimiento al usar el administrador de espacios de nombres sobre la comparación directa de una cadena.
En el ejemplo de código siguiente se muestra cómo enlazar el prefijo xsd con el URI del espacio de nombres de http://www.w3.org/2001/XMLSchema y agregarlo al administrador de espacios de nombres:
nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema")
nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");
A continuación, puede encontrar el espacio de nombres mediante el LookupNamespace método :
nsmgr.LookupNamespace("xsd")
nsmgr.LookupNamespace("xsd");
En el ejemplo siguiente se crea un XmlNamespaceManager mediante la tabla de nombres a partir de un lector 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)));
}
Constructores
| Nombre | Description |
|---|---|
| XmlNamespaceManager(XmlNameTable) |
Inicializa una nueva instancia de la XmlNamespaceManager clase con el especificado XmlNameTable. |
Propiedades
| Nombre | Description |
|---|---|
| DefaultNamespace |
Obtiene el URI del espacio de nombres para el espacio de nombres predeterminado. |
| NameTable |
Obtiene el XmlNameTable objeto asociado a este objeto. |
Métodos
| Nombre | Description |
|---|---|
| AddNamespace(String, String) |
Agrega el espacio de nombres especificado a la colección. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetEnumerator() |
Devuelve un enumerador que se va a usar para recorrer en iteración los espacios de nombres de XmlNamespaceManager. |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetNamespacesInScope(XmlNamespaceScope) |
Obtiene una colección de nombres de espacio de nombres con clave por prefijo, que se puede usar para enumerar los espacios de nombres que se encuentran actualmente en el ámbito. |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| HasNamespace(String) |
Obtiene un valor que indica si el prefijo proporcionado tiene un espacio de nombres definido para el ámbito insertado actual. |
| LookupNamespace(String) |
Obtiene el URI del espacio de nombres para el prefijo especificado. |
| LookupPrefix(String) |
Busca el prefijo declarado para el URI de espacio de nombres especificado. |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| PopScope() |
Quita un ámbito de espacio de nombres fuera de la pila. |
| PushScope() |
Inserta un ámbito de espacio de nombres en la pila. |
| RemoveNamespace(String, String) |
Quita el espacio de nombres especificado para el prefijo especificado. |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Métodos de extensión
| Nombre | Description |
|---|---|
| AsParallel(IEnumerable) |
Habilita la paralelización de una consulta. |
| AsQueryable(IEnumerable) |
Convierte un IEnumerable en un IQueryable. |
| Cast<TResult>(IEnumerable) |
Convierte los elementos de un IEnumerable al tipo especificado. |
| OfType<TResult>(IEnumerable) |
Filtra los elementos de un IEnumerable en función de un tipo especificado. |