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 на основе указанного типа. |