Поделиться через


XmlNamespaceManager Класс

Определение

Разрешает, добавляет и удаляет пространства имен в коллекцию и предоставляет управление областями для этих пространств имен.

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
Наследование
XmlNamespaceManager
Производный
Реализации

Комментарии

Общие сведения о том, как пространства имен объявлены и используются в XML-документах, см. в разделе "Управление пространствами имен" в XML-документе.

XmlNamespaceManager сохраняет префиксы и пространства имен в виде строк. Ниже приведена сводка по задачам управления и подстановки, которые можно выполнять с помощью этого класса. Дополнительные сведения и примеры см. по ссылкам на эталонную страницу для каждого метода или свойства.

Кому Использование
Добавление пространства имен AddNamespaceМетод
Удалить пространство имен RemoveNamespaceМетод
Найдите URI для пространства имен по умолчанию Свойство DefaultNamespace
Найти URI для префикса пространства имен LookupNamespaceМетод
Найдите префикс для URI пространства имен LookupPrefixМетод
Получите список пространств имен в текущем узле GetNamespacesInScopeМетод
Определение области пространства имен методы PushScope и PopScope
Проверьте, определен ли префикс в текущей области HasNamespaceМетод
Получение таблицы имен, используемой для поиска префиксов и URI Свойство NameTable

Чтобы добавить пространства имен в диспетчер пространства имен, создайте XmlNamespaceManager объект и используйте AddNamespace этот метод. Пары пространств имен и префиксов по умолчанию автоматически добавляются в диспетчер пространств имен при создании.

При создании диспетчера пространств имен можно указать таблицу имен из XmlReaderXsltContextкласса или XmlDocument класса, а затем использовать AddNamespace метод для добавления пространств имен.

Объект можно указать XmlNamespaceManager в качестве параметра SelectNodes или SelectSingleNode методу XmlDocument класса для выполнения выражений запросов XPath, которые ссылались на имена элементов и атрибутов, отвечающих пространству имен.

Диспетчер пространств имен предполагает, что префиксы и пространства имен уже проверены и соответствуют спецификации пространств имен W3C . Диспетчер пространств имен не выполняет никаких проверок.

Диспетчер пространства имен атомизирует строки при добавлении с помощью AddNamespace метода и при выполнении подстановки с помощью LookupNamespace метода или LookupPrefix метода.

Диспетчер пространства имен реализует поддержку перечисления в дополнение к добавлению и получению пространств имен. Вы можете прокрутить сведения, сохраненные в диспетчере foreach пространств имен, с помощью конструкции. Например, при создании диспетчера пространств имен с именем nsmanagerможно выполнить итерацию по таблице с помощью foreach (String prefix in nsmanager).

Так как диспетчер пространств имен предоставляет сравнение строк с префиксом и пространствами имен в качестве объектов, при использовании диспетчера пространств имен при прямом сравнении строки происходит улучшение производительности.

В следующем примере кода показано, как привязать префикс xsd с URI http://www.w3.org/2001/XMLSchema пространства имен и добавить его в диспетчер пространств имен:

nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema")
nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");

Затем можно найти пространство имен с помощью LookupNamespace метода:

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

В следующем примере создается XmlNamespaceManager таблица имен из средства чтения XML:

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.

Свойства

Имя Описание
DefaultNamespace

Возвращает универсальный код ресурса (URI) пространства имен для пространства имен по умолчанию.

NameTable

Возвращает связанный XmlNameTable с этим объектом объект.

Методы

Имя Описание
AddNamespace(String, String)

Добавляет заданное пространство имен в коллекцию.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

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

Возвращает перечислитель, используемый для итерации через пространства имен в объекте XmlNamespaceManager.

GetHashCode()

Служит хэш-функцией по умолчанию.

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

Возвращает коллекцию имен пространств имен, ключом которых является префикс, который можно использовать для перечисления пространств имен в настоящее время в области.

GetType()

Возвращает Type текущего экземпляра.

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

Возвращает значение, указывающее, имеет ли предоставленный префикс пространство имен, определенное для текущей принудительной области.

LookupNamespace(String)

Возвращает универсальный код ресурса (URI) пространства имен для указанного префикса.

LookupPrefix(String)

Находит префикс, объявленный для заданного URI пространства имен.

MemberwiseClone()

Создает неглубокую копию текущей Object.

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

Выводит область пространства имен из стека.

PushScope()

Отправляет область пространства имен в стек.

RemoveNamespace(String, String)

Удаляет заданное пространство имен для заданного префикса.

ToString()

Возвращает строку, представляющую текущий объект.

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

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

Имя Описание
AsParallel(IEnumerable)

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

Приведение элементов IEnumerable к указанному типу.

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

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

См. также раздел