Document Object Model

advertisement
Программный доступ к XML
DOM, SAX, .NET
суббота, 7 мая 2016 г.
Document Object Model
DOM (Document Object Model) –
интерфейс программирования,
обеспечивающий обработку XMLдокументов и стандартизованный W3C
Модель W3C DOM
Обработка документа в виде дерева, состоящего из узлов.
Возможные типы узлов:
элемент;
атрибут;
текст;
раздел CDATA;
инструкция по обработке;
комментарий;
документ
тип документа и т.д.
Объекты XML DOM
Document – объект докмента
DocumentType – ссылка на DTD
Element - элемент
Attr - атрибут
ProcessInsrtuction – инструкция по обработке
Comment - комментарий
Text – текстовое содержимое элемента или атрибута
CDATASection – ссылка на раздел CDATA
Node – отдельный узел в дереве документа;
NodeList – список узловых объектов
NamedNodeMap – обеспечивает доступ по имени
Реализация Microsoft
DOMDocument – верхний узел дерева XML DOM
XMLDOMNode – отдельный узел в дереве документа
XMLDOMNodeList – список узловых объектов (с возможностью
индексного доступа)
XMLDOMNamedNodeMap – обеспечивает доступ по имени
XMLDOMParseError – информирует о последней ошибке в документе
XMLHTTPRequest – обеспечивает взаимодействие с HTTP-серверами
XSLRuntime – поддерживает методы, специфичные для XSL
Для остальных объектов – добавляем XMLDOM в начале по сравнению
с рекомендациями W3C
Другие возможности XML DOM
Выборка элементов по имени:
XMLdoc.GetElementByTagName (“<имя элемента>”);
Изменение XML-содержимого с помощью методов:
createElement, insertBefore, createTextNode, appendChid
Simple API for XML
Интерфейс SAX (Simple API for XML) основан на
событии. Если анализатор SAX встречает элемент
или инструкцию по обработке, то воспринимает их в
качестве событий, вызывая соответствующий код.
Как результат, при помощи SAX можно быстрее
прочитать XML-документ, но нельзя его никак
модифицировать.
XML и платформа .NET
XmlReader – абстрактный класс, выполняющий
чтение и обеспечивающий быструю доставку
некэшированных XML-данных. Представляет собой
однонаправленный синтаксический анализатор,
подобный SAX.
XmlTextReader – расширяет возможности класса
XmlReader. Обеспечивает однонаправленный
потоковый доступ к XML-данным.
XML и платформа .NET
XmlWriter – абстрактный класс, выполняющий запись
данных и обеспечивающий быструю доставку
некэшированных данных XML в виде потока или файла.
XmlTextWriter – расширяет возможности класса
XmlWriter. Обеспечивает быструю однонаправленную
генерацию потоков XML.
XML и платформа .NET
XmlNode – абстрактный класс, представляющий
один узел в XML-документе. Базовый класс для ряда
других классов пространства имён XML в .NET.
XmlDocument – расширяет класс XmlNode.
Представляет собой реализацию W3C DOM в .NET.
XmlDataDocument – расширяет класс XmlDocument.
Используется при работе с ADO.NET и позволяет
смешивать XML и реляционные данные в одном
представлении.
XML и платформа .NET
XmlResolver – абстрактный класс, решает задачу
использования внешних ресурсов на базе XML
(например, шаблонов DTD, схем). Также служит для
обработки элементов типа include или import.
XmlUrlResolver – расширяет класс XmlResolver.
Решает задачу использования внешних ресурсов,
именованных при помощи URI/URL.
XML и платформа .NET
XPathDocument – класс реализует чтение XMLдокумента. В отличие от XmlReader, не является
потоковым. Основное назначение – создание
навигаторов.
XPathNavigator – содержит методы, необходимые
для перемещения и выбора элементов, в том числе с
использованием выражений XPath.
Download