XmlNamespaceManager Класс

Определение

Разрешает, добавляет и удаляет пространства имен из коллекции и обеспечивает управление областью для этих пространств имен.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 class XmlNamespaceManager : System.Collections.IEnumerable, System.Xml.IXmlNamespaceResolver
type XmlNamespaceManager = class
    interface IXmlNamespaceResolver
    interface IEnumerable
Public Class XmlNamespaceManager
Implements IEnumerable, IXmlNamespaceResolver
Наследование
XmlNamespaceManager
Производный
Реализации

Комментарии

Общие сведения о том, как пространства имен объявляются и используются в XML-документах, см. в разделе Управление пространствами имен в XML-документе.For general information about how namespaces are declared and used in XML documents, see Managing Namespaces in an XML Document.

XmlNamespaceManagerсохраняет префиксы и пространства имен в виде строк.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 Метод AddNamespaceAddNamespace method
Удаление пространства именRemove a namespace Метод RemoveNamespaceRemoveNamespace method
Поиск URI для пространства имен по умолчаниюFind the URI for the default namespace СвойствоDefaultNamespaceDefaultNamespace property
Поиск URI для префикса пространства именFind the URI for a namespace prefix Метод LookupNamespaceLookupNamespace method
Поиск префикса для URI-кодов пространства именFind the prefix for a namespace URI Метод LookupPrefixLookupPrefix method
Получение списка пространств имен, которые есть на текущем узлеGet a list of namespaces in the current node Метод GetNamespacesInScopeGetNamespacesInScope method
Задание области видимости пространства именScope a namespace Методы PushScope и PopScopePushScope and PopScope methods
Проверка того, определен ли префикс в текущей областиCheck whether a prefix is defined in the current scope Метод HasNamespaceHasNamespace method
Получение таблицы имен используется для поиска префиксов и URIGet the name table used to look up prefixes and URIs СвойствоNameTableNameTable property

Чтобы добавить пространства имен в диспетчер пространств имен, создайте XmlNamespaceManager объект, а затем AddNamespace используйте метод.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.

При создании диспетчера пространства имен можно указать XmlReaderтаблицу имен из класса, XsltContextили XmlDocument , а затем использовать AddNamespace метод для добавления пространств имен.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.

Вы можете предоставить XmlNamespaceManager объект в качестве параметра SelectNodes для метода XmlDocument или SelectSingleNode класса, чтобы выполнять выражения запроса XPath, ссылающиеся на имена элементов и атрибутов, уточненные пространством имен.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.

Диспетчер пространства имен предполагает, что префиксы и пространства имен уже проверены и соответствуют спецификации пространств имен W3C .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.

Диспетчер пространств имен разбивает строки при их добавлении с помощью AddNamespace метода и при выполнении уточняющего запроса LookupNamespace с помощью метода или LookupPrefix .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. Можно выполнять перебор сведений, сохраненных в диспетчере пространства имен, с помощью foreach конструкции.You can loop through the information saved in the namespace manager by using the foreach construct. Например, при создании диспетчера пространства имен с именем nsmanagerможно выполнить итерацию по таблице с помощью. foreach (String prefix in nsmanager)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.

В следующем примере кода показано, как привязать префикс xsd с http://www.w3.org/2001/XMLSchema URI пространства имен и добавить его в диспетчер пространств имен: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");  

Затем можно найти пространство имен с помощью LookupNamespace метода:You can then find the namespace by using the LookupNamespace method:

nsmgr.LookupNamespace("xsd")  
nsmgr.LookupNamespace("xsd");  

В следующем примере создается XmlNamespaceManager с помощью таблицы name из средства чтения XML: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)));  
}  

Конструкторы

XmlNamespaceManager(XmlNameTable)

Инициализирует новый экземпляр класса XmlNamespaceManager указанным значением XmlNameTable.Initializes a new instance of the XmlNamespaceManager class with the specified XmlNameTable.

Свойства

DefaultNamespace

Получает универсальный код ресурса (URI) для пространства имен по умолчанию.Gets the namespace URI for the default namespace.

NameTable

Получает объект XmlNameTable, связанный с данным объектом.Gets the XmlNameTable associated with this object.

Методы

AddNamespace(String, String)

Добавляет заданное пространство имен в коллекцию.Adds the given namespace to the collection.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetEnumerator()

Возвращает перечислитель для выполнения итерации по пространствам имен в объекте XmlNamespaceManager.Returns an enumerator to use to iterate through the namespaces in the XmlNamespaceManager.

GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetNamespacesInScope(XmlNamespaceScope)

Получает коллекцию пространств имен, ключами которой являются префиксы, используемые для перечисления пространств имен, которые в настоящее время находятся в области.Gets a collection of namespace names keyed by prefix which can be used to enumerate the namespaces currently in scope.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
HasNamespace(String)

Получает значение, указывающее, определено ли пространство имен для указанного префикса в текущей области, занесенной в стек.Gets a value indicating whether the supplied prefix has a namespace defined for the current pushed scope.

LookupNamespace(String)

Возвращает URI пространства имен для указанного префикса.Gets the namespace URI for the specified prefix.

LookupPrefix(String)

Находит префикс, объявленный для заданного универсального кода ресурса (URI) пространства имен.Finds the prefix declared for the given namespace URI.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от 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.

(Унаследовано от Object)

Методы расширения

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

Применяется к

Дополнительно