XmlNamespaceManager.AddNamespace(String, String) Metodo

Definizione

Aggiunge alla raccolta lo spazio dei nomi specificato.Adds the given namespace to the collection.

public:
 virtual void AddNamespace(System::String ^ prefix, System::String ^ uri);
public virtual void AddNamespace (string prefix, string uri);
abstract member AddNamespace : string * string -> unit
override this.AddNamespace : string * string -> unit
Public Overridable Sub AddNamespace (prefix As String, uri As String)

Parametri

prefix
String

Prefisso da associare allo spazio dei nomi aggiunto.The prefix to associate with the namespace being added. Usare String.Empty per aggiungere uno spazio dei nomi predefinito.Use String.Empty to add a default namespace.

Nota Se si usa XmlNamespaceManager per risolvere gli spazi dei nomi in un'espressione XML Path Language (XPath), è necessario specificare un prefisso.NoteIf the XmlNamespaceManager will be used for resolving namespaces in an XML Path Language (XPath) expression, a prefix must be specified. Se in un'espressione XPath non è incluso un prefisso, si presuppone che l'URI (Uniform Resource Identifier) dello spazio dei nomi sia lo spazio dei nomi vuoto.If an XPath expression does not include a prefix, it is assumed that the namespace Uniform Resource Identifier (URI) is the empty namespace. Per ulteriori informazioni sulle espressioni XPath e su XmlNamespaceManager, fare riferimento a SelectNodes(String) e ai metodi SetContext(XmlNamespaceManager).For more information about XPath expressions and the XmlNamespaceManager, refer to the SelectNodes(String) and SetContext(XmlNamespaceManager) methods.

uri
String

Spazio dei nomi da aggiungere.The namespace to add.

Eccezioni

Il valore di prefix è "xml" o "xmlns".The value for prefix is "xml" or "xmlns".

Il valore di prefix o uri è null.The value for prefix or uri is null.

Esempio

Nell'esempio seguente viene utilizzato XmlNamespaceManager per risolvere gli spazi dei nomi in un frammento XML.The following example uses XmlNamespaceManager to resolve namespaces in an XML fragment.

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
Imports System.Xml

Public Class Sample

    Public Shared Sub Main()

        Dim reader As XmlTextReader = Nothing

        Try

            ' Create the string containing the XML to read.
            Dim xmlFrag As 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.
            Dim nt As NameTable = New NameTable()
            Dim nsmgr As XmlNamespaceManager = 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.
            Dim context As XmlParserContext
            Dim subset As String = "<!ENTITY h 'hardcover'>"
            context = New XmlParserContext(nt, nsmgr, "book", Nothing, Nothing, subset, Nothing, Nothing, 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) Then
                    Console.WriteLine("{0} [{1}] = {2}", reader.NodeType, reader.Name, reader.Value)
                Else
                    Console.WriteLine("{0} [{1}]", reader.NodeType, reader.Name)
                End If
            End While

        Finally
            If Not (reader Is Nothing) Then
                reader.Close()
            End If
        End Try
    End Sub
End Class

Commenti

XmlNamespaceManager non controlla prefix e uri per la conformità.XmlNamespaceManager does not check prefix and uri for conformance.

XmlReader controlla i nomi, inclusi i prefissi e gli spazi dei nomi, per assicurarsi che siano nomi XML validi in base alla specifica dello spazio dei nomiWorld Wide Web Consortium (W3C).XmlReader checks names, including prefixes and namespaces, to ensure they are valid XML names according to the World Wide Web Consortium (W3C) Namespaces specification. XmlNamespaceManager viene utilizzato internamente da XmlReader, pertanto per evitare la duplicazione delle attività, XmlNamespaceManager presuppone che tutti i prefissi e gli spazi dei nomi siano validi.XmlNamespaceManager is used internally by XmlReader, so to avoid a duplication of efforts, XmlNamespaceManager assumes all prefixes and namespaces are valid.

Se il prefisso e lo spazio dei nomi sono già presenti nell'ambito corrente, la nuova coppia prefisso e spazio dei nomi sostituirà la combinazione prefisso/spazio dei nomi esistente.If the prefix and namespace already exist within the current scope, the new prefix and namespace pair will replace the existing prefix/namespace combination. La stessa combinazione di prefisso e spazio dei nomi può esistere in ambiti diversi.The same prefix and namespace combination can exist across different scopes.

Per impostazione predefinita, vengono aggiunte le coppie prefisso/spazio dei nomi seguenti al XmlNamespaceManager.The following prefix/namespace pairs are added by default to the XmlNamespaceManager. Possono essere determinate in qualsiasi ambito.They can be determined at any scope.

PrefissoPrefix Spazio dei nomiNamespace
xmlnsxmlns http://www.w3.org/2000/xmlns/ (spazio dei nomi del prefisso xmlns)http://www.w3.org/2000/xmlns/ (the xmlns prefix namespace)
Xmlxml http://www.w3.org/XML/1998/namespace (spazio dei nomi XML)http://www.w3.org/XML/1998/namespace (the XML namespace)
String.EmptyString.Empty String. Empty (spazio dei nomi vuoto).String.Empty (the empty namespace). Questo valore può essere riassegnato a un prefisso diverso.This value can be reassigned a different prefix. Ad esempio, xmlns = "" definisce lo spazio dei nomi predefinito come spazio dei nomi vuotoFor example, xmlns="" defines the default namespace to be the empty namespace

Si applica a

Vedi anche