Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java_sp.doc
Скачиваний:
31
Добавлен:
29.10.2018
Размер:
1.12 Mб
Скачать

22. Работа с xml документами посредством dom.

Для программной обработки XML документов используется модель XML DOM, которая определяет объекты и свойства всех XML элементов и методы (интерфейс) для доступа к ним. Иначе говоря, XML DOM описывает каким образом необходимо получать, изменять, добавлять и удалять XML элементы.

Согласно DOM:

  • все, что содержится внутри XML документа, является узлом;

  • весь документ представляется узлом документа;

  • каждый XML элемент – узел элемента;

  • текст внутри XML элементов - текстовый узел;

  • каждый атрибут - узел атрибута;

  • комментарии - узлы комментариев.

XML документ в соответствии с моделью XML DOM представляется как дерево из узлов, при этом:

  • Все узлы дерева находятся в определенных отношениях друг с другом.

  • Все узлы доступны через дерево. Их содержимое может быть изменено, удалено; новые элементы могут быть добавлены в дерево.

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

  • Все узлы находятся в иерархических отношениях между собой.

Эти отношения описываются с помощью понятий родитель, дочерний и потомок (все дочерние на одном уровне).

23. Сравнение sax и dom подходов к обработке xml документов.

В состав JAXP входят два механизма для анализа XML-данных:

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

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

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

SAX-анализ, в отличие от DOM, очень экономно использует память, так как для выполнения событийно-ориентированной обработки не требуется загружать весь документ в память. Кроме того, анализ документа может быть выполнен асинхронно: он может считываться блоками из потока ввода, связанного например, с сетевым сокетом, а анализ может выполняться по мере поступления блоков, выделения очередных фрагментов XML и обработки соответствующих событий. Но такая природа SAX-анализа исключает возможность модификации документа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]