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) |
Методы расширения
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
OfType<TResult>(IEnumerable) |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
AsParallel(IEnumerable) |
Позволяет осуществлять параллельный запрос. |
AsQueryable(IEnumerable) |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |