Программный доступ к 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.