Freigeben über


XmlNamespaceManager.AddNamespace-Methode

Fügt der Auflistung den angegebenen Namespace hinzu.

Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)

Syntax

'Declaration
Public Overridable Sub AddNamespace ( _
    prefix As String, _
    uri As String _
)
'Usage
Dim instance As XmlNamespaceManager
Dim prefix As String
Dim uri As String

instance.AddNamespace(prefix, uri)
public virtual void AddNamespace (
    string prefix,
    string uri
)
public:
virtual void AddNamespace (
    String^ prefix, 
    String^ uri
)
public void AddNamespace (
    String prefix, 
    String uri
)
public function AddNamespace (
    prefix : String, 
    uri : String
)

Parameter

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

    Hinweis

    Wenn der XmlNamespaceManager jedoch für das Auflösen von Namespaces in einem XPath (XML Path Language)-Ausdruck verwendet wird, 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 XmlNode.SelectNodes-Methode und der XPathExpression.SetContext-Methode.

  • uri
    Der hinzuzufügende Namespace.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentException

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

ArgumentNullException

Der Wert für prefix oder uri ist NULL (Nothing in Visual Basic).

Hinweise

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

XmlReader überprüft Namen einschließlich Präfix und Namespace, um sicherzustellen, dass es sich dabei um gültige XML-Namen gemäß der W3C (World Wide Web Consortium)-Spezifikation handelt. XmlNamespaceManager wird intern vom XmlReader verwendet. Um doppelten Aufwand zu vermeiden, geht XmlNamespaceManager davon aus, dass alle Präfixe und Namespaces gültig sind.

Wenn das Präfix und der Namespace innerhalb des aktuellen Gültigkeitsbereichs bereits vorhanden sind, ersetzt das neue Präfix-Namespace-Paar das vorhandene. Dieselbe Kombination aus Präfix und Namespace kann in verschiedenen Gültigkeitsbereichen vorhanden sein.

Die folgenden Präfix-Namespace-Paare werden dem XmlNamespaceManager standardmäßig hinzugefügt. Sie können in jedem Gültigkeitsbereich bestimmt werden.

Präfix

Namespace

xmlns

http://www.w3.org/2000/xmlns/ (der Namespace mit dem Präfix "xmlns")

xml

http://www.w3.org/XML/1998/namespace (der XML-Namespace)

String.Empty

String.Empty (der leere Namespace). Diesem Wert kann ein anderes Präfix zugewiesen werden. beispielsweise definiert den leeren Namespace als Standardnamespace.

Beispiel

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

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

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

XmlNamespaceManager-Klasse
XmlNamespaceManager-Member
System.Xml-Namespace