
9.4. Технологічні процеси xml
До основних технологічних процесів над XML-документами (рис. ) відносяться:
обробка даних;
обмін даними;
зберігання даними;
перевірка даних;
перетворення даних;
генерація даних.
Рис. Узагальнений погляд на XML технології.
В обробці XML інформації беруть участь різні програмні додатки СУБД XML, XSL процесори і WEB сервер-клієнт компоненти.
Дані на малюнку представлені у форматі XML. Вони необхідні: для безпосереднього зберігання (XML документ), для опису структур даних (XML схеми) і для перетворення даних (XSL правила-програми).
Мова XML забезпечує опис складних структур даних. В першу чергу це: списки, масиви, дерева. Описи можуть мати, залежно від типів елементів, вкладену структуру. На рис., представленому нижче, даний опис деревовидної структури даних.
Рис. . Представлення структур даних у вигляді дерева.
Якщо використовувати спеціальні атрибути або спеціальні елементи, то можна описати і мережні структури даних. В першому випадку атрибути описують посилання на інші вузли мережної структури. Якщо взяти до уваги, що атрибутів може бути довільне число (відзначу, що вони можуть формуватися і оброблятися в додатках), то можна описати розмічений граф довільного вигляду. Якщо для визначення зв'язків виділити окремі елементи типу зв'язок (як в реляційних БД), то аналогічно можна описати довільну мережну структуру даних. Наприклад, дані наступні описи за допомогою елементів-зв'язків і атрибутів:
<Узел id="K Link="1"></Узел>"
<Связь from="1"to="2"/>,
на рис. нижче проілюстрована така сіть.
Рис. . Представлення мережних структур в XML.
Перетворення (трансформація) документів XML на базі XSL
Для обробки документа XML використовуються спеціальні компоненти XSLT процесори. На рис. нижче представлена схема обробки документа з його допомогою.
Рис.. Перетворення документа на базі XSL.
Ідея використовування XSL (Extensible Style Language) схожа з ідеєю використовування CSS для HTML, але ця технологія значно просунута.
В спеціальному файлі (*xsl) задаються правила-шаблони обробки XML документа, результатом є новий файл (XML, HTML і інших довільних типів текстових документів).
Правила-шаблони XSL розділяються на наступні групи:
XSLT елементи (умовні, циклічні, вибірки, копіювання і ін.)
XSLT функції (інформація про елементи, списки, атрибути і т.д.)
XPath функції (символьні, цифрові, булеві і т.д.)
XSL це зручний уніфікований спосіб завдання процедур обробки XML документа без програмування.
Як XSLT елементи можуть використовуватися: арply-imports, арply-templates, 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 перетворяться в документ іншої форми.