Организация W3C разработала стандарт XForms для представления и сбора данных форм. Как говорится в Рекомендации W3C (см. Ресурсы), формы XForms должны стать "формами для Web нового поколения". Рекомендация гласит: "Разделяя формы XHTML на три части — модель XForms, данные и интерфейс пользователя, — стандарт отделяет представление от содержания, допускает многократное использование, обеспечивает строгую типизацию данных — что уменьшает число обращений к серверу, — а также гарантирует независимость от устройства и уменьшает потребность в сценариях". Документы XForms основаны на модели данных, которая содержит одно или несколько включений документов XML. Форма манипулирует включенными документами и обеспечивает передачу XML в центральную систему.
Инструментарий XML Forms Generator предназначен для быстрой разработки форм. Он позволяет быстро и автоматически создавать правильно построенные работоспособные формы, содержащие разметку XForms, встроенную в документ XHTML (далее будем называть эту комбинацию "XHTML/XForm"). Входными данными для генерации форм могут быть данные XML с соответствующей схемой XML или без нее или документ WSDL.
XML Forms Generator, плагин для инструментальной среды Eclipse, впервые появился на сайте alphaWorks в апреле 2005 года. Ссылки на сайт загрузки Eclipse Workbench приведены в Ресурсах, а найти XML Forms Generator, подробнее узнать об этом инструменте, загрузить и установить его, можно на странице alphaWorks.
Data Studio и Data Web Services
IBM Data Studio – это интегрированная среда управления данными. Она предоставляет полную среду разработки и тестирования для создания объектов базы данных, запросов, логики базы данных и приложений pureQuery. С помощью инструментария Data Studio можно быстро разрабатывать приложения базы данных, пользуясь встроенным редактором запросов SQL и XQuery, легко оптимизировать приложения и запросы, создавать и тестировать хранимые процедуры (в коде Java™ и SQL) с помощью интерактивного отладчика программ и быстро разрабатывать или настраивать код SQL внутри Java-приложений.
Решение IBM Data Studio содержит множество новых функций, в числе которых и поддержка Data Web Services. Data Web Services — это источник Web-сервисов нового поколения для серверов баз данных IBM. Data Web Services обеспечивает интерфейс Web-сервисов, который поддерживает сервисы стиля REST (связка HTTP GET/POST), Web-сервисы SOAP-поверх-HTTP и автоматическую генерацию WSDL. Data Web Services поддерживает семейства СУБД IBM DB2®, IBM Informix® Dynamic Server (IDS) и многие популярные Web-серверы, такие как Apache Tomcat v5.5, IBM WebSphere® Application Server V6.1 и IBM WebSphere Application Server Community Edition V1.1. Подробнее узнать о том, как использовать Data Studio для создания Data Web Services, можно из статьи, опубликованной на developerWorks (см. Ресурсы).
Зачем интегрировать XFG в Data Studio
Data Studio может быть очень полезна при разработке Data Web Services на уровнях базы данных и связующего ПО, а XFG – повысить эффективность разработки пользовательского интерфейса на базе XForms, генерируя код из файлов WSDL. Поэтому мы интегрируем XFG с Data Studio, чтобы реализовать автоматический и быстрый процесс разработки, охватывающий базы данных, Web-сервисы и пользовательский интерфейс на базе XForms, создавая универсальное решение с использованием возможностей Data Studio и XFG.
Интеграция XFG и Data Studio дает следующие очевидные преимущества:
- XFG представляет собой инструмент быстрого моделирования и визуализации XML-сообщений для проектов, связанных с базами данных, реализуемых в Data Studio.
- XFG – это дополнение к Data Studio для быстрой разработки пользовательского интерфейса.
- XFG может визуализировать данные DB2 pureXML в формы XHTML/XForms.
- XFG генерирует из метаданных базы данных и XML-схемы информацию для выполнения проверки кода.
- Интеграция может в значительной мере уменьшить трудоемкость разработки и сделать ее удобнее для пользователя.
И XFG, и Data Studio представляют собой плагины Eclipse, что облегчает интеграцию. Для облегчения интеграции XFG с Data Studio загрузите плагины XFG с сайта обновлений и установите их на Eclipse (см. Ресурсы, XML Forms Generator.)
Как XFG и Data Studio работают вместе
Этот раздел знакомит читателей с тем, как XFG и Data Studio работают вместе, при создании Web-приложений. На рисунке 1 показаны архитектура и взаимодействия между XFG и Data Studio.
Рисунок 1. Схема архитектуры и взаимодействия Data Studio и XFG
В ходе взаимодействия Data Studio генерирует приложение Data Web Services по метаданным базы данных. Затем XFG использует Data Web Services и метаданные базы данных для генерации XHTML/XForms Наконец, сгенерированный код XHTML/XForm устанавливает связь с приложением Data Web Services через REST/SOAP
Чтобы подробно проиллюстрировать взаимодействие Studio и XFG, создадим миниприложение для управления информацией о пациентах на базе структуры из приведенной ниже таблицы.
| Имя столбца | Тип столбца | Обязательный | Описание |
|---|---|---|---|
| ID | INTEGER | Да | Уникальный идентификатор для каждой записи, внесенной в таблицу. |
| NAME | VARCHAR(10) | Да | Имя каждого пациента. |
| BIRTHDAY | DATE | Да | Дата рождения каждого пациента. |
| HEIGHT | DECIMAL | Да | Рост каждого пациента. |
| WEIGHT | DECIMAL | Да | Вес каждого пациента. |
| DESCRIPTION | VARCHAR(10) | Да | Краткое описание каждого пациента. |
Чтобы испытать этот пример, загрузите бесплатную версию DB2 Express-C (см.Ресурсы). При помощи DB2 Control Center создайте базу данных, а затем таблицу, как показано на рис. 2. В данном случае мы создали таблицу с именем "PATIENT" на основе схемы "DB2ADMIN".
После создания таблицы в DB2 воспользуемся Data Studio, чтобы создать приложение Data Web Services. Для этого в Data Studio используется создаваемый пользователем код SQL, который определяет Web-сервис (либо один оператор SQL, как у нас, либо хранимая процедура). Оператор SQL отображает все параметры на входные параметры в WSDL приложения Data Web Services. И Data Studio, и XFG поддерживают два типа параметров: безымянные параметры и именованные параметры.
При использовании безымянных параметров оператор SQL будет выглядеть приблизительно так:
INSERT INTO DB2ADMIN.PATIENT (NAME, BIRTHDAY, HEIGHT, WEIGHT, DESCRIPTION) VALUES (?,?,?,?,?)
Обратите внимание на то, что значения представлены заполнителями переменных (?,?,?,?,?).
При использовании именованных параметров оператор SQL может выглядеть так, как показано ниже, со списком именованных переменных, определяющим подставляемые значения:
INSERT INTO DB2ADMIN.PATIENT (NAME, BIRTHDAY, HEIGHT, WEIGHT, DESCRIPTION) VALUES (:NAME, :BIRTHDAY, :HEIGHT, :WEIGHT, :DESCRIPTION)
При именованных значениях каждая метка в генерируемой форме XHTML/XForm совпадает с именем соответствующего параметра; при безымянных же параметрах каждой метке присваивается имя, например, p1, p2 и т.д. Мы не приводим здесь полного описания всего процесса. Чтобы узнать, как создавать Data Web Services из файла SQL, обращайтесь к Ресурсам. В нашем примере мы создали файл SQL с именем insertPatient.sql, затем создали соответствующий сервис и сгенерировали файл WSDL с именем insertPatient.wsdl.
Создав и установив сервис в Data Studio, можно воспользоваться XFG для генерации XHTML/XForm и соответствующих файлов XML для связи с сервисом.
- В XFG выберите файл insertPatient.wsdl, щелкните правой кнопкой на файле WSDL и выберите мастер Generate XHTML/XForms из меню XForms Generator. На рисунке 2 показан первый шаг мастера:
Рисунок 2. Первый шаг с использованием мастера XFG
На этом шаге требуются имя и пароль пользователя для связи с базой данных. Что касается двух опций, Generate validation information и Retrieve PureXML instance from Database, то обе они используются с поддержкой pureXML в DB2, и мы обсудим это во второй статье данной серии; пока же оставим флажки неустановленными.
- Выберите операцию, для которой XFG будет выполнять генерацию. Выберите операцию insertPatient.
Рисунок 3. Выберите целевую операцию
- Укажите местонахождение генерируемого файла XHTML.
Рисунок 4. Укажите положение целевого файла
- Замените адрес назначения передачи, выделенный на рисунке 5, на адрес разворачиваемого Web-сервиса. Сгенерированная форма XHTML/XForm сможет взаимодействовать с Web-сервисом, только если вы правильно укажете конечный пункт (см. пунктирный прямоугольник).
Рисунок 5. Настройте выходной документ
- Настройте опции создания экземпляра XML, как на рисунке 6.
Рисунок 6. Выберите опции для создания своего экземпляра XML
- Введите или выберите место для экземпляра файла XML.
Рисунок 7. Укажите положение файла XML
- Укажите положение файла XML-схемы.
Рисунок 8. Укажите положение файла XML-схемы
- Наконец, нажмите кнопку Finish, чтобы сгенерировать форму XHTML/XForm. Сгенерированный файл XHTML имеет имя insertPatient.xhtml.
В insertPatient.xhtml XFG сгенерировал модель XForms и соответствующие атрибуты связи, как видно из листинга 1 (см. увеличенную версию листинга 1). В модели XForms данные, сгенерированные XFG, содержатся как присвоенные XForms атрибуты, соответствующие метаданным БД, такие как тип столбца, длина, «обязательный» и т.п.
Листинг 1. Сгенерированная модель XForms и присвоенные атрибуты
Просматривая insertPatient.xhtml в Firefox, вы увидите экран, как на рис. 9 (см. увеличенную версию рис. 9):
Рисунок 9. Отображение insertPatient XHTML/XForms в браузере Firefox
На обработанном представлении insertPatient.xhtml видно, что:
- Все обязательные поля помечены звездочкой. Все поля обязательны, за исключением поля DESCRIPTION.
- Если встречается некорректное значение, метка становится красной, предупреждая пользователя об ошибке при проверке. Как видно на рис.5, параметр HEIGHT имеет десятичное значение, хотя мы ввели строковое. (Если рисунок распечатан в цвете, то видно, что метка окрашена в красный цвет.)
- Каждое поле формы снабжено подсказкой. Видно, что отображается «HEIGHT is (decimal, REQUIRED)».
- Для полей типов Date, Boolean и других, которые можно виртуализировать специальными виджетами, в поле значения при его редактировании показывается соответствующий виджет. Например, для типа Date отображается Date Picker, а для типа Boolean – CheckBox.
При помощи insertPatient.xhtml можно установить связь с Web-сервисом и отправить форму. Web-сервис вызовет оператор SQL INSERT, который вы уже видели, со значениями, взятыми из формы для внесения в таблицу. Можно перейти к таблице центральной БД и проверить ее содержание; вы увидите, что соответствующие записи успешно добавлены в таблицу.
В этой статье мы вкратце описали XForms, XForms Generator, Data Studio и Data Web Services, а затем поговорили о преимуществах интеграции XFG с Data Studio. Мы проиллюстрировали, как XFG может работать с Data Studio, предлагая пользователю возможность легко создать полное решение информационного сервиса. Во второй статье этой серии мы расскажем о поддержке в XFG DB2 pureXML. Мы покажем, как визуализировать экземпляры pureXML в XHTML/XForms с помощью интеграции XFG с Data Studio при поддержке зарегистрированных XML-схем, соответствующих экземплярам pureXML.
Научиться
- Оригинал статьи (EN).
- Интеграция XML Forms Generator и Data Studio, часть 2: поддержка DB2 pureXML в XFG (Xiao Feng Zhao, Qiang Wang, Susan Malaika, Keith Wells; developerWorks; декабрь 2008 г.): во второй части этой серии мы создаем в Data Studio приложение XForm с помощью XML Forms Generator. Можно извлечь XML-схему, сгенерировать информацию о типах и определить граничные условия для создания формы, а затем вставить данные формы в DB2 с помощью Data Web Services.
- Рекомендации W3C по XForms: этот фундамент для построения Web-форм позволяет разделить назначение, представление и результаты при работе с XML.(EN)
- Data Web Services: Build Web services the new way to access IBM database servers:
Service-enabling your access to DB2 и Informix Dynamic Server [новый способ создания Web-сервисов для доступа к серверам базы данных IBM: как сделать доступ к DB2 и Informix Dynamic Server дружественным к сервисам] (Vijay Bommireddipalli, developerWorks, декабрь 2007 г.): этот обзор Data Web Services учит строить Data Web Service и генерировать доступ к базе данных на базе Web-сервисов (EN).
- DB2 XML wiki:
документы, презентации и демонстрации, относящиеся к DB2 9 и pureXML.
В качестве отправной точки авторы рекомендуют демонстрационную программу по DB2 (George Baklarz, developerWorks, отредактирована в феврале 2008 г.) (EN)
- Обзор XML Forms Generator/Data Studio (alphaWorks, ноябрь 2008 г.): плагин для Eclipse, генерирующий формы, соответствующие стандарту XForms 1.0.(EN)
- Руководство по XForms (W3 Schools): научитесь применять в своих приложениях HTML-формы нового поколения – Xforms.(EN)
- Eclipse.org: посетите Web-сайт Eclipse.
Проекты этого Open Source-сообщества нацелены на создание открытой платформы разработки, состоящей из расширяемых структур, инструментов и программ для создания, разработки и администрирования программного обеспечения в течение его жизненного цикла.
- Сертификация по IBM XML: как стать сертифицированным IBM разработчиком XML и связанных технологий.(EN)
- технические мероприятия и Web-трансляции developerWorks: оставайтесь в курсе последних событий в сфере информационных технологий.(EN)
- Магазин технической книги: книги на эти и другие технические темы.(EN)
- Подкасты developerWorks: интересные интервью и дискуссии разработчиков программного обеспечения.(EN)
Получить продукты и технологии
- Проект Web Tools Platform (WTP): Воспользуйтесь проектом Eclipse Web Tools Platform (WTP) и дополните платформу Eclipse инструментами для разработки Web- и Java EE-приложений.
Проект содержит редакторы исходного кода и графические редакторы для разных языков, мастера и встроенные приложения для упрощения разработки, а также инструменты и API для поддержки развертывания, внедрения и тестирования приложений. (EN)
- DB2 Express-C: Загрузите бесплатную ознакомительную версию сервера баз данных DB2 Express 9.(EN)
- DB2 для Linux™, UNIX™ и Windows.: загрузите бесплатную ознакомительную версию интерактивного сервера данных, который сочетает высокую производительность и простоту эксплуатации DB2 с преимуществами самоописания XML. (EN)
- XML Forms Generator/Data Studio на alphaWorks: загрузите основанный на стандартах управляемый данными плагин Eclipse, который генерирует функциональные формы со встроенной разметкой XForms внутри документа XHTML из экземпляра XML-данных или документа WSDL.(EN)
- IBM Data Studio: загрузите бесплатную пробную версию интегрированной среды разработки баз данных, которая ускоряет создание приложений, их разработку и развертывание, повышая эффективность и производительность доступа к данным.(EN)
- Ознакомительные версии продуктов IBM: используйте в своей следующей разработке ознакомительные версии программных продуктов IBM, которые можно загрузить непосредственно с developerWorks, включая инструменты разработки приложений и промежуточное ПО от DB2®, Lotus®, Rational®, Tivoli® и WebSphere®.(EN)
Обсудить
- Примите участие в обсуждении материала на форуме.
- Блог группы Data Studio Team: посетите этот блог и примите участие в сообществе Data Studio.(EN)
- Дискуссионные форумы разделаXML: участвуйте в многочисленных обсуждениях, связанных с XML.(EN)
- Блоги developerWorks: посетите блоги и примите участие в жизни сообщества developerWorks.(EN)

Сяо Фэн Чжао (Xiao Feng Zhao) работает инженером-программистом в Китайском институте перспективных технологий (China Emerging Technology Institute) при лаборатории IBM China Software Development. В частности, он занимается проектами IBM Incubator. В круг его интересов входят технологии Web 2.0, SOA, J2EE и Web. В настоящее время он занимается разработкой примеров для проверки концепции стандартов Ajax и SOA.
Сюзан Малайка (Susan Malaika) работает старшим инженером в отделе IBM Information Management Group (часть IBM Software Group). Специализируется на XML, Web и базах данных. Разработала стандарты, поддерживающие данные для сетевых сред на Global Grid Forum. Являясь разработчиком программных продуктов IBM, работает также в качестве интернет-специалиста, аналитика данных и разработчика приложений. Соавтор книги о Web и опубликованных статей по обработке транзакций и XML. Член IBM Academy of Technology.

Кит Уэллс (Keith Wells) работает инженером-программистом в лаборатории IBM в Research Triangle Park (штат Северная Каролина). Г-н Уэллс несколько лет участвует в проектах Emerging Technologies и Emerging Technologies Toolkit. В настоящее время он исследует новые возможности в области сложных документов, разработки на базе моделей, стандартов программного обеспечения и технологий на базе XML.