Главная страница
Навигация по странице:

  • XML-процессоры

  • XmlReader

  • XmlNode

  • XmlDocument

  • Document DocumentFragment EntityReference Элемент Attribute (XElement Dynamic Property)

  • XmlReader и XmlWriter

  • XPathNavigator

  • МУ_ЛР_ЛиПОАС. Методические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем


    Скачать 2.76 Mb.
    НазваниеМетодические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем
    Дата12.04.2023
    Размер2.76 Mb.
    Формат файлаdoc
    Имя файлаМУ_ЛР_ЛиПОАС.doc
    ТипМетодические указания
    #1057976
    страница12 из 32
    1   ...   8   9   10   11   12   13   14   15   ...   32

    2.10. Программная обработка XML-документов


    Приложения, работающие с XML-документами, получают доступ к их содержимому и структуре путем использования специального программного компонента — XML-процессора (XML-анализатора). Следует отметить, что приложения работают не непосредственно с XML-документом, а с его информационным пространством XML Infoset, получаемым в результате разбора XML-документа XML-процессом. Таким образом, XML-процессор предназначен для анализа XML-документа, извлечения данных и передачи их на обработку в прикладную программу. XML-процессоры поддерживают механизм XML Namespace (спецификация W3C XML Namespaces 1.0) и обеспечивают проверку структурной и синтаксической корректности XML-документов.

    XML-процессоры

    Обрабатывая XML-документ, XML-процессоры представляют его структуру в виде упорядоченной модели данных, доступ к которой осуществляется с помощью стандартных интерфейсов прикладного программирования. Существуют два основных типа XML-процессоров — объектные (DOM) и потоковые (SAX).

    Объектный анализатор строит в собственном пространстве памяти иерархическую модель разбираемого документа (Document Object Model, DOM), доступ к элементам которой прикладная программа получает с помощью DOM-интерфейсов. Основным преимуществом объектного анализатора является то, что он сразу предоставляет прикладной программе всю структуру XML-документа, позволяя ее анализировать в произвольном порядке.

    Потоковый процессор является событийно управляемым и анализирует документ последовательно в режиме реального времени, что позволяет существенно экономить ресурсы памяти. Для доступа к элементам структуры документа прикладная программа в этом случае использует SAX (Simple API for XML).

    2.11. Обработка XML-данных с использованием модели DOM


    Модель DOM рассматривает XML-данные как стандартный набор объектов и используется для обработки XML-данных в памяти. Пространство имен System.Xml обеспечивает программное представление XML-документов, фрагментов, узлов и наборов узлов. Оно основывается на рекомендациях базовой модели DOM уровня 1 и модели DOM уровня 2 консорциума W3C.

    Класс XmlDocument представляет XML-документ. Он включает элементы для получения и создания всех других XML-объектов. С помощью класса XmlDocument и связанных с ним классов можно конструировать XML-документы, загружать и обращаться к данным, изменять данные и сохранять изменения

    Класс XML DOM является представлением XML-документа в памяти. Модель DOM позволяет читать, обрабатывать и изменять XML-документ программным образом. Класс XmlReader также читает XML, но предоставляет только последовательный доступ для чтения без поддержки кэширования. Это значит, что XmlReader не позволит изменять значения атрибутов или содержимое элемента, а также вставлять и удалять узлы. Изменение - основная функция модели DOM. Это стандартизованный, структурированный способ представления XML-данных в памяти, хотя на самом деле данные XML хранятся в файлах и пересылаются из других объектов в строковом виде. Далее приведен пример XML-данных.

    2.12. Входные данные








    Carson

    31.95

    05/01/2001





    MSPress

    WA





    Далее показано, какая структура будет создана в памяти, когда эти XML-данные считываются в модель структуры DOM.

    Структура XML-документа

    Каждый круг на этой иллюстрации представляет собой узел в структуре XML-документа, называемый объектом XmlNode. Объект XmlNode является базовым объектом дерева DOM. Класс XmlDocument, расширяющий класс XmlNode, поддерживает методы для операций над документом в целом (например, для загрузки его в память или сохранения XML в файл). Кроме того, XmlDocument предоставляет возможности для просмотра узлов всего XML-документа и выполнения операций над ними. И XmlNode, и XmlDocument обладают улучшенной производительностью, расширенной функциональностью и содержат методы и свойства, которые позволяют следующее.

    • Получать доступ к DOM-специфичным узлам, например к узлам элементов, узлам ссылок на сущности и т. п., и изменять эти узлы.

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

    Объекты Node обладают набором методов и свойств, а также хорошо определенных базовых характеристик. Вот некоторые из этих характеристик:

    • У каждого узла есть один родительский узел, то есть узел, находящийся непосредственно над данным. Единственный узел, не имеющий родителя - корневой узел документа, так как это узел верхнего уровня, содержащий сам документ и его фрагменты.

    • У большинства узлов может быть несколько дочерних узлов, то есть узлов, расположенных непосредственно под ними. Далее следует список типов узлов, которые могут иметь дочерние узлы:

      • Document

      • DocumentFragment

      • EntityReference

      • Элемент

      • Attribute (XElement Dynamic Property) (Attribute (динамическое свойство XElement))

    Узлы XmlDeclaration, Notation, Entity, CDATASection, Text, Comment, ProcessingInstruction и DocumentType не могут иметь дочерних узлов.

    Одна из характеристик модели DOM - способ обработки атрибутов. Атрибуты не являются узлами, состоящими в родительских, дочерних и одноуровневых связях. Атрибуты считаются собственностью узла элемента и представляют собой пару «имя-значение». Например, если XML-данные представляют собой конструкцию format="dollar, связанную с элементом price, слово format является именем атрибута, а значением атрибута format является dollar. Чтобы получить атрибут format="dollar" узла price, воспользуйтесь методом GetAttribute, когда курсор расположен в узле элемента price.

    По мере считывания XML-документа в память создаются узлы. Узлы бывают разных типов. Правила и синтаксис XML-элемента отличаются от правил и синтаксиса инструкции по обработке. Поэтому по мере считывания разнообразных данных каждому узлу присваивается тип. Тип узла определяет его характеристики и функциональность.

    Корпорация Майкрософт расширила API-интерфейсы, доступные в DOM уровней 1 и 2 W3C, чтобы облегчить работу с XML-документами. Дополнительные классы, методы и свойства полностью совместимы со стандартами W3C и добавляют дополнительную функциональность по сравнению с возможностями W3C XML DOM. Новые классы позволяют получить доступ к реляционным данным, предоставляют методы синхронизации с данными ADO.NET, одновременно делая эти данные доступными в виде XML.

    Модель DOM чрезвычайно полезна для считывания XML-данных в память, изменения их структуры, добавления и удаления узлов, изменения данных, принадлежащих узлу (например, текста, содержащегося в документе). Однако существуют и другие классы, которые в некоторых ситуациях работают быстрее модели DOM. Классы XmlReader и XmlWriter предоставляют быстрый последовательный потоковый доступ к XML без поддержки кэширования. Если вам нужен произвольный доступ с моделью курсора и XPath, используйте класс XPathNavigator.
    1   ...   8   9   10   11   12   13   14   15   ...   32


    написать администратору сайта