Обработка XML-документов в Java EE

Преимущества использования XML-документов для организации хранилищ слабо структурированных электронных данных. Ознакомление с рецепторами программирования обработки текстовых файлов в веб-приложениях Java EE, функционирующих на базе "Glassfish v3".

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 29.04.2017
Размер файла 215,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

УРАЛЬСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ

ОБРАБОТКА XML-ДОКУМЕНТОВ В JAVA EE

Суханов Владимир Иванович

XML-документы получили широкое применение в различных областях информационных технологий, стали для многих применений индустриальным стандартом хранения, обмена и обработки данных не реляционного типа. Разработчиков информационных технологий привлекает их высокая гибкость, независимость от платформы и хорошая интерпретируемость кода как программно, так и человеком, что придает им черты универсального представления информации.

Разработка приложений для обслуживания манипуляций XML-документов, их схем и запросов в рамках интегрированного веб-приложения на платформе Java EE 6 требует привлечения различных инструментов программирования в рамках одного проекта. Мировое сообщество программистов, поддерживающих идеологию открытого кода, накопило большое разнообразие инструментальных средств работы с XML. Однако будучи законченными продуктами для решения локальных задач эти инструменты требуется интегрировать в сложные проекты, необходимые конечным пользователям с использованием веб-интерфейсов. Ниже описываются средства, достаточные для разработки простого репозитория XML-документов, поддерживающего операции хранения и манипулирования документами, основанные на современной технологии Java EE 6.

Репозиторий XML-документов. Простейший репозиторий может выполнен как реляционная таблица с полями, описывающими метаданные документа, и полем типа XML или Text для хранения самого документа. При этом следует выбирать решение в рамках которого удастся организовать исполнение запросов на языке XQuery. Таким решением с открытым кодом может служить СУБД Sedna XML Database, имеющая встроенный процессор исполнения запросов на языке XQuery и программный интерфейс для его использования на языке Java. Хранилище СУБД Sedna является одноуровневой коллекцией документов, именуемых простым именем, и к сожалению, не позволяет в удобной для обработки форме хранить метаданные XML-документов, поэтому целесообразно их хранить в реляционной таблице, например, в СУБД PostgreSQL, а сами документы в Sedna, имея ссылку на них в таблице метаданных PostgreSQL как обычную строку символов - имя записи в Sedna.

Загрузка документа производится командой консоли или из байтового массива bytesd в программе с использованием API Java:

Веб-интерфейс для загрузки файла от пользователя с использованием свободной библиотеки Tomahawk for JSF 2.0 из архива выглядит так. В файл конфигурации web.xml добавляются описания фильтров:

Обработка запросов на языке XQuery.

При работе с XML-документами для извлечения нужной информации полезным инструментом является язык XQuery. XQuery является языком запросов, извлекающим требуемую информацию из документов XML. Файл index.xhtml:

Фрагмент обработчика doUpload бина ldr:

Примером запроса является:

Операторы for и let порождают пару для каждой записи item в документе items.xml и books.xml. В каждой паре переменная $i связана с книгой, а $b - с последовательностью, содержащей все продажи для этой книги. Оператор where извлекает только те кортежи, в которых $b содержит более десяти записей. Оператор return для каждой из этих пар генерирует выходной элемент, содержащий номер книги, описание и число продаж.

Для формирования пакета данных на основе запроса можно использовать свободное ПО процессоров XQuery. Одним из таких процессоров является Xqilla version 2.3.0 фирмы Oracle.

Программа позволяет исполнять выражения XQuery и XPath 2 из файла. Программа распространяется под лицензией Apache License, Version 2.0. XQilla - библиотека с открытым исходным кодом (ASL2.0) для обработки XQuery с поддержкой новых функций XQuery Update Facility - расширенного языка XQuery. XQilla написана на C++ и включает в себя исполняемую в командной строке оболочку для исполнения запросов к XML-контенту в локальной файловой системе. Библиотека активно развивается и часть продукта поддерживает Oracle, Berkeley DB XML.

Другой консольный процессор Zorba XQuery Engine, Version: 2.2.0 распространяется под лицензией Apache License Version 2.0. Устанавливается из репозитория операционной системы. Например, для ОС Linux Fedora 16 процессор Zorba устанавливается командой yum install zorba. Поддерживает XQuery версии 3.0.

Отличительной особенностью упомянутых процессоров является консольный режим их исполнения и обработка документов, хранимых в отдельных файлах, как и самих запросов. Эти обстоятельства затрудняют интеграцию процессоров в веб-приложения, исполняемые на стороне сервера. Причиной являются возможные коллизии в именах файлов, требуемых запросами, поступающими одновременно на сервер от различных клиентов приложения, что требует блокировок и вызывает замедление реакции сервера. Пусть xmlinstance.getNameDoc содержит имя документа в БД Sedna, который необходимо обработать запросом XQuery, а xmlquery.getquery - текст запроса. Выбор экземпляров соответствующих сущностей на странице пользователя можно организовать с использованием компонент вида:

Где свойства, например, кодируются:

В этом смысле более подходящим инструментом является встроенный в API Sedna процессор обработки запросов XQuery, который работает с документами, хранимыми в этой же СУБД. Для его работы необходима библиотека SR-000225 XQuery API for Java. XQJ API for Sedna - позволяет с использованием внешних переменных задавать исходный документ для анализа, что дает возможность создавать настраиваемые на входной документ запросы, которые в свою очередь можно хранить в отдельной таблице репозитория в СУБД PostgreSQL.

