Leer en inglés

Compartir a través de


XmlNamespaceManager.AddNamespace(String, String) Método

Definición

Agrega el espacio de nombres especificado a la colección.

C#
public virtual void AddNamespace (string prefix, string uri);

Parámetros

prefix
String

Prefijo que se va a asociar al espacio de nombres que se agrega. Use String.Empty para agregar un espacio de nombres predeterminado.

Nota Si se va a usar XmlNamespaceManager para resolver los espacios de nombres en una expresión XPath (XML Path Language), se ha de especificar un prefijo. Si una expresión XPath no incluye un prefijo, se supone que el identificador uniforme de recursos (URI) del espacio de nombres corresponde al espacio de nombres vacío. Para obtener más información sobre las expresiones XPath y XmlNamespaceManager, vea los métodos SelectNodes(String) y SetContext(XmlNamespaceManager).

uri
String

Espacio de nombres que se va a agregar.

Excepciones

El valor de prefix es "xml" o "xmlns".

El valor de prefix o uri es null.

Ejemplos

En el ejemplo siguiente se usa XmlNamespaceManager para resolver espacios de nombres en un fragmento XML.

C#
using System;
using System.Xml;

public class Sample
{

    public static void Main()
    {

        XmlTextReader reader = null;

        try
        {

            // Create the string containing the XML to read.
            String xmlFrag = "<book>" +
                           "<title>Pride And Prejudice</title>" +
                           "<author>" +
                           "<first-name>Jane</first-name>" +
                           "<last-name>Austen</last-name>" +
                           "</author>" +
                           "<curr:price>19.95</curr:price>" +
                           "<misc>&h;</misc>" +
                           "</book>";

            // Create an XmlNamespaceManager to resolve namespaces.
            NameTable nt = new NameTable();
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
            nsmgr.AddNamespace(String.Empty, "urn:samples"); //default namespace
            nsmgr.AddNamespace("curr", "urn:samples:dollar");

            // Create an XmlParserContext.  The XmlParserContext contains all the information
            // required to parse the XML fragment, including the entity information and the
            // XmlNamespaceManager to use for namespace resolution.
            XmlParserContext context;
            String subset = "<!ENTITY h 'hardcover'>";
            context = new XmlParserContext(nt, nsmgr, "book", null, null, subset, null, null, XmlSpace.None);

            // Create the reader.
            reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);

            // Parse the file and display the node values.
            while (reader.Read())
            {
                if (reader.HasValue)
                    Console.WriteLine("{0} [{1}] = {2}", reader.NodeType, reader.Name, reader.Value);
                else
                    Console.WriteLine("{0} [{1}]", reader.NodeType, reader.Name);
            }
        }
        finally
        {
            if (reader != null)
                reader.Close();
        }
    }
} // End class

Comentarios

XmlNamespaceManager no comprueba prefix y uri comprueba la conformidad.

XmlReader comprueba los nombres, incluidos los prefijos y los espacios de nombres, para asegurarse de que son nombres XML válidos según la especificación de espacios de nombres de World Wide Web Consortium (W3C). XmlNamespaceManager se usa internamente mediante XmlReader, por lo que para evitar la duplicación de esfuerzos, XmlNamespaceManager se supone que todos los prefijos y espacios de nombres son válidos.

Si el prefijo y el espacio de nombres ya existen dentro del ámbito actual, el nuevo par de prefijos y espacios de nombres reemplazará la combinación de prefijo o espacio de nombres existente. La misma combinación de prefijo y espacio de nombres puede existir en distintos ámbitos.

Los siguientes pares de prefijos o espacios de nombres se agregan de forma predeterminada a XmlNamespaceManager. Se pueden determinar en cualquier ámbito.

Prefijo Espacio de nombres
xmlns http://www.w3.org/2000/xmlns/ (espacio de nombres de prefijo xmlns)
Xml http://www.w3.org/XML/1998/namespace (el espacio de nombres XML)
String.Empty String.Empty (el espacio de nombres vacío). Este valor se puede reasignar a un prefijo diferente. Por ejemplo, xmlns="" define el espacio de nombres predeterminado para que sea el espacio de nombres vacío.

Se aplica a

Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Consulte también