Почасти BizTalk являє собою не що інше, як суспільний сервер Web, де публікуються всі схеми, запропоновані для використання в різноманітних галузях. Проте BizTalk не ставить своєю ціллю об'єднати всі галузі в спробі скласти одну гігантську схему для усіх використовуваних у якому б то ні було бізнесі даних.
BizTalk складається з трьох окремих елементів. По-перше, це сховище на сервері Web разом із рекомендаціями і тегами XML, використовуваними для додавання нових схем у сховище. По-друге, це розробка програмного продукту, серверу BizTalk. І по-третє, це будуть інтерактивні послуги на базі технології BizTalk.
Відмова від DTD
У тому, що стосується відображення галузевих даних, BizTalk виходить із безперспективності визначень типів документів (Document Type Definition, DTD). Замість того щоб заохочувати розробку XML DTD, прихильники BizTalk описують свої ієрархії даних за допомогою XML Schema (як передбачається, цей стандарт повинний прийти на зміну DTD).
В даний час W3C намагається узгодити різноманітні підходи до схем, але запропонована версія стандарту - XML Schema - дає достатньо ясне уявлення про те, як буде виглядати заміна DTD. XML Schema має значно більш широкі можливості, ніж DTD, причому описи даються за допомогою безпосередньо XML, без створення ще однієї системи розмітки, як того потребує DTD.
DTD цілком достатньо для базового визначення документа, але вони мають декілька недоліків. По-перше, вони даються не на XML. З огляду на високий ступінь адаптованості і розширюваність XML, наявність ще одного формату для визначення документів є зайвою.
По-друге, елементи DTD усередині документа XML потребують повного визначення усього, що знаходиться усередині цих елементів. Іншими словами, ніякі піделементи “на перспективу” не припускаються - якщо такі будуть присутні в документі, те, по визначенню, документ не буде бути правильно складеним. Тим часом визначення XML Schema використовують модель відкритого інформаційного наповнення, у котрої невизначені елементи цілком припустимі.
По-третє, DTD обмежуються тільки граматикою і синтаксисом (тобто відношенням одного елемента до іншого), тоді як XML Schema може також задавати безпосередні обмеження на тип даних, що елемент може містити. Це значно спрощує реалізацію передачі даних додатка в порівнянні з більш традиційним текстовим документом. Наприклад, точно так само, як це роблять розроблювачі в мовах програмування, ви можете явно зазначити, що дана область збереження може містити тільки целочисленные дані. Нарешті, розроблювачам, що працюють у середовищах Wintel, буде дуже зручно те обставина, що XML Schema легко відображається на Microsoft Document Object Model. Таким чином, що працює з документами XML програма може запросити у відповідної схеми наявне визначення для елемента документа по своєму виборі. Код виглядає в такий спосіб:
var bookNode = doc. documentElement
Проте як же буде виглядати сам документ, що містить схему, зсередини? По-перше, він буде містити теги XML, що повідомляють, що це схема, на зразок:
<Schema name=”schema_sample_1”>
... вміст схеми
</Schema>
Кожний пункт усередині схеми об'являється потім індивідуально, причому особливості кожного елемента розшифровуються за допомогою вкладених тегів, наприклад:
<ElementType name=”PERSONA” content=”textOnly” />
визначає елемент <Inventor> як здатний містити тільки текстові дані.
Подібні схеми можуть виявитися дуже важкі для читання, але вони легко піддаються розборові за допомогою інструментів XML. Іншими словами, вам не буде потрібно спеціальний редактор для роботи з документом XML Schema, як у випадку DTD.
У випадку правил на базі XML для форматів комерційних даних можна використовувати для відображення однієї схеми на другу вмонтовані функціональні можливості перетворення XML - розширювана мова таблиць стилів (Extensible Stylesheet Language, XSL).
На загальному рівні BizTalk Framework потребує, щоб видавці XML Schema притримувалися визначених рекомендацій. Так, тегам пропонується давати осмислені імена зі зрозумілим нескороченим написанням; ці імена повинні відповідати функціональному призначенню інформації, а не її місцю в приватній структурі даних (наприклад, “PartLocation” замість “PartFieldFourteen”), а інформація, що міститься в тегу, не повинна потребувати спеціального, відмінного від XML, декодування (наприклад, позначення валюти грошової суми повинно зберігатися у виді елемента XML, а не приєднуватися до суми як у “$30US”).
Необхідними складовими BizTalk Framework є спеціальні, загальні для всіх галузей теги XML. Ці теги покликані звільнити розроблювачів від турбот із приводу трьох найважливіших проблем взаємодії додатків. По-перше, від того, як дані передаються з одного додатка в інший; по-друге, від того, як “викликати” інший додаток - відправлення додатку даних у форматі XML повинно бути достатньо; по-третє, від того, у якому порядку повинні випливати елементи даних.
Один із тегів визначає код, за допомогою якого XML програма, що приймає дані у форматі, може встановити, що за схема BizTalk використовується. За допомогою інших тегів додаток може з'ясувати, хто є відправником даних, що відправник від нього хоче і кому дані повинні бути потім передані.
Для забезпечення сумісності документ BizTalk повинний починатися і, відповідно, закінчуватися тегом BizTalk, щоб одержувач знав, що він вступив у сектор BizTalk. Тег MsgType задає простір імен XML (вашу конкретну схему), що визначає припустимі елементи документа. Тому що ваша схема використовує формат даних XML, то тип даних, котрими ви наповняєте свій документ, буде легко встановити. Нарешті, ви можете також вставити блок маршрутних документів, наприклад:
<Route>
<From locationID=”11111111”
locationType=”DUNS”
process=”” path=”” handle=”3”/>
<To locationID=”222222222”
locationType=”DUNS”
process=”” path=””
handle=”23CF15”/>
</Route>
BizTalk Framework нічого не говорить про те, які дані повинні входити в чотирьох атрибута тегів і<FROM><TO>, вона просто встановлює призначення кожного з них. Теги location ідентифікують мережний вузол (можливо, за допомогою URL), куди направляється документ, у той час як теги process і handle визначають додаток і конкретний примірник (наприклад, номер транзакции), до якого відносяться дані. Тег path служить свого роду вмістилищем, де проміжні сервери можуть берегти відомості про дату й іншу інформацію, щоб маршрут (і за допомогою розширення зворотний маршрут) був видимий усім серверам уздовж шляху.
Бізнес-модель BIZTALK
Microsoft випустить серверний продукт для регулювання обміну BizTalk-сумісними повідомленнями XML між партнерами по бізнесу (бета-версія наприкінці осені 1999 року; готовий продукт повинний вийти після Windows 2000).
Як це виглядає
Інструкції в схемах складають набір правил, використовуючи який, програма-клієнт буде робити висновок про те, коректний документ або ні. Схема даних, наприклад, може виглядати таким чином:
<schema id="OurSchema">
<elementType id="#title">
<string/>
</elementType>
<elementType id="photo">
<element type="#title">
<attribute name="src"/>
</elementType>
<elementType id="gallery">
<element type="#photo">
</elementType>
</schema>
Якщо ми включимо приведені правила всередину XML- документа, програма-клієнт зможе використовувати їх для перевірки. Тобто, вона тепер зможе визначити, що правильним буде бути такий фрагмент:
<gallery>
<photo id="1"><title>My computer</title></photo>
<photo id="2"><title>My family</title></photo>
<photo id="3"><title>My dog</title></photo>
</gallery>
, а некоректним цей:
<gallery>
<photo id="1"/>
<photo index="2"><title>My family</title></photo>
<photo index="3"><title> My dog </title><dogname>Sharik</dogname></photo>
</gallery>
Всі конструкції мови схем описуються правилами "XML DTD for XML-Data-Schema".
Область схеми даних
Створюючи схеми даних, ми визначаємо в документі спеціальний елемент, <schema>;, усередині якого містяться описи правил:
<schema id="OurSchema">
<!-- послідовність інструкцій -->
</schema>
Якщо використовувати окремий простір імен, то повний XML-документ, що містить у собі схему даних, буде виглядати в такий спосіб:
<?XML version='1.0' ?>
<?xml:namespace href="http://www.mrcpk.nstu.ru/schemas/" as="s"/?>
<s:schema id="OurSchema">
<!-- послідовність інструкцій -->
</s:schema>
Опис елементів
Для визначення класу елемента, до якого надалі будуть застосовуватися інструкції, що описують його вміст і структуру, призначений спеціальний елемент схеми elementType,
<elementType id="issue">
<descript>Елемент містить інформацію про черговий випуск часопису</descript>
</elementType>
Назва елемента задається атрибутом id. Всі подальші інструкції, що ставляться до описуваного класу, визначають його внутрішню структуру і набір припустимих даних, містяться всередині блока, заданого тегами <elementType> і </elementType>.
Як очевидно з приклада, при визначенні класу елемента, можна також використовувати коментар до нього, що заключають у тэги <descript></descript>
Атрибути елемента
Для того, щоб в описі елемента визначити його атрибути й описати властивості цих атрибутів ми повинні використовувати елемент attribute:
<elementType id="photo">
<attribute name="src"/>
<empty/>
</elementType>
У даному прикладі елементу <photo> визначається атрибут src, значенням якого може бути будь-яка послідовність дозволених символів:
<photo src="0"/>
<photo src="some text">
Подібно DTD, схеми даних дозволяють встановлювати обмеження на значення і засіб використання атрибутів. Для цього в дескрипторі <attribute> необхідно використовувати параметр atttype.
Наприклад, якщо ми хочемо зазначити, що значення атрибута повинно використовуватися програмою-аналізатором як унікальний ідентифікатор, то нам необхідно створити таке правило: