Xml- це дуже просто ..., xml, статті, програмування - програмування c, delphi, c #

Судячи з намітився тенденціям, в майбутньому XML буде служити сполучною ланкою між різними платформами і додатками. Що ж стосується застосування XML у бізнесі, то найкращою областю для цього фахівці вважають B2B (business-to-business). Уже зараз багато компаній, що спеціалізуються в електронній комерції, активно застосовують розширювана мова розмітки для поліпшення взаємодії з партнерами.

Що ж таке XML? Якщо мова йде про формальне визначення, я б запропонував наступне: XML - це універсальний, що не залежить від платформи мова розмітки, який можна використовувати для подання ієрархічних даних і уніфікації інформації, що передається. Сама абревіатура розшифровується як Extensible Markup Language, що в перекладі означає «розширювана мова розмітки». Як і HTML (Hypertext Markup Language), XML є нащадком SGML (Standard General Markup Language) - «дідуся» мов розмітки, який протягом багатьох років використовується у видавничій справі. Іноді кажуть, що XML - це не мова, а скоріше метамова, за допомогою якого можна визначати інші мови. Дійсно, шляхом створення нових тегів і визначення нових структур за допомогою цих тегів ми фактично створюємо нові мови з їх власним синтаксисом і семантикою.

Передбачаю давно напрошується питання: чому ж був поганий HTML? Останні версії цієї мови в поєднанні з каскадними таблицями стилів (CSS) дозволяють створювати дуже красиві web-сайти і мають практично необмеженими можливостями форматування гіпертекстових документів. Навіщо ж нам морочити голову, винаходити і додавати нові теги, коли і стандартних елементів (плюс можливості стильових таблиць) вистачає навіть для самого химерного оформлення Web-сторінки? Справа в тому, що XML в його «чистому» вигляді слабо пов'язаний з форматуванням документів. Альфа і омега цієї мови - можливість семантично і синтаксично коректно описувати складні структуровані дані. Правильно ж представлені дані легше обробляти, передавати і представляти користувачеві.

Уявімо собі, що нам необхідно описати деякі дані про людину, наприклад, його ім'я і вік. Наступний фрагмент HTML-документа виконує це завдання:

Тепер спробуємо зробити те ж саме за допомогою XML:

Цей тривіальний приклад добре демонструє відмінності в поданні даних за допомогою HTML і XML. Дійсно, те, що відносилося до тексту в HTML-поданні (слова «Name» і «Age»), відноситься до структури в XML-документі (теги і ). Таким чином, XML дозволяє краще структурувати збережену і передану інформацію. Якщо в традиційному HTML поняття «уявлення» і «візуалізація» часто змішуються, то при роботі з XML ми чітко поділяємо ці поняття. Все, що відноситься до опису предметної області, робиться засобами XML, а то, що відноситься до візуалізації, ми залишаємо спеціальними програмами і стильовим таблиць.

Синтаксис простий, але строгий ...

Розглянемо наступний простий документ XML:

є декларацією використовуваної версії мови. В даному випадку це версія 1.0. Чи не пропускайте цей рядок в ваших документах!

описує кореневий елемент документа (the root element). Укладач як би попереджає: «цей документ містить інформацію про людей».

Елементи, представлені тегами і є дочірніми вузлами (child nodes) кореневого вузла . Слово «class» являє собою ім'я атрибута, значення якого дорівнює children. вузли , і є нащадками (descendants) вузла і дочірніми вузлами для . Нарешті, теги , і - це «діти» для , «Онуки» для і «правнуки» для .

визначає кінець кореневого елемента.

Відзначимо деякі особливості синтаксису XML.

На відміну від HTML, все елементи XML повинні мати закриває тег (closing tag). В HTML наступний запис допустима:

У XML опускати закривають теги не можна. Для даного прикладу уявлення тексту в форматі XML могло б виглядати так:

Втім, замість

ми могли б використовувати інший тег, наприклад, відсутній в HTML тег , благо XML дозволяє нам винаходити наші власні теги. Зауважимо, що перша, «декларативна» рядок документа не містить закриває тега. Це не помилка. Справа в тому, що декларації не є елементами XML і не мають закривають тегів.

На відміну від HTML, теги XML чутливі до регістру (case sensitive). Якщо в HTML рядки символів , і являють собою один і той же тег, то в XML ці теги не еквівалентні. приклади:

В HTML іноді можна порушити правила вкладення тегів без важких наслідків (у вигляді повідомлення про помилку). У XML це неможливо. Наприклад, код

в HTML допускається. У XML такий запис є хибною. Правильний код виглядав би так:

