СТАТЬЯ |
02.07.02
|
XML технологии
и средства разработки Gupta
Team Developer: XML технологии (Часть 1)
© С.А. Большаков
В статье, которая состоит из двух частей, рассмотрены основные понятия и возможно-сти технологий XML при построении информационных систем (часть 1) и возможности использования их при программировании в Gupta (Centura) Team Developer часть 2). Техно-логии XML обеспечивают высокий уровень универсальности при обмене данными между приложениями, при хранении данных в БД и универсализации доступа к данным в WEB-приложениях.
Язык XML появился относительно недавно в поле зрения IT специалистов, но уже завоевал всестороннее признание. Достаточно сказать, что он стал основой WEB технологий, универ-сальным механизмом взаимодействия программных систем и способом представления ин-формации в БД. Внешне он похож на язык HTML (тэговые операторные скобки), но, несо-мненно, функционально имеет более широкую сферу применения, и, думаю, не ошибусь, большое будущее.
В настоящее время на базе XML (Extensible Markup Language) появилось много новейших технологий, число которых постоянно растет. Некоторые их них мы рассмотрим ниже. Не-смотря на значительную простоту XML обеспечивает высокую универсальность - в простоте гениальность новых решений.
Основы и понятия XML
На рисунке 1 показаны основные возможности XML и основные программные компоненты, участвующие процессе обработки XML информации.
Рис. 1 Обобщенный взгляд на XML технологии.
Основные технологические процессы выделены красным цветом: обработка данных, обмен данными, хранение данными, проверка данных, преобразование данных и их генерирование. На рисунке выделены разновидности программных систем (синим цветом), участвующих в обработке данных: программные приложения, СУБД XML, XSL процессоры и WEB сервер-клиент компоненты. Данные на рисунке представлены (серые прямоугольники) в формате XML. Они необходимы: для непосредственного хранения (XML документ), для описания структур данных (XML схемы) и для преобразования данных (XSL правила-программы).
4.1. XML 1,0 базовый стандарт языка,
4.2. XLINK - описывает правила добавления ссылок (URL) в XML документы,
4.3. XPOINTER - описывает правила создания графических ссылок (URL),
4.4. CSS - работает также как и для HTML,
4.5. XSL и XSLT - это продвинутые языки преобразования и обработки XML докумен-тов,
4.6. DOM - это стандартный объект (функции и методы) позволяющие про граммировать все действия по работе с XML документами.
4.7. XML Schemas (1/2) - позволяет описывать свои подмножества языка XML и прове-рят ь правильность их построения
4.8. XML Query - язык доступа к данным на основе запросов и многие другие.
Рассмотрим теперь некоторые из этих возможностей: описание данных на языке XML, про-верку данных на основе схем, преобразование данных на основе XSL, классы SDK XML.
Язык XML, в самом общем виде, - это набор простых правил для описания вложенных тек-стовых структур данных. Понятие документа: документ это совокупность элементов. Сам документ является элементом. Элемент может иметь произвольное число атрибутов (свойств). Атрибуты имеют значения и тип. На рисунке, расположенном ниже, представлен вид простейшего XML документа. Он состоит из заголовка и текста документа, включающе-го другие элементы и их атрибуты (в примере элементы: article, part, picture; атрибуты: version, file). Кроме того, в документе может располагаться обычный текст.
Рис. 2. Пример простого XML документа.
Описание элементов обязательно включает ключевые тэги (заголовки) начальный и конеч-ный, которые должны совпадать по наименованию:
<Article>…</Article>
<Article/>
<Article><part>Текст1</part>
<article>Текст2<part/></article>
<part>Текст3</part>
</Article>
<имя элемента атрибут = "значение">
имя элемента>
<article id="1"name="Статья по XML">
Текст статьи по XML
</article>
Для обработки локализованного документа в заголовке указывается способ кодировки текста и элементов, например: (encoding для русского языка - 1251):
<?xml version="1.0"encoding="Windows-1251"?>
В этом случае документ может выглядеть так:
<статья> <Часть> Текст1
<Рисунок>Текст3Рисунок>
Часть>
<статья>Текст2<Часть/>статья>
<Часть>Текст3Часть>
статья>
Структуры данных, описываемых в XML
Язык XML обеспечивает описание сложных структур данных. В первую очередь это: списки, массивы, деревья. Описания могут иметь, в зависимости от типов элементов, вложенную структуру. На рисунке, представленном ниже, дано описание древовидной структуры дан-ных.
Рис. 3. Представление структур данных в виде дерева.
Если использовать специальные атрибуты или специальные элементы, то без труда можно описать и сетевые структуры данных. В первом случае атрибуты описывают ссылки на дру-гие узлы сетевой структуры. Если принять во внимание, что атрибутов может быть произ-вольное число (отмечу, что они могут формироваться и обрабатываться в приложениях), то можно описать размеченный граф произвольного вида. Если для определения связей выде-лить отдельные элементы типа связь (как в реляционных БД), то аналогично можно описать произвольную сетевую структуру данных. К примеру, даны следующие описания с помощью элементов-связей и атрибутов:
<Узел id="K" Link="1"></Узел>
<Связь from="1"to="2"/>, на рисунке ниже проиллюстрирована такая сеть.
Рис. 4. Представление сетевых структур в XML.
Проверка правильности документа в XML
Думаю, что на основе правил построения XML любой программист без особого труда напи-шет программку для проверки правильности произвольного документа XML. Однако этого делать совсем не обязательно, так как при загрузке автоматически выполняется проверка до-кумента, будь-то это в программе или броузере Интернет. Различают простую проверку до-кумента и проверку на основе дополнительных правил. Простая проверка выполняется, как показано на рисунке ниже, с помощью компоненты XML Validator, которая включается в СОМ объекты, поддерживающие XML программирование.
Рис. 5. Простая проверка документа XML.
Для описания XML документа могут быть заданы дополнительные правила: последователь-ность и количество вложенных элементов, перечень атрибутов и их допустимые значения, значения по умолчанию, возможность задания текста и другие. Такие правила описывают фактически новый язык, его синтаксис и семантику. Правила описываются в виде правил ре-курсивных грамматик (правосторонних). Эти правила могут быть заданы: в виде правил DTD - Documents Type Definitions (на базовом уровне) или в виде схем описания данных XML Schemas (на логическом уровне). На рисунке ниже схематично показана проверка документа подмножества XML языка, причем и DTD и схемы могут быть встроенные или описаны в отдельном XML документе.
Рис. 6. Проверка документа XML на основе DTD или Schemas
В правилах DTD описываются элементы и их допустимое содержание, атрибуты и их допус-тимые значения. Например, при описании с помощью DTD должен быть задан тип докумен-та, заданы элементы и их допустимые атрибуты:
<!DOCTYPE article[<!ELEMENT article (author, title, part*)>...
<!ATTLIST article
author CDATA #IMPLIED> ...]>
При описании с помощью схем файл описания грамматики XML в самом простейшем случае может быть выглядеть так:
<?xml version="1.0" encoding="Windows-1251"?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<AttributeType name="id" required="no" dt:type="string"/>
<ElementType name="title" dt:type="string">
</ElementType>
<ElementType name="part">
<attribute type="id"/> <element type="title"/>
</ElementType>
<Element Type name="picture" dt:type="string"></ElementType>
<ElementType name="article">
<element type="part"/>
<element type="picture"/>
</ElementType>
<ElementType name="Book">
<element type="article"/></ElementType>
</Schema>
В данной схеме документа определяется главный документ Book, который содержит элемен-ты article. Элемент article содержит элементы part и picture. Для элемента part описан ат-рибут id, которой должен быть типа string и является необязательным. Если при проверке на основе схем или DTD выявлена ошибка, то в программу или броузер сообщается и ее типе, месте и коде. Использование схем правил, позволяет задать практически любую грамматику, которая поддается формализованной обработке. Отмечу, что и схемы данных можно постро-ить в программе, т.е. мы получаем возможность генерации схемы языка и выполнения авто-матизированной синтаксическую и семантическую проверку документов XML на их основе.
Преобразование (трансформация) документов XML на базе XSL
Для обработки документа XML используются специальные компоненты XSLT процессоры. На рисунке ниже представлена схема обработки документа с его помощью.
Рис. 7. Преобразование документа на базе XSL.
Идея использования XSL (Extensible Style Language) сходна с идеей использования CSS для HTML, но эта технология значительно продвинута.
В специальном файле (*xsl) задаются правила-шаблоны обработки XML документа, резуль-татом является новый файл (XML, HTML и других произвольных типов текстовых докумен-тов).
Правила-шаблоны XSL разделяются на следующие группы:
XSL это удобный унифицированный способ задания процедур обработки XML документа без программирования.
В качестве XSLT элементов могут использоваться: apply-imports, apply-templates, copy, for-each, if, when, text, for-each, include, import, template и многие другие. Их набор зависит от ис-пользуемого процессора XSLT. В IE 5.0 такой процессор XSLT встроен.
В качестве примера рассмотрим простейшее преобразования документа XML в таблицу формата HTML. Исходным документом XML является документ, представленный на рисун-ке ниже. В этом документе описывается каталог (catalog) книг (book), каждая из которых со-держит: автора, заголовок, жанр, цену, дату публикации и описание (соответственно: author, title, genre, price, publish_date и description). Каждой книге присвоен уникальный иденти-фикатор с помощью атрибута id. В данном каталоге показано две книги. Для простоты де-монстрации не дается схема описания правил построения каталога. Для обработки данного документа XML предусмотрен файл шаблонов XSL, на который ссылается исходный доку-мент (href="xslsem.xsl"). Этот документ приведен на следующем рисунке.
Рис. 8. Исходный файл XML для преобразования XSL
Отметим, что тип преобразования задан: type="text/xsl". Кодировка encoding (1251) опреде-ляет возможность использования русского алфавита для документа.
Рис. 9. Файл правил преобразования XSL (xslsem.xsl).
В этом файле задан метод преобразования HTML документ (output metod="html"). Для ка-ждой книги (правило: for-each select ="//book") строится строка таблицы HTML, в которую включаются элементы книги (author, title, price) и вычисляемая переменная (variable) - bookCount. Заголовок таблицы оформляется обычным HTML текстом, который содержит ос-новные реквизиты выборки (Author, Title, price и Count). Результат работы XSLT процессора представлен на следующем рисунке, а на последнем рисунке показана таблица уже в броузе-ре.
Рис. 10. Результат трансформации XSLT
Рис. 11. Результат трансформации XSL в броузере
Таким образом, после обработки XSLT процессором на основе XML документа мы получаем результат, который может быть представлен на странице WEB. Данные в формате XML мо-гут быть получены из БД, сформированы приложением и на основе описанных файлов пре-образований XSL преобразуются в документ другой формы.
Во второй части статьи мы рассмотрим основы SDK XML и вопросы использования XML технологий в среде Centura Team Developer.
Дополнительная информация
Дополнительную информацию Вы можете получить в компании Interface Ltd.
Обсудить
на форуме Gupta
Отправить
ссылку на страницу по e-mail
Interface
Ltd. Отправить E-Mail http://www.interface.ru |
|
Ваши
замечания и предложения отправляйте
автору По техническим вопросам обращайтесь к вебмастеру Документ опубликован:03.06.02 |