XML – код, прийнятий в якості рекомендації Консорціуму World Wide Web (W3C), аналогічний мови HTML. Він є менш складним і зручним у застосуванні, належить до підмножини мови стандарту розмітки SGML, використовуваного для створення структури документа. Основним будівельним блоком XML є елемент, який визначається початковими і кінцевими тегами. Всі дані в документі XML містяться в зовнішньому елементі, відомому як кореневої. Імена описують його вміст. А структура описує відносини між елементами в прикладі XML. Він підтримує вкладені або внутрішні елементи з ієрархічною структурою.
Історія
XML з’явився як спосіб подолати недоліки двох своїх попередників – SGML і HTML. В кінці 1980-х до появи Інтернету видавці цифрових ЗМІ реалізували різні переваги SGML для динамічного відображення інформації. Мова був надзвичайно потужним та розширюваним інструментом для семантичної розмітки і особливо корисний для каталогізації та індексації даних. SGML і сьогодні можна використовувати для створення нескінченної кількості мов розмітки.
Однак SGML залишається досить складним і дорогим, особливо для повсякденного використання в інтернеті. Додавання можливості SGML до текстового процесору подвоює або навіть влаштовує його ціну. Нарешті, комерційні браузери ясно дали зрозуміти, що вони не мають наміру коли-небудь підтримувати SGML.
Одним з найпопулярніших додатків SGML став розвиток мови розмітки гіпертексту HTML, створеного Тімом Бернерсом в кінці 1980-х. З моменту свого розвитку HTML став жертвою власної популярності, так як він був швидко прийнятий і розширено багатьма способами, що виходять за рамки його первісного бачення.
Він залишається популярним і сьогодні, хоча вважається невідповідним як формат зберігання даних загального призначення на відміну від інших мов. Приклад: XML усуває прогалину, будучи читання як для людини, так і для комп’ютера, і в той же час досить гнучким для підтримки обміну даними, незалежної від платформи й архітектури. У 1998 році W3C схвалив версію XML 1.0, таким чином, офіційно було створено нову мову.
Структура елементів
Існує два способи визначити структуру XML-документа (визначення типу даних (DTD) або схеми XML). Документи DTD були введені SGML. Вони відповідають розширеній формі Backus Naur (EBNF).
Документи XML-схеми пишуться з використанням синтаксису коду. Як DTD, так і XML-схема дозволяє задавати правила обмеження. Вони застосовуються до вмісту документів примірника цього ж коду. Вони приймають форму правил для перевірки XML структури.
Всі XML-документи мають один кореневий елемент, який містить подэлементы, їх подэлементы і т. д. Це призводить до ієрархічної деревоподібної структурі в них.
Завдяки розробці через SGML визначення типів документів більше підходять для додатків, орієнтованих на документи, таких як HTML. В HTML використовується DTD. Хоча він може визначати структуру документа, але не може визначати правила, які мають застосовуватися до даних. Тобто всі дані, що містяться в XML-документі, в DTD обробляються як рядок. Це підходить для мов розмітки. Але не підходить, коли додатком необхідно контролювати містяться в ньому дані.
Документ XML вважається «правильно сформованим», тобто може бути прочитаний і зрозумілий синтаксичним аналізатором, якщо його формат відповідає специфікації XML і він правильно розмічений. А елементи належним чином вкладені. Код також підтримує можливість визначення атрибутів для елементів і опису характеристик в початковому тегу. Документи можуть бути дуже простими для XML, приклад тексту “Привіт, світ!”:
<?xml version=”1.0″ encoding=”UTF-8″?>
<text>
<para>hello world</para>
</text>
Керівництво з безпеки брандмауера
Функції безпеки і можливості брандмауера XML роблять його цінним і суттєвим доповненням до стратегії веб-служби будь-якої організації. Порівняно з іншими брандмауер XML здатний проводити глибоку перевірку, а також має безліч інших функцій, які роблять його головним конкурентом для захисту даних і запобігання вразливостей і загроз.
Виробники постійно додають нові функції, щоб тримати зловмисників в напрузі і страху, запобігаючи їх шкідливі дії. На жаль, деякі брандмауери на ринку сьогодні все ще знаходяться за межами допустимості, коли мова заходить про захист повідомлень і веб-сервісів. Брандмауери XML захищають більш потужно, ніж традиційні. Приклад XML-файлу, який демонструє роботу мережевого екрану.
Традиційні брандмауери добре працюють зі звичайним трафіком, але екранування потоків даних вимагає зміни технології, щоб забезпечити захист. Це робить брандмауер XML одним з важливих елементів забезпечення безпеки веб-сервісів.
Підприємства, що розробляють веб-додатків та веб-служб на основі цього коду, все частіше звертаються до мови розмітки тверджень безпеки (SAML) для передачі ідентифікаційних даних та інформації про авторизації, тому їм необхідно захищати себе від атак протоколів XML і SAML на рівні самого додатка. Брандмауер XML може бути адекватним засобом безпеки при захисті багаторівневих систем.
Управління в SOA
Багато установки SOA стикаються з проблемами продуктивності, оскільки їм не вистачає належного управління даними. Незважаючи на весь галас і модні слова, які в даний час оточують SOA і прагнуть інтегрувати сервіс-орієнтовану архітектуру в свою ІТ-інфраструктуру, розробники все ще не враховують проблеми, пов’язані з інтеграцією даних та управлінням у їх проектах.
Приклад sitemap XML і нюанси використання демонструє можливості мови.
Суть полягає в тому, щоб розпізнати цінність даних організації, де б вони не знаходилися (під парасолькою SOA чи за його межами) і знайти методи, що дозволяють їм збирати і передавати інформацію між виробниками і споживачами з мінімальною складністю. Приклад XML-файлу SOA для збереження інформації представлений нижче.
Формуючи метадані з використанням XML, а потім, створюючи додатки XSLT для передачі їх компоненти SOA і з них, розробники отримують численні переваги:
Процес парсера
Однією з цілей формату XML було поліпшення форматів необроблених даних, таких як простий текст, шляхом включення докладних описів значення вмісту. Тепер, щоб мати можливість читати XML-файли, використовують синтаксичний аналізатор. Він (в основному) надає вміст документа через так званий API-інтерфейс прикладного програмування. Іншими словами, клієнтське додаток отримує доступ до вмісту XML-документа через інтерфейс замість того, щоб інтерпретувати код самостійно. Це можна продемонструвати на прикладі parser JAVA XML.
Синтаксичний аналізатор коду аналізує правильно сформований документ, вбудований в рядок поле і передає проаналізовані дані в вихідний поле запису.
При налаштуванні аналізатора XML користувач вказує два поля. Перше містить документ, друге – призначення для проаналізованих результатів. Можна визначити елемент роздільника. Це робиться для того, щоб розділити документ на кілька значень. Якщо він не визначений, XML Parser передає весь документ в поле у вигляді карти.
При визначенні цього елемента можна використовувати його або спрощене вираз XPath. Використовують елемент, коли він знаходиться безпосередньо під кореневим вузлом і спрощене вираз XPath (для більш глибокого доступу до даних в документі XML).
Якщо документ XML має більше одного значення, можна повернути перше значення у вигляді списку або згенерувати запис для кожного значення. При її створенні процесор включає всі інші вхідні поля в згенеровану запис. При необхідності аналізу декількох з них, процесор з-за безлічі значень включає в себе інші вхідні поля для кожної згенерованої запису.
Можна налаштувати процесор так, щоб XPath включався в кожен аналізований елемент і XML в атрибутах полів. Це також поміщає кожне простір імен в атрибут заголовка запису xmlns. Ще можна налаштувати процесор на включення атрибутів оголошень простору імен у запис (як атрибут поля). За замовчуванням він вже включає атрибути XML і оголошення простору імен у вигляді полів.
При налаштуванні аналізатора XML вказують поле для аналізу і поле виводу для використання. На панелі «Властивості» на вкладці «Загальні» налаштовують властивості, представлені в таблиці нижче.
Призначення | Опис |
Назва | Сценічний псевдонім, подібно до того, як у прикладі читання XML 1с 8 3 |
Опис | Необов’язковий опис |
Обов’язкові поля | Поля, які повинні включати дані для запису, переданої на сцену Можна включити поля, які використовують сцена Записи, які не включають усі обов’язкові поля обробляються на основі обробки помилок, налаштованої для конвеєра |
Передумови | Умови, які повинні оцінюватися як ІСТИНА, щоб дозволити запису увійти в стадію обробки. Натискають кнопку «Додати», щоб створити додаткові попередні умови. Записи, які не відповідають усім попереднім умовам, обробляються на основі обробки помилок, налаштованої для етапу. |
Помилка запису | Обробка помилок запису для етапи:
|
Створення масштабованого DOM
На відміну від DOM, SAX заснований на подіях, тому він не створює уявлення дерева вхідних документів в пам’яті. SAX обробляє елемент вхідного документа за елементами і може повідомляти про події і важливих даних методи зворотного виклику в додатку.
В Java XDK існує три способи створення DOM:
Документ аналізується як послідовність лінійних подій.
В цілому, SAX API надає наступні переваги:
Загалом, перевага JAXP полягає в тому, що користувач може використовувати його для написання сумісних додатків. Якщо програма використовує функції, доступні через JAXP, воно може дуже легко переключити реалізацію.
Основним недоліком JAXP є те, що він працює повільніше, ніж API-інтерфейси конкретного виробника.
Приклад створення повідомлень
При створенні XML-документів корисно одночасно створювати відкриваючий і закриваючий елементи. Після створення тегів користувач повинен заповнити контент. Одна з фатальних помилок для XML – забудькуватість при закритті закриваючий теги під час створення елементів.
Для початку потрібно оголосити версію XML. Після оголошення версії визначають кореневий елемент документа. В якості кореневого елемента використовують повідомлення, приклад JAVA XML:
<? xml version = “1.0” encoding = “iso-8859-1”?> <message> </ message>
Спосіб опису відносин в XML – це термінологія батьків і спадкоємця. У цьому прикладі батьківським або «кореневим елементом є той, який має дочірній елемент. Наведемо простий приклад читання XML, коли вони пов’язані в коді. Виконують відступ коду, щоб показати, що елемент є дочірнім по відношенню до іншого:
<?xml version=”1.0″ encoding=”iso-8859-1″?> <message>
<email> </email>
</message>
Тепер, коли є декларація XML, кореневої і дочірній елементи, що визначають інформацію, яку потрібно розкрити в електронному листі. Припустимо, потрібно зберегти інформацію про відправника, одержувача, темі та змісті тексту. Оскільки інформація про відправника і одержувача зазвичай знаходиться в заголовку документа, розглядають їх, як дочірні елементи батьківського елемента. Таким чином, в цьому разі, приклад XML-даних буде виглядати так:
<?xml version=”1.0″ encoding=”iso-8859-1″?> <message>
<email>
<header>
<sender>info@ххххххх.edu</sender> <recipient>info@хххххххх.edu</recipient>
</header> <subject>Re: XML Lesson </subject> <text>My XML project. </text>
</email>
</message>
Написання документа message
Деяка інформація в листі, яку потрібно знати, включає відправника, одержувача і текст листа. Крім того, потрібно знати дату, коли лист було відправлено і яке привітання було використано для початку повідомлення. Це буде виглядати в XML (c прикладом коду) наступним чином:
<?xml version=”1.0″ encoding=”iso-8859-1″?><message>
<letter>
<letterhead>
<sender>MyName</sender> <recipient>YourName</recipient> <date>2013</date>
</letterhead> <text>
<salutation>Hello</salutation>
How are you?
</text>
</letter>
</message>
Додають атрибути якщо потрібно відслідковувати, чи були ці повідомлення відповіді чи ні. Замість того щоб створювати додатковий елемент з ім’ям, присвоюють атрибут елемента і вказують, чи був цей документ відповіддю на попереднє повідомлення. JAVA XML приклад:
<email reply=”yes”>
або ж
<letter reply=”no”>
При створенні документів XML завжди корисно витратити небагато часу на прийняття рішення про те, яку інформацію потрібно зберегти, а також про те, які відносини будуть мати елементи.
Програми для розробників
По своїй суті XML дозволяє розробникам програмного забезпечення створювати словник і використовувати його для опису даних. Наприклад, при обміні даними між комп’ютерами число 42 не має сенсу. А якщо користувач вкаже це ж значення в градусах, то воно знайде сенс, оскільки температура процесора виражається в градусах Цельсія. Тільки коли відправник і одержувач мають узгоджене розуміння значення інформації, вони можуть використовувати її за призначенням.
Перед розробкою XML між системами вимагалося отримати певну кількість апріорних угод про даних та їх значення. З розвитком XML можна обмінюватися даними між системами без якого-небудь попереднього дозволу, за умови, що обидві системи розуміють один і той же словник, тобто “говорять” однією мовою. З часу розробки коду з’явилося кілька таких додатків.
Веб-публікація – XML дозволяє створювати інтерактивні сторінки, допомагає замовнику налаштовувати ці сторінки і робить створення додатків електронної комерції з більш інтуїтивним форматом XML, приклад представлений нижче.
Веб-пошук і автоматизація веб-завдань – код визначає тип інформації, що міститься в документі, спрощуючи отримання корисних результатів при пошуку в Інтернеті.
Загальні програми – XML надає стандартний метод доступу до інформації, полегшуючи для пристроїв всіх видів використання, зберігання, передачу та відображення даних.
Додатка електронного бізнесу – реалізація XML робить електронний обмін даними (EDI) більш доступним для обміну інформацією, транзакцій між підприємствами і транзакцій між клієнтами. Приклад XML запиту обробника подій, відкриття з’єднання і відправлення запитів виглядає наступним чином.
Додатки метаданих – код полегшує вираження метаданих в переносимом, багаторазово використовується форматі.
Поширені обчислення – XML надає переносимі і структуровані типи інформації для відображення на розповсюджуються (бездротових) обчислювальних пристроях, таких як персональні цифрові помічники (PDA), стільникові телефони та інші.
Переваги і недоліки мови
Для систем реляційних баз даних неможливо обробляти дані незалежно від їх контексту. Тому вимоги електронного бізнесу не виконуються. Традиційні бази даних не можуть обробляти аудіо, відео або складні дані.
Переваги мови:
Таким чином, приклад XML-документа самим наочним чином демонструє, що ця мова виявився надзвичайно успішним в області розмітки, обміну даними та метаданими, забезпечення їх взаємодії, прозорою транспортування і зберігання. Враховуючи поточний рівень інтересу до корпоративних систем наступного покоління, використання XML буде зростати, оскільки воно є основною технологією для веб-сервісів, розробки порталів і сервіс-орієнтованих архітектур.