Bahasa

XmlNamespaceManager.AddNamespace(String, String) Metode

Definisi

Menambahkan namespace yang diberikan ke koleksi.

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

Awalan untuk mengaitkan dengan namespace yang ditambahkan. Gunakan String.Empty untuk menambahkan namespace default.

CatatanXmlNamespaceManager Jika akan digunakan untuk mengatasi namespace dalam ekspresi Bahasa Jalur XML (XPath), awalan harus ditentukan. Jika ekspresi XPath tidak menyertakan awalan, diasumsikan bahwa namespace Uniform Resource Identifier (URI) adalah namespace kosong. Untuk informasi selengkapnya tentang ekspresi XPath dan XmlNamespaceManager, lihat SelectNodes(String) metode dan SetContext(XmlNamespaceManager) .

uri
String

Namespace layanan yang akan ditambahkan.

Pengecualian

Nilai untuk prefix adalah "xml" atau "xmlns".

Nilai untuk prefix atau uri adalah null.

Contoh

Contoh berikut menggunakan XmlNamespaceManager untuk mengatasi namespace dalam fragmen 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

Keterangan

XmlNamespaceManager tidak memeriksa prefix dan uri untuk kesuaian.

XmlReader memeriksa nama, termasuk awalan dan namespace layanan, untuk memastikan nama XML valid sesuai dengan spesifikasi Namespace Layanan World Wide Web Consortium (W3C). XmlNamespaceManager digunakan secara internal oleh XmlReader, sehingga untuk menghindari duplikasi upaya, XmlNamespaceManager mengasumsikan semua awalan dan namespace valid.

Jika awalan dan namespace sudah ada dalam cakupan saat ini, pasangan awalan dan namespace baru akan menggantikan kombinasi awalan/namespace yang ada. Awalan dan kombinasi namespace yang sama dapat ada di berbagai cakupan.

Pasangan awalan/namespace berikut ditambahkan secara default ke XmlNamespaceManager. Mereka dapat ditentukan pada cakupan apa pun.

Awalan Namespace
xmlns http://www.w3.org/2000/xmlns/ (namespace awalan xmln)
xml http://www.w3.org/XML/1998/namespace (namespace XML)
String.Empty String.Empty (namespace kosong). Nilai ini dapat ditetapkan ulang awalan yang berbeda. Misalnya, xmlns="" menentukan namespace default menjadi namespace kosong

Berlaku untuk

Lihat juga