XmlNamespaceManager.AddNamespace(String, String) Yöntem

Tanım

Verilen ad alanını koleksiyona ekler.

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)

Parametreler

prefix
String

Eklenen ad alanıyla ilişkilendirilecek ön ek. Varsayılan ad alanını eklemek için String.Empty kullanın.

Not XmlNamespaceManager bir XML Yol Dili (XPath) ifadesindeki ad alanlarını çözümlemek için kullanılacaksa, bir ön ek belirtilmelidir. XPath ifadesi ön ek içermiyorsa, ad alanının Tekdüzen Kaynak Tanımlayıcısı'nın (URI) boş ad alanı olduğu varsayılır. XPath ifadeleri ve XmlNamespaceManagerhakkında daha fazla bilgi için ve SetContext(XmlNamespaceManager) yöntemlerine SelectNodes(String) bakın.

uri
String

Eklenecek ad alanı.

Özel durumlar

değeri prefix "xml" veya "xmlns" şeklindedir.

veya değeridir prefix null.uri

Örnekler

Aşağıdaki örnek, xml parçasındaki ad alanlarını çözümlemek için kullanır XmlNamespaceManager .

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

Açıklamalar

XmlNamespaceManager ve uyumluluğu denetlemez prefix uri .

XmlReader , World Wide Web Consortium (W3C) Ad Alanları belirtimine göre geçerli XML adları olduklarından emin olmak için ön ekler ve ad alanları dahil olmak üzere adları denetler. XmlNamespaceManager tarafından XmlReaderdahili olarak kullanıldığından, eforların XmlNamespaceManager yinelenmemesi için tüm ön eklerin ve ad alanlarının geçerli olduğunu varsayar.

Ön ek ve ad alanı geçerli kapsam içinde zaten varsa, yeni ön ek ve ad alanı çifti mevcut ön ek/ad alanı bileşiminin yerini alır. Aynı ön ek ve ad alanı bileşimi farklı kapsamlarda bulunabilir.

Aşağıdaki ön ek/ad alanı çiftleri varsayılan olarak öğesine XmlNamespaceManagereklenir. Bunlar herhangi bir kapsamda belirlenebilir.

Ön ek Ad Alanı
Xmlns http://www.w3.org/2000/xmlns/ (xmlns ön eki ad alanı)
xml http://www.w3.org/XML/1998/namespace (XML ad alanı)
Empty String.Empty (boş ad alanı). Bu değere farklı bir ön ek atanabilir. Örneğin, xmlns="" varsayılan ad alanını boş ad alanı olarak tanımlar

Şunlara uygulanır

Ayrıca bkz.