XmlNamespaceManager.AddNamespace(String, String) Metod

Definition

Lägger till det angivna namnområdet i samlingen.

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)

Parametrar

prefix
String

Prefixet som ska associeras med namnområdet som läggs till. Använd String.Empty för att lägga till ett standardnamnområde.

ObserveraXmlNamespaceManager Om kommer att användas för att matcha namnområden i ett XPath-uttryck (XML Path Language) måste ett prefix anges. Om ett XPath-uttryck inte innehåller något prefix antas det att namnområdets enhetliga resursidentifierare (URI) är det tomma namnområdet. Mer information om XPath-uttryck och XmlNamespaceManager, finns i SelectNodes(String) metoderna och SetContext(XmlNamespaceManager) .

uri
String

Namnområdet som ska läggas till.

Undantag

Värdet för prefix är "xml" eller "xmlns".

Värdet för prefix eller uri är null.

Exempel

I följande exempel används XmlNamespaceManager för att matcha namnområden i ett 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

Kommentarer

XmlNamespaceManager kontrollerar prefix inte och uri för överensstämmelse.

XmlReader kontrollerar namn, inklusive prefix och namnområden, för att säkerställa att de är giltiga XML-namn enligt W3C-namnrymdsspecifikationen (World Wide Web Consortium). XmlNamespaceManager används internt av XmlReader, så för att undvika duplicering av arbetet XmlNamespaceManager förutsätter vi att alla prefix och namnområden är giltiga.

Om prefixet och namnområdet redan finns inom det aktuella omfånget ersätter det nya prefixet och namnområdesparet den befintliga prefix-/namnområdeskombinationen. Samma prefix och namnområdeskombination kan finnas i olika omfång.

Följande prefix-/namnområdespar läggs som standard till i XmlNamespaceManager. De kan fastställas i valfritt omfång.

Prefix Namespace
xmlns http://www.w3.org/2000/xmlns/ (xmlns-prefixets namnområde)
xml http://www.w3.org/XML/1998/namespace (XML-namnområdet)
String.Empty String.Empty (det tomma namnområdet). Det här värdet kan tilldelas om ett annat prefix. Xmlns="" definierar till exempel att standardnamnområdet är det tomma namnområdet

Gäller för

Se även