На відміну від HTML, всі документи XML повинні мати кореневий елемент. Всі інші елементи є «нащадками» кореневого. При цьому строгі правила вкладення не повинні порушуватися.

На відміну від HTML, XML зберігає прогалини. рядок

в HTML буде показана так:

У XML все прогалини будуть збережені.

В HTML значення атрибутів елементів часто можуть не укладатися в лапки. У XML все значення атрибутів неодмінно повинні бути укладені в лапки. Порушення цього правила обов'язково призведе до помилки. Якщо в нашому прикладі третій рядок змінити наступним чином:

синтаксис XML буде порушений.

«Хороші» і «погані» документи

Документи XML, що задовольняють всім вимогам синтаксису, називають правильними (well-formed). З цієї точки зору побудований нами документ з кореневим елементом є правильним. Я сподіваюся, що на вашому комп'ютері завчасно було встановлено Microsoft Internet Explorer 5.0. Якщо так, то ми можемо перевірити «правильність» нашого документа прямо зараз. Збережіть текст документа в файлі myFirstXML.xml і відкрийте цей файл в Internet Explorer. Якщо ви правильно скопіювали текст, вийде щось на зразок цього (рис. 1).

Якби ми допустили якусь синтаксичну помилку, наприклад, забули закрити який-небудь тег, програма-аналізатор повідомила б про це через вікно Internet Explorer.

Слід зазначити, що я перерахував лише основні правила синтаксису XML, акцентуючи увагу Новомосковсктеля на їх відміну від правил побудови документів HTML. Крім правильних документів розрізняють також дійсні (valid) документи, які задовольняють спеціальним визначенням типу документа (Document Type Definition, DTD). Визначення типу документа є опис логічної структури, відповідно до якої будується документ. DTD визначає частини документа і вказує, які елементи і в якому порядку в них можуть розміщуватися. Визначення типу документа - це, по суті справи, набір правил, який передається спеціальній програмі-аналізатору (parser) для обробки документа і визначення його відповідності правилам побудови.

Детальні визначення типу документа не є обов'язковими (хоча рекомендуються) для побудови XML-документів. В даний час розробляються нові, можливо, більш ефективні засоби завдання структури документа (наприклад, так звані схеми). Обговорення деталей DTD виходить за рамки даної статті. Хочу лише зазначити, що перший рядок розглянутого нами раніше документа

є частиною DTD (в розглянутому прикладі DTD містить лише одну цю рядок).

презентація документа

Я відчуваю, що Новомосковсктель втомився від теоретичних міркувань і чекає конкретних вказівок, які допомогли б йому на власні очі оцінити роботу XML. Я вже писав, що XML насамперед використовується для уявлення, а не для візуалізації даних. Проте, існують витончені методи візуалізації документів XML. Спробуємо візуалізувати розглянутий раніше документ за допомогою каскадних таблиць стилів (CSS), про які ви, ймовірно, вже чули.

Візуалізація документів XML за допомогою CSS по суті нічим не відрізняється від візуалізації документів HTML. Потрібно лише пов'язати потрібний документ з потрібною таблицею стилів. Що може бути простіше?

Створіть файл myFirstXML.css в тій же папці, що і myFirstXML.xml і занесіть в нього такі визначення стилів:

Тут display: block означає, що даний елемент потрібно представляти в вигляді окремого блоку в вікні браузера, color визначає колір переднього плану, margin-bottom: 30pt тут означає, що від кожного елемента слід відступити на 30 пунктів вниз перед показом наступного елемента. Нарешті, елементи зі значенням атрибута class, рівним children, слід підсвітити жовтим кольором.

Не забудьте зберегти файл.

Додайте в раніше створений файл myFirstXML.xml рядок

з метою декларувати зв'язок документа XML з стильової таблицею CSS.

Знову збережіть файл.

Відкрийте файл myFirstXML.xml у вікні Internet Explorer.

Ні, не все так просто ...

Таблиці CSS, що дозволяють візуалізувати XML-документи, все ж не вирішують усіх проблем. В даний час є набагато більш потужні засоби для трансформації та презентації документів XML, що дозволяють не тільки довільним чином форматувати документ XML, а й змінювати його структуру, здійснювати пошук і сортування в документі і виконувати інші цікаві і корисні операції. Для розширення таких можливостей був розроблений спеціальний розширювана мова стилів (XSL). У Новомосковсктеля може виникнути питання: «Якщо я хочу пов'язувати документ XML з різними стильовими таблицями, чи повинен я кожен раз міняти рядок документа, який декларує його зв'язок зі стильової таблицею, або це можна робити динамічно, використовуючи скрипти або мови програмування?» Звичайно, можна ! Втім, про це наступного разу ...

Схожі статті