XML технології та засоби розробки Gupta Team Developer: XML і CTD. Частина 1, Різне, Програмування, статті

Зміст


У статті, яка складається з двох частин, розглянуто основні поняття та можливості технологій XML при побудові інформаційних систем (частина 1) і можливості використання їх при програмуванні в Gupta Team Developer (частина 2). Технології XML забезпечують високий рівень універсальності при обміні даними між додатками, при зберіганні даних у БД та універсалізації доступу до даних в WEB-додатках.

Введення

Мова XML з'явився відносно недавно в поле зору IT фахівців, але вже завоював всебічне визнання. Досить сказати, що він став основою WEB технологій, універ-сальним механізмом взаємодії програмних систем і способом представлення інформації в БД. Зовні він схожий на мову HTML (тегів операторні дужки), але, несо-думку, функціонально має більш широку сферу застосування, і, думаю, не помилюся, велике майбутнє.

В даний час на базі XML (E x tensible M arkup L anguage) з'явилося багато новітніх технологій, число яких постійно зростає. Деякі з них ми розглянемо нижче. Не-зважаючи на значну простоту XML забезпечує високу універсальність – у простоті геніальність нових рішень.

Основи та поняття XML

На малюнку 1 показані основні можливості XML і основні програмні компоненти, що беруть участь процесі обробки XML інформації.

Рис. 1 Узагальнений погляд на XML технології.

Основні технологічні процеси виділені червоним кольором: обробка даних, обмін даними, зберігання даними, перевірка даних, перетворення даних і їх генерування. На малюнку виділені різновиди програмних систем (синім кольором), що беруть участь в обробці даних: програмні додатки, СУБД XML, XSL процесори та WEB сервер-клієнт компоненти. Дані на малюнку представлені (сірі прямокутники) у форматі XML. Вони необхідні: для безпосереднього зберігання (XML документ), для опису структур даних (XML схеми) і для перетворення даних (XSL правила-програми).

Особливості та можливості XML



  1. XML дозволяє описувати структуровані дані. XML – мова опису даних. (Можна описувати всі традиційні структури даних: таблиці, масиви, вкладені структури, дерева, списки, мережі і т.д.)

  2. XML – підтримується загальнодоступними СОМ і АХ об'єктами, інтегрованим в операціонної систему та Інтернет. СОМ XML дозволяє генерувати, перевіряти, вва-вать, перетворювати дані. XML підтримує UNICODE формат даних. XML – це незалежна від платформ засіб опису даних. Є супроводжувані ком-понентов XML (SDK XML), які забезпечують обробку даних практично в будь-яких мовах програмування: C + +, JAVA, Jscript, VBScript та ін

  3. Мова XML – зовні схожий на формат HTML. Має теги і атрибути. XML – текстовий формат представлення даних, проте, вони не призначені для читання, а для пере-лення, зберігання та представлення даних у WEB.
  4. XML – це сімейство технологій, які постійно розвиваються:

    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 – мова доступу до даних на основі запитів і багато інших.

  5. XML з одного боку нову мову (запропонований в 1996 р.), але не зовсім, основи цього язи-ка закладалися ще в 80-х в ISO стандартах (SQML – попередник HTML).
  6. XML дозволяє перетворити формат даних HTML в форматі XHTML.
  7. XML – забезпечує модульність подання та обробки даних: доступні меха-нізми простору імен (namespace), комбінації декількох підмножин мов (XML Schemas), кількох XSL обробників, RDF (Resource Description Framework) – загальних стандартів групи W3C.
  8. XML не ліцензується, не залежить від платформ обладнання та ОС, досить просто супроводжується. COM обробники інтегровані в IE 5.0 і вище.
  9. XML-служить основою побудови XML орієнтованих БД (і об'єктно-орієнтованих БД), взаємодія з якими засноване на базі мови XML Query.
  10. XML може служити основою для створення нових технологій, у тому числі і для обміну інформацією між додатками, побудови WEB та уніфікації форматів даних в Інтернет.

Розглянемо тепер деякі з цих можливостей: опис даних на XML, про-ревірку даних на основі схем, перетворення даних на основі XSL, класи SDK XML.


Мова XML


Мова XML, у найзагальнішому вигляді, – це набір простих правил для опису вкладених тек-стів структур даних. Поняття документа: документ це сукупність елементів. Сам документ є елементом. Елемент може мати довільну кількість атрибутів (властивостей). Атрибути мають значення і тип. На малюнку, розташованому нижче, представлений вид найпростішого XML документа. Він складається із заголовка і тексту документа, включающе-го інші елементи та їх атрибути (у прикладі елементи: article, part, picture; атрибути: version, file). Крім того, в документі може розташовуватися звичайний текст.




Рис. 2. Приклад простого XML документа.

Опис елементів обов'язково включає ключові теги (заголовки) початковий і конеч-ний, які повинні збігатися з назвою:





<Article>…</Article>


У XML документі повинен бути обов'язково головний елемент (root – 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 (E x tensible S tyle L anguage) схожа з ідеєю використання CSS для HTML, але ця технологія значно просунута.

У спеціальному файлі (* xsl) задаються правила-шаблони обробки XML документа, резуль-татом є новий файл (XML, HTML і інших довільних типів текстових докумен-тів).

Правила-шаблони XSL поділяються на такі групи:


  • XSLT елементи (Умовні, циклічні, вибірки, копіювання тощо)
  • XSLT функції (Інформація про елементи, списках, атрибутах і т.д.)
  • XPath функції (Символьні, цифрові, Булевського і т.д.)

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 = "./0309201112000010694.html"). Цей документ наведено на наступному малюнку.

Рис. 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.

Частина 2


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*