С использованных приведенных выше приемов программирования обработчик кнопки выполнения запросов будет иметь следующий вид:

Текст запроса в базе данных в этом случае должен содержать объявление внешней переменной с именем $docname как показано в примере:

Пользователь в ответ на запрос получит приглашение указать имя файла, где будут сохранены результаты выполнения запроса.

Заключение

Приведенные приемы программирования задач обработки XML-документов средствами технологии Java EE 6 с использованием стандартной среды разработки Netbeans и веб-сервера GlassFish, дополнительных пакетов Tamahawk, Sedna и XQJ позволяют разрабатывать репозитории XML-документов для манипулирвания документами в целом, так и выборками нужной массовым пользователям информации с использованием мощного языка запросов на языке XQuery, по своим возможностям значительно превышающим язык SQL для реляционных баз данных.

Это обстоятельство делает перспективным использование XML-технологий для организации хранилищ слабо структурированных данных и обмена различной информацией между пользователями без предварительных соглашений о её структуре.

Список литературы

1. Основы использования XML-схем для определения элементов (Электронный ресурс). электронный программирование файл

2. XQuery: язык запросов XML (Электронный ресурс).

3. XML Schema (XML схема) - описание структуры XML-документов (Электронное издание).

4. The Java EE 6 Tutorial, Volume II Advanced Topics (Электронный ресурс) Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 820-7628-10 December 2009, 21.11.2012.

Размещено на Allbest.ru

...

Подобные документы

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

  • История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.

    курсовая работа [795,9 K], добавлен 14.12.2012

  • Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.

    курсовая работа [508,1 K], добавлен 10.11.2014

  • Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.

    курсовая работа [962,8 K], добавлен 13.01.2016

  • Язык программирования Java, история и предпосылки его создания. Переменные, именованные константы, массивы, перечисления. Интерфейсы и обратные вызовы в Java. Удаленный вызов процедуры: общие сведения. Передача параметров при удаленном вызове процедур.

    курс лекций [526,7 K], добавлен 24.06.2009

  • Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.

    курсовая работа [208,6 K], добавлен 03.12.2013

  • Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.

    курсовая работа [197,5 K], добавлен 19.11.2009

  • Особенности работы с графическими изображениями Java Script. Способы динамического управления слоями. Рассмотрение примеров использования операторов цикла. Характеристика свойств объекта form: encoding, elements, checkbox. Возможности документов HTML.

    курсовая работа [167,7 K], добавлен 09.02.2013

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Java DataBase Connectivity как платформенно-независимая технология, позволяющая из программы на Java получить доступ к любой SQL-совместимой базе данных, принцип ее работы и использование. Порядок построения данной системы, основные классы и интерфейсы.

    презентация [156,6 K], добавлен 21.06.2014

  • Преимущество использования программ, написанных на Java, требования к ним и настройки на клиентском ПК. Развертывание и последующее "автоматическое" обновление версий GUI клиента с помощью использования технологии Java Web Start в среде Windows.

    реферат [33,2 K], добавлен 16.05.2011

  • Методология объектно-ориентированного программирования в Java. Понятия класса, объекта и объектной переменной. Динамическая и статическая объектные модели. Логическое структурирование приложения. Наследование в Java. Отличия интерфейсов от классов.

    курс лекций [547,2 K], добавлен 01.05.2014

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

  • Язык Java как простой, обьектно-ориентированный, многопоточный язык программирования, разработанный компанией Sun Microsystems для расширения возможностей сети Internet. Типы данных, лексика и управляющие структуры данного языка программирования.

    презентация [46,1 K], добавлен 25.04.2014

  • Ознакомление со способом вывода графики в приложениях с использованием метода paintComponent. Рассмотрение основных характеристик компонента JPanel. Правила вывода геометрических фигур в Java; выбор параметров начертания линий, шрифта и заливки.

    лекция [521,5 K], добавлен 01.05.2014

  • Описание пакета прикладной программы Net Beans 8.1. Разработка пользовательского интерфейса апплета. Создание рамочных окон на базе фреймов библиотеки java.swing. Изменение цвета текстовых данных. Проектирование и создание инфологической модели апплета.

    контрольная работа [1,8 M], добавлен 11.07.2016

  • Разработка технологии и средств реализации Java-приложения, сокращающих трудоемкость создания и гибкость модификации интерфейса пользователя. Использование XML-документов для описания внешнего представления, элементов управления и событий экранных форм.

    дипломная работа [2,8 M], добавлен 19.08.2011

  • Принцип работы Java. Аплеты как особенность Java-технологии, характеристика методов их защиты. Модель безопасности JDK1.2 и концепция "песочницы". Иерархия криптографических сервисов, алгоритмов. Объектная организация криптографической подсистемы Java.

    реферат [54,8 K], добавлен 09.09.2015

  • Принцип работы и назначение сервлетов Java, их значение в повышении функциональности Web-серверов и улучшении их программирования, преимущества и недостатки использования. Способы вызова сервлетов с браузера и страницы. Запись и чтение атрибутов сессии.

    лабораторная работа [80,2 K], добавлен 30.06.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.