XmlNamespaceManager.AddNamespace(String, String) Methode

Definition

Fügt der Auflistung den angegebenen Namespace hinzu.

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)

Parameter

prefix
String

Das Präfix, das dem hinzugefügten Namespace zugeordnet werden soll. Verwenden Sie String.Empty, um einen Standardnamespace hinzuzufügen.

Hinweis Wenn der XmlNamespaceManager verwendet wird, um Namespaces in einem XPath-Ausdruck (XML Path Language) aufzulösen, muss ein Präfix angegeben werden. Wenn ein XPath-Ausdruck kein Präfix enthält, wird davon ausgegangen, dass der Namespace-URI (Uniform Resource Identifier) der leere Namespace ist. Weitere Informationen über XPath-Ausdrücke und den XmlNamespaceManager finden Sie in der SelectNodes(String)-Methode und der SetContext(XmlNamespaceManager)-Methode.

uri
String

Der hinzuzufügende Namespace.

Ausnahmen

Der Wert für prefix ist "xml" oder "xmlns".

Der Wert für prefix oder uri ist null.

Beispiele

Im folgenden Beispiel werden XmlNamespaceManager Namespaces in einem XML-Fragment aufgelöst.

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

Hinweise

XmlNamespaceManager überprüft nicht prefix und uri nach Übereinstimmung.

XmlReader überprüft Namen, einschließlich Präfixe und Namespaces, um sicherzustellen, dass sie gültige XML-Namen gemäß der Spezifikation des World Wide Web Consortium (W3C)- Namespaces sind. XmlNamespaceManager wird intern XmlReaderverwendet, um eine Duplizierung von Bemühungen zu vermeiden, vorausgesetzt, XmlNamespaceManager dass alle Präfixe und Namespaces gültig sind.

Wenn das Präfix und der Namespace bereits im aktuellen Bereich vorhanden sind, ersetzt das neue Präfix- und Namespacepaar die vorhandene Präfix-/Namespacekombination. Die gleiche Präfix- und Namespacekombination kann in verschiedenen Bereichen vorhanden sein.

Die folgenden Präfix-/Namespacepaare werden standardmäßig zur XmlNamespaceManager. Sie können in jedem Bereich bestimmt werden.

Präfix Namespace
xmlns http://www.w3.org/2000/xmlns/ (der Xmlns-Präfixnamespace)
Xml http://www.w3.org/XML/1998/namespace (der XML-Namespace)
String.Empty String.Empty (der leere Namespace). Dieser Wert kann einem anderen Präfix zugewiesen werden. Beispielsweise definiert xmlns="" den Standardnamespace als leeren Namespace.

Gilt für

Siehe auch