Ушли в прошлое те дни, когда данные XML хранились в виде CLOB или «шинковались» в реляционные таблицы. Поддержка pureXML в СУБД IBM DB2 9 совершила революцию в управлении данными XML, которые теперь рассматриваются как новый тип данных, хранящийся не в реляционном виде, а в естественной иерархии. Беспрепятственная интеграция XML с реляционными данными, свойственная pureXML, ускоряет разработку приложений, повышает скорость поиска благодаря высокооптимизированным индексам XML и обеспечивает гибкость, позволяя использовать для запросов XML-данных как SQL, так и XQuery. XML-данные, хранящиеся в pureXML, можно представить в качестве Web-сервисов посредством механизма Data Web Service. (См. часть 1 этой серии.)
Как работает поддержка pureXML в XFG
Первое, что мы сделаем, - создадим мини-приложение pureXML на базе таблицы, определенной в DB2, чтобы шаг за шагом проиллюстрировать поддержку pureXML в XFG. Структура таблицы показана в табл.1 Предварительно вставим пример записи в виде эталонных экземпляров pureXML, в которых столбец XML1 не связан ни с какой схемой, а столбец XML2 связан с зарегистрированной схемой Express, как показано в листинге 1. Примечание: Эталонный экземпляр pureXML - это шаблон XML, используемый для генерации XHTML/XForm в XFG; как мы знаем, XFG может генерировать формы как из XML, так и из WSDL.
Таблица 1. Обзор структуры таблицы
Листинг 1. Схема Express
Создав таблицу в базе данных DB2, воспользуемся Data Studio, чтобы создать файл SQL с оператором SQL:
INSERT INTO XFGDEMO (ID, NAME, XML1, XML2) VALUES (:id, :name, :purexml1, :purexml2)
Теперь создадим Data Web Services. За описанием процесса создания Data Web Services из файла SQL обращайтесь к разделу Ресурсы. Создав пример Web-сервиса, сгенерируйте файл WSDL с именем insertRecord.wsdl, который будет выглядеть как файл в листинге 2. В сгенерированном файле WSDL видны два параметра pureXML: PUREXML1 и PUREXML1. Эти два поля pureXML связаны с xsd:anyType, и на следующих шагах мы воспользуемся XFG для их визуализации в фрагменты формы XHTML/XForm.
Листинг 2. Параметры pureXML в файле WSDL
Генерация приложения XHTML/XForms
Создав и установив Data Web Services из Data Studio, можно воспользоваться XFG для генерации XHTML/XForms и соответствующих файлов XML для связи с сервисами.
Выберите файл insertPatient.wsdl, щелкните правой кнопкой на файле WSDL и выберите мастер Generate XHTML/XForms из меню XForms Generator. На рисунке 1 показан первый шаг мастера:
Рисунок 1. Первый шаг с использованием мастера XFG
Генерирование информации валидации
В XFG можно наложить на поля pureXML дополнительные ограничения валидации. Выбрав опцию Generate validation information (сгенерировать информацию валидации), вы увидите страницу мастера редактора валидации для настройки дополнительных правил валидации на следующих шагах.
Извлечение экземпляра pureXML из базы данных
XFG поддерживает два способа визуализации полей pureXML в WSDL. Один состоит в использовании экземпляра pureXML в локальной файловой системе и чтении схемы связывания из локальной файловой системы. Другой заключается в использовании экземпляра pureXML в базе данных и извлечении зарегистрированной схемы из XML Schema Repository (XSR). Если установить флажок Retrieve PureXML instance from Database, можно использовать обе опции; в противном случае можно использовать только схему из файловой системы. Установите флажок. Нажмите кнопку Next.
На следующем экране выберите операцию insertRecord и нажмите Next. Вы увидите страницу мастера Configure PureXML, как на рисунке 2. Здесь XFG распознает все параметры pureXML. Нужно указать экземпляры pureXML в качестве эталонных, чтобы сгенерировать визуализированную форму XHTML/XForm, а затем извлечь экземпляры pureXML из базы данных. Заметьте, что эталонный экземпляр pureXML PUREXML1 не связан ни с одной схемой, а PUREXML2 связан с зарегистрированной схемой, как в листинге 1.
Рисунок 2. Страница мастера настройки PureXML
Нажмите Next; появится экран Validation Editor. Здесь нможно добавить правила валидации для PUREXML1, который не связан ни с какой схемой.
Рисунок 3. Редактор валидации
Пройдите мастер и в конце нажмите кнопку Finish, чтобы сгенерировать XHTML/XForms. Будет сгенерирован XHTML-файл insertRecord.xhtml. На рисунке 4 показана сгенерированная форма. (См. увеличенную версию рис.4):
Рисунок 4. Сгенерированная форма XHTML/XForm, отображаемая в Firefox
В фрагментах XHTML сгенерированной формы (Листинг 3) видны два тега fieldset. Каждый тег сгенерирован из указанного экземпляра базы данных и соответствует параметру pureXML из файла WSDL (листинг 2).
Листинг 3. Фрагменты pureXML XForm
XFG генерирует информацию связывания (листинг 4) для зарегистрированной схемы (схема представлена в листинге 1).
Листинг 4. Информация связывания pureXML, сгенерированная из зарегистрированной схемы
В свою очередь XFG тоже генерирует информацию связывания (листинг 5) для правил валидации PUREXML1, которые вы установили в мастере.
Листинг 5. Информация связывания pureXML, сгенерированная из правил валидации
Объединение нескольких моделей для передачи
В сгенерированной форме XHTML/XForm присутствуют три модели XForm:
- Первая - это глобальная модель, соответствующая операции WSDL
insertRecord. Эта модель содержит всего четыре элемента:ID,NAME,PUREXML1,PUREXML2. Элементы соответствуют четырем именам параметров из Data Web Services. - Вторая и третья модели – это модели pureXML для параметров PUREXML1 и PUREXML2, извлеченных из базы данных или локальной файловой системы. Все изменения данных в двух наборах полей pureXML из XHTML/XForm применяются к этим двум моделям.
Перед передачей в Data Web Services XFG объединяет эти две модели pureXML в первую глобальную модель XForm с использованием сгенерированного клиентского сценария в XHTML, как в листинге 6. Этот сценарий выполняется на стороне клиента как часть формы XHTML при передаче формы.
Листинг 6. Сценарий слияния XHTML
Объединенная модель данных (Листинг 7) - это полное сообщение SOAP, которое клиент передает непосредственно Web-сервису для вставки в таблицу новой записи с использованием данных из формы.
Листинг 7. Объединенная модель
В этой статье мы кратко описали поддержку DB2 pureXML в XFG. Благодаря поддержке pureXML в XML Forms Generator (XFG) можно визуализировать pureXML для пользователей в формах XForm на базе XHTML. Кроме того, средствами XFG можно извлекать соответствующие зарегистрированные XML-схемы из экземпляров pureXML и генерировать информацию о типах. Можно также извлекать условия валидации и добавлять их к целевым формам pureXML XHTML/XForms. Очевидно, что поддержка pureXML в XFG облегчает создание интерфейсов форм для экземпляров XML, хранящихся в pureXML. В этой серии статей мы рассказали об XForms, XFG, Data Studio, Web-сервисах и поддержке функции pureXML. Благодаря этим двум статьям вы сможете легко приступить к использованию XFG для генерации работающих XHTML/XForms-интерфейсов пользователя для серверных служб Data Services, создавая тем самым законченные информационные решения.
| Описание | Имя | Размер | Метод загрузки |
|---|---|---|---|
| Пример кода для листинга 1 из статьи | Listing1.zip | 1 КБ | HTTP |
Научиться
- Оригинал статьи (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)
- Using DB2 XML и Java (Anson Kokkat, developerWorks, октябрь 2006 г.): руководство по разработке в среде Java с применением DB2 XML.(EN)
- Руководство по XForms (W3 Schools): научитесь применять в своих приложениях HTML-формы нового поколения – Xforms.(EN)
- DB2 pureXML wiki: будьте в курсе последних разработок в области DB2 pureXML.(EN)
- Сертификация по IBM XML: как стать сертифицированным IBM разработчиком XML и связанных с этим технологий.(EN)
- Техническая библиотека по XML: широкий спектр технических статей и советов, руководств, стандартов и документации IBM в разделе XML сайта developerWorks. (EN)
- технические мероприятия и Web-трансляции developerWorks: оставайтесь в курсе последних событий в сфере информационных технологий.(EN)
- Магазин технической книги: книги на эти и другие технические темы.(EN)
- Подкасты developerWorks: интересные интервью и дискуссии разработчиков программного обеспечения.(EN)
Получить продукты и технологии
- DB2 Express-C: загрузите бесплатную ознакомительную версию сервера баз данных DB2 Express 9.(EN)
- DB2 for 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®
Обсудить
- Примите участие в обсуждении материала на форуме.
- Блог группы Data Studio: посетите этот блог и примите участие в сообществе 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.

Цзян Вон (Qiang Wang) работает техническим руководителем в Китайском институте перспективных технологий (China Emerging Technology Institute) при лаборатории IBM China Software Development. Он занимается проектами IBM Incubator и темами, связанными с SOA. В круг его интересов входят J2EE, SOA, MDA/MDD, AOP, RUP, а также управление проектами. В настоящее время он возглавляет разработку ряда промышленных решений SOA.
Сюзан Малайка (Susan Malaika) работает старшим инженером в отделе IBM Information Management Group (часть IBM Software Group). Специализируется на XML, Web и базах данных. Разработала стандарты, поддерживающие данные для сетевых сред на Global Grid Forum. Являясь разработчиком программных продуктов IBM, работает также в качестве интернет-специалиста, аналитика данных и разработчика приложений. Соавтор книги о Web и опубликованных статей по обработке транзакций и XML. Член IBM Academy of Technology.