Sdílet prostřednictvím


XmlNamespaceManager.AddNamespace(String, String) Metoda

Definice

Přidá daný obor názvů do kolekce.

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)

Parametry

prefix
String

Předpona, která se má přidružit k přidanému oboru názvů. K přidání výchozího oboru názvů použijte String.Empty.

Poznámka XmlNamespaceManager Pokud se použije k překladu oborů názvů ve výrazu XPath (XML Path Language), musí být zadána předpona. Pokud výraz XPath neobsahuje předponu, předpokládá se, že obor názvů Uniform Resource Identifier (URI) je prázdný obor názvů. Další informace ovýrazch XmlNamespaceManagerSelectNodes(String) SetContext(XmlNamespaceManager)

uri
String

Obor názvů, který chcete přidat.

Výjimky

Hodnota prefix "xml" nebo "xmlns".

Hodnota pro prefix nebo uri je null.

Příklady

Následující příklad používá XmlNamespaceManager k překladu oborů názvů v fragmentu XML.

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

Poznámky

XmlNamespaceManagernekontroluje a uri nekontroluje prefix shodu.

XmlReader kontroluje názvy, včetně předpon a oborů názvů, aby se zajistilo, že jsou platné názvy XML podle specifikace oborů názvů W3C (World Wide Web Consortium). XmlNamespaceManager se používá interně , XmlReaderaby se zabránilo duplikaci úsilí, předpokládá, XmlNamespaceManager že všechny předpony a obory názvů jsou platné.

Pokud předpona a obor názvů již v aktuálním oboru existují, nahradí nová dvojice předpon a oboru názvů existující kombinaci předpony nebo oboru názvů. Stejná kombinace předpon a oboru názvů může existovat v různých oborech.

Následující páry předpony nebo oboru názvů jsou ve výchozím nastavení přidány do XmlNamespaceManagersouboru . Lze je určit v libovolném rozsahu.

Předpona Obor názvů
Xmlns http://www.w3.org/2000/xmlns/ (obor názvů předpon xmlns)
xml http://www.w3.org/XML/1998/namespace (obor názvů XML)
String.empty String.Empty (prázdný obor názvů). Tuto hodnotu lze znovu přiřadit jinou předponu. Například xmlns="" definuje výchozí obor názvů jako prázdný obor názvů.

Platí pro

Viz také