XmlNamespaceManager Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Resolves, adds, and removes namespaces to a collection and provides scope management for these namespaces.
public ref class XmlNamespaceManager : System::Collections::IEnumerable, System::Xml::IXmlNamespaceResolver
public ref class XmlNamespaceManager : System::Collections::IEnumerable
public class XmlNamespaceManager : System.Collections.IEnumerable, System.Xml.IXmlNamespaceResolver
public class XmlNamespaceManager : System.Collections.IEnumerable
type XmlNamespaceManager = class
interface IEnumerable
interface IXmlNamespaceResolver
type XmlNamespaceManager = class
interface IEnumerable
type XmlNamespaceManager = class
interface IXmlNamespaceResolver
interface IEnumerable
Public Class XmlNamespaceManager
Implements IEnumerable, IXmlNamespaceResolver
Public Class XmlNamespaceManager
Implements IEnumerable
- Inheritance
-
XmlNamespaceManager
- Derived
- Implements
Remarks
For general information about how namespaces are declared and used in XML documents, see Managing Namespaces in an XML Document.
XmlNamespaceManager stores prefixes and namespaces as strings. Here's a summary of management and lookup tasks you can perform with this class. For more information and examples, follow the links to the reference page for each method or property.
To | Use |
---|---|
Add a namespace | AddNamespace method |
Remove a namespace | RemoveNamespace method |
Find the URI for the default namespace | DefaultNamespace property |
Find the URI for a namespace prefix | LookupNamespace method |
Find the prefix for a namespace URI | LookupPrefix method |
Get a list of namespaces in the current node | GetNamespacesInScope method |
Scope a namespace | PushScope and PopScope methods |
Check whether a prefix is defined in the current scope | HasNamespace method |
Get the name table used to look up prefixes and URIs | NameTable property |
To add namespaces to the namespace manager, you create a XmlNamespaceManager object and then use the AddNamespace method. Default prefix and namespace pairs are automatically added to the namespace manager on creation.
When you create the namespace manager, you can specify a name table from the XmlReader, XsltContext, or XmlDocument class, and then use the AddNamespace method to add the namespaces.
You can supply the XmlNamespaceManager object as a parameter to the SelectNodes or SelectSingleNode method of the XmlDocument class to execute XPath query expressions that reference namespace-qualified element and attribute names.
The namespace manager assumes that prefixes and namespaces have already been verified and conform to the W3C Namespaces specification. The namespace manager does not perform any validation.
The namespace manager atomizes the strings when they are added by using the AddNamespace method and when a lookup is performed by using the LookupNamespace or LookupPrefix method.
The namespace manager implements enumeration support in addition to adding and retrieving namespaces. You can loop through the information saved in the namespace manager by using the foreach
construct. For example, if you create a namespace manager with the name nsmanager
, you can iterate through the table by using foreach (String prefix in nsmanager)
.
Because the namespace manager provides a string comparison with the prefix and namespaces as objects, there is a performance improvement when using the namespace manager over the direct comparison of a string.
The following code example shows how to bind the prefix xsd
with the namespace URI of http://www.w3.org/2001/XMLSchema and add it to the namespace manager:
nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema")
nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");
You can then find the namespace by using the LookupNamespace method:
nsmgr.LookupNamespace("xsd")
nsmgr.LookupNamespace("xsd");
The following example creates an XmlNamespaceManager by using the name table from an XML reader:
Dim reader As New XmlTextReader("myfile.xml")
Dim nsmanager As New XmlNamespaceManager(reader.NameTable)
nsmanager.AddNamespace("msbooks", "www.microsoft.com/books")
nsmanager.PushScope()
nsmanager.AddNamespace("msstore", "www.microsoft.com/store")
While reader.Read()
Console.WriteLine("Reader Prefix:{0}", reader.Prefix)
Console.WriteLine("XmlNamespaceManager Prefix:{0}",
nsmanager.LookupPrefix(nsmanager.NameTable.Get(reader.NamespaceURI)))
End While
XmlTextReader reader = new XmlTextReader("myfile.xml");
XmlNamespaceManager nsmanager = new XmlNamespaceManager(reader.NameTable);
nsmanager.AddNamespace("msbooks", "www.microsoft.com/books");
nsmanager.PushScope();
nsmanager.AddNamespace("msstore", "www.microsoft.com/store");
while (reader.Read())
{
Console.WriteLine("Reader Prefix:{0}", reader.Prefix);
Console.WriteLine("XmlNamespaceManager Prefix:{0}",
nsmanager.LookupPrefix(nsmanager.NameTable.Get(reader.NamespaceURI)));
}
Constructors
XmlNamespaceManager(XmlNameTable) |
Initializes a new instance of the XmlNamespaceManager class with the specified XmlNameTable. |
Properties
DefaultNamespace |
Gets the namespace URI for the default namespace. |
NameTable |
Gets the XmlNameTable associated with this object. |
Methods
AddNamespace(String, String) |
Adds the given namespace to the collection. |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetEnumerator() |
Returns an enumerator to use to iterate through the namespaces in the XmlNamespaceManager. |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetNamespacesInScope(XmlNamespaceScope) |
Gets a collection of namespace names keyed by prefix which can be used to enumerate the namespaces currently in scope. |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
HasNamespace(String) |
Gets a value indicating whether the supplied prefix has a namespace defined for the current pushed scope. |
LookupNamespace(String) |
Gets the namespace URI for the specified prefix. |
LookupPrefix(String) |
Finds the prefix declared for the given namespace URI. |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
PopScope() |
Pops a namespace scope off the stack. |
PushScope() |
Pushes a namespace scope onto the stack. |
RemoveNamespace(String, String) |
Removes the given namespace for the given prefix. |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
Extension Methods
Cast<TResult>(IEnumerable) |
Casts the elements of an IEnumerable to the specified type. |
OfType<TResult>(IEnumerable) |
Filters the elements of an IEnumerable based on a specified type. |
AsParallel(IEnumerable) |
Enables parallelization of a query. |
AsQueryable(IEnumerable) |
Converts an IEnumerable to an IQueryable. |