XmlNamespaceManager.AddNamespace(String, String) Methode

Definitie

Voegt de opgegeven naamruimte toe aan de verzameling.

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)

Parameters

prefix
String

Het voorvoegsel dat moet worden gekoppeld aan de naamruimte die wordt toegevoegd. Gebruik String.Empty om een standaardnaamruimte toe te voegen.

Opmerking Als de naamruimten worden gebruikt voor het XmlNamespaceManager omzetten van naamruimten in een XPath-expressie (XML Path Language), moet een voorvoegsel worden opgegeven. Als een XPath-expressie geen voorvoegsel bevat, wordt ervan uitgegaan dat de naamruimte Uniform Resource Identifier (URI) de lege naamruimte is. Raadpleeg de XmlNamespaceManager en methoden voor meer informatie over XPath-expressies en SelectNodes(String) de SetContext(XmlNamespaceManager)expressies.

uri
String

De naamruimte die moet worden toegevoegd.

Uitzonderingen

De waarde voor prefix is 'xml' of 'xmlns'.

De waarde voor prefix of uri is null.

Voorbeelden

In het volgende voorbeeld wordt gebruikgemaakt XmlNamespaceManager van het omzetten van naamruimten in een 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

Opmerkingen

XmlNamespaceManager controleert prefix en uri op conformiteit niet.

XmlReader controleert namen, inclusief voorvoegsels en naamruimten, om ervoor te zorgen dat ze geldige XML-namen zijn volgens de W3C-naamruimtenspecificatie (World Wide Web Consortium). XmlNamespaceManager wordt intern gebruikt door XmlReader, dus om dubbele inspanningen te voorkomen, XmlNamespaceManager wordt ervan uitgegaan dat alle voorvoegsels en naamruimten geldig zijn.

Als het voorvoegsel en de naamruimte al bestaan binnen het huidige bereik, vervangt het nieuwe voorvoegsel en naamruimtepaar de bestaande combinatie van voorvoegsel/naamruimte. Dezelfde combinatie van voorvoegsel en naamruimte kan bestaan in verschillende bereiken.

Het volgende voorvoegsel/naamruimteparen worden standaard toegevoegd aan de XmlNamespaceManager. Ze kunnen op elk bereik worden bepaald.

voorvoegsel Namespace
xmlns http://www.w3.org/2000/xmlns/ (de naamruimte voor het xmlns-voorvoegsel)
xml http://www.w3.org/XML/1998/namespace (de XML-naamruimte)
String.Empty String.Empty (de lege naamruimte). Deze waarde kan opnieuw worden toegewezen aan een ander voorvoegsel. Xmlns="" definieert bijvoorbeeld de standaardnaamruimte als de lege naamruimte

Van toepassing op

Zie ook