XmlNamespaceManager.AddNamespace(String, String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Fügt der Auflistung den angegebenen Namespace hinzu.
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
Das Präfix, das dem hinzugefügten Namespace zugeordnet werden soll. Verwenden Sie String.Empty, um einen Standardnamespace hinzuzufügen.
Hinweis Wenn dies XmlNamespaceManager zum Auflösen von Namespaces in einem XML Path Language (XPath)-Ausdruck verwendet wird, muss ein Präfix angegeben werden. Wenn ein XPath-Ausdruck kein Präfix enthält, wird davon ausgegangen, dass der Namespace Uniform Resource Identifier (URI) der leere Namespace ist. Weitere Informationen zu XPath-Ausdrücken und dem XmlNamespaceManager, finden Sie in den SelectNodes(String) und SetContext(XmlNamespaceManager) den Methoden.
- uri
- String
Der hinzuzufügende Namespace.
Ausnahmen
Der Wert für prefix "xml" oder "xmlns".
Der Wert für prefix oder uri ist null.
Beispiele
Im folgenden Beispiel werden XmlNamespaceManager Namespaces in einem XML-Fragment aufgelöst.
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
Hinweise
XmlNamespaceManager überprüft prefix nicht und uri auf Konformität.
XmlReader überprüft Namen, einschließlich Präfixen und Namespaces, um sicherzustellen, dass sie gültige XML-Namen gemäß der W3C-Namespacespezifikation (World Wide Web Consortium) sind. XmlNamespaceManager wird intern verwendet, XmlReaderum eine Duplizierung der Bemühungen zu vermeiden, vorausgesetzt, XmlNamespaceManager alle Präfixe und Namespaces sind gültig.
Wenn das Präfix und der Namespace bereits im aktuellen Bereich vorhanden sind, ersetzt das neue Präfix- und Namespacepaar die vorhandene Präfix-/Namespacekombination. Die gleiche Präfix- und Namespacekombination kann in verschiedenen Bereichen vorhanden sein.
Die folgenden Präfix-/Namespacepaare werden standardmäßig dem XmlNamespaceManager. Sie können in jedem Bereich bestimmt werden.
| Präfix | Namespace |
|---|---|
| xmlns | http://www.w3.org/2000/xmlns/ (der XMLns-Präfixnamespace) |
| xml | http://www.w3.org/XML/1998/namespace (der XML-Namespace) |
| String.Empty | String.Empty (der leere Namespace). Dieser Wert kann einem anderen Präfix neu zugewiesen werden. Beispielsweise definiert xmlns="" den Standardnamespace als leeren Namespace. |