Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Древовидная и псевдособытийная модели
Существует три подхода (API) к обработке XML-документов: — DOM (Document Object Model — объектная модель документов) — платформенно-независимый программный интерфейс, позволяющий программам и скриптам управлять содержимым документов HTML и XML, а также изменять их структуру и оформление. Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого содержит элемент, атрибут, текстовый, графический или любой другой объект. Узлы связаны между собой отношениями родитель-потомок. — SAX (Simple API for XML) базируется на модели последовательной одноразовой обработки и не создает внутренних деревьев. При прохождении по XML вызывает соответствующие методы у классов, реализующих интерфейсы, предоставляемые SAX-парсером. — StAX (Streaming API for XML) не создает дерево объектов в памяти, но, в отличие от SAX-парсера, за переход от одной вершины XML к другой отвечает приложение, которое запускает разбор документа. Анализаторы, которые строят древовидную модель, — это DOM-анализаторы. Анализаторы, которые генерируют квазисобытия, — это SAX-анализаторы. Анализаторы, которые ждут команды от приложения для перехода к следующему элементу XML — StAX-анализаторы. В первом случае анализатор строит в памяти объект, представляющий собой дерево из элементов, соответствующее XML-документу. Далее вся работа ведется именно с этим объектом-деревом. Во втором случае анализатор работает следующим образом: при чтении/анализе документа, анализатор вызывает методы, связанные с различными участками XML-файла, а программа, использующая анализатор, решает, как реагировать на тот или иной элемент XML-документа. Так, анализатор будет генерировать событие о том, что он встретил начало документа либо его конец, начало элемента либо его конец, символьную информацию внутри элемента и т. д. Анализатор StAX работает подобно итератору, который указывает на наличие элемента с помощью метода hasNext() и для перехода к следующей вершине использует метод next(). Когда следует использовать DOM, а когда — SAX, StAX анализаторы? DOM-анализаторы следует использовать тогда, когда нужно знать структуру документа и может понадобиться изменять эту структуру либо использовать информацию из XML-документа несколько раз. SAX/StAX-анализаторы используются тогда, когда нужно извлечь информацию о нескольких элементах из XML-файла либо когда информация из документа нужна только один раз.
|