Останнє оновлення: 21 травня 2025

Що таке XML?
XML (розширювана мова розмітки) — це мова розмітки та формат файлів, що використовується для зберігання, передачі та відтворення даних. Вона забезпечує структурований підхід до кодування інформації, роблячи її як людсько‑читабельною, так і машинно‑читабельною.
Ключові особливості XML
1. Визначено відкритими стандартами
- Засновано World Wide Web Consortium (W3C) у 1998 році за специфікацією XML 1.0.
- Дотримується суворих правил, щоб дані були структурованими та легкими для інтерпретації.
2. Цілі дизайну
- XML створено з урахуванням простоти, універсальності та зручності використання на різних платформах.
- Використовує текстовий формат, що полегшує читання та редагування.
3. Підтримка Unicode
- XML підтримує Unicode, що дозволяє зберігати та обробляти текст багатьма мовами.
4. Універсальність
- Спочатку створений для документів, XML сьогодні широко використовується для представлення даних у різних галузях, включаючи веб‑служби, API та файли налаштувань.
5. Схеми та API
- Структури XML можна визначати за допомогою Document Type Definition (DTD), XML Schema (XSD) або Relax NG.
- Різноманітні API, такі як DOM (Document Object Model) та SAX (Simple API for XML), забезпечують обробку XML.
6. Поширені використання XML
- Обмін даними між різними системами (наприклад, веб‑служби, API).
- Файли налаштувань у програмному забезпеченні.
- Зберігання структурованої інформації (наприклад, RSS‑стрічки, графіка SVG, формати документів типу DOCX).
- Веб‑розробка (наприклад, XHTML, SOAP, застосунки на базі AJAX).
Тепер, коли ви знаєте, що таке XML, дізнайтеся, як читати та редагувати XML‑файли за допомогою цього простого посібника.
Огляд XML
1. Основна мета XML: Серіалізація
Серіалізація в XML означає:
- Зберігання даних у структурованому форматі.
- Передачу даних між різними системами.
- Відтворення даних у придатній для використання формі.
Коли дві системи мають обмінюватися інформацією, XML надає стандартизований файл для взаємодії. Це працює як «мовний місток» для обміну структурованими даними.
2. XML як мова розмітки
XML — це мова розмітки, що означає:
- Позначає дані тегами для чіткої структури.
- Організує інформацію ієрархічно.
- Категоризує дані за допомогою метаданих.
Приклад:
<book>
<title>XML Basics</title>
<author>John Doe</author>
</book>
Тут <book>, <title> і <author> — це теги, які визначають елементи даних.
3. Схема XML (XSD) та валідація
XML Schema (XSD) визначає структурні правила для XML‑документів.
XML‑документи можуть бути:
- Коректно сформованими → Дотримуються базових правил синтаксису (правильне вкладення, закриття тегів).
- Валідними → Відповідають правилам схеми (обов’язкові елементи, правильні типи даних).
Приклад правила XSD:
<xs:element name="title" type="xs:string"/>
Це гарантує, що <title> містить рядкове значення.
4. Типи медіа XML (RFC 7303)
IETF RFC 7303 визначає типи медіа XML для передачі даних:
- application/xml → Стандартні дані XML.
- application/xml-external-parsed-entity → Оброблені XML‑сутності.
- application/xml-dtd → Документи XML DTD.
Для форматів на основі XML використовується суфікс +xml (наприклад, image/svg+xml для SVG‑зображень).
5. XML у мережевих застосунках (RFC 3470 / IETF BCP 70)
IETF BCP 70 (RFC 3470) описує найкращі практики використання XML у мережевих застосунках, забезпечуючи безперешкодну взаємодію даних між системами.
Для програмної роботи з XML ознайомтеся з найкращими XML‑парсерами для Python, Java та JavaScript.
1. Застосування XML
XML — гнучка мова розмітки, призначена для обміну даними через Інтернет. Її синтаксис вплинув на безліч форматів документів та протоколів обміну, ставши фундаментальною технологією в багатьох галузях.
Загальні формати на основі XML:
- Веб‑стрічки: RSS, Atom
- Офісні документи: Office Open XML, OpenDocument
- Графіка та 3D‑моделі: SVG, COLLADA
- Веб‑технології: XHTML
- Протоколи обміну даними: SOAP, XMPP
- AJAX: Використовує XML для асинхронного обміну даними
Стандартні галузеві стандарти, що використовують XML:
- Охорона здоров’я: HL7 (Health Level 7)
- Туризм: OpenTravel Alliance
- Фінанси: FpML (Financial products Markup Language)
- Нерухомість та іпотека: MISMO
- Урядовий обмін даними: National Information Exchange Model
XML у науці:
У метеорології XML використовується для оперативного представлення даних про погоду згідно зі стандартами IWXXM. Аналогічно, Darwin Information Typing Architecture (DITA) — це XML‑стандарт, широко застосовуваний у видавничій справі.
Для практичної реалізації перегляньте наш посібник щодо того, як читати та редагувати XML у Python, Java та JavaScript.
2. Ключова термінологія в XML
Розуміння основної термінології XML є важливим для ефективної роботи з документами.
Символ
XML‑документ — це послідовність Unicode‑символів. XML 1.1 допускає майже всі Unicode‑символи, за винятком нульового символу (U+0000), який суворо заборонений.
Процесор і застосунок
- XML‑процесор (парсер) читає та аналізує розмітку XML.
- Застосунок отримує структуровані дані від процесора та виконує необхідні дії.
Розмітка та вміст
XML розділяє символи на розмітку та вміст:
- Розмітка: включає елементи, атрибути та сутності (наприклад,
<tag>та&). - Вміст: фактичні дані всередині елементів.
- Секції CDATA: дозволяють розміщувати текст, який не повинен аналізуватись як розмітка, у вигляді
<![CDATA[ ... ]]>.
Теги та елементи
- Теги — конструкції розмітки, обгорнені в
< >.<section>(початковий тег)</section>(закриваючий тег)<line-break />(тег порожнього елементу)
- Елементи — логічні компоненти, визначені тегами.
- Приклад:
<greeting>Hello, world!</greeting>
- Приклад:
Атрибути
Атрибути надають метадані елементам у вигляді пар «ім’я‑значення». Приклад:
<img src="image.jpg" alt="Description" />
src="image.jpg" та alt="Description" — це атрибути елемента <img>.
3. Символи та екранування в XML
Допустимі Unicode‑символи в XML
XML‑документи дозволяють лише певні Unicode‑символи, щоб забезпечити коректний парсинг.
Дозволені символи в XML 1.0:
- Керуючі символи:
U+0009(табуляція)U+000A(перенос рядка)U+000D(повернення каретки)
- Текстові символи:
U+0020–U+D7FFU+E000–U+FFFDU+10000–U+10FFFF
Покращення в XML 1.1:
- Дозволяються всі U+0001–U+001F керуючі символи, але їх треба екранувати.
- U+0000 (нульовий символ) залишається забороненим.
4. Кодування в XML
Поширені кодування XML:
XML підтримує Unicode‑базовані кодування, зокрема:
- UTF-8 (рекомендоване за замовчуванням)
- UTF-16 (повинен підтримуватись усіма XML‑парсерами)
- ASCII, ISO‑8859‑X (застарілі кодування)
Оголошення кодування в XML:
Заголовок XML може вказувати кодування:
<?xml version="1.0" encoding="UTF-8"?>
- Якщо кодування не вказано, за замовчуванням використовується UTF‑8.
- UTF‑16 потребує BOM (Byte Order Mark) для правильного визначення.
5. Екранування спеціальних символів в XML
Оскільки синтаксис XML резервує певні символи, їх необхідно екранувати, щоб уникнути конфліктів.
Попередньо визначені сутності XML:
| Символ | Екранована форма | Приклад |
|---|---|---|
< (менше) | < | I <3 XML → I <3 XML |
> (більше) | > | x > y → x > y |
& (амперсанд) | & | AT&T → AT&T |
' (апостроф) | ' | "O'Reilly" → O’Reilly |
" (лапки) | " | She said "hello" → She said “hello” |
Числові посилання на символи:
Для спеціальних символів, які не можна ввести, використовуйте числові посилання:
- Десяткове:
中 <!-- Chinese character "中" --> - Шістнадцяткове:
中 <!-- Chinese character "中" --> - Приклад:Відображається як: I <3 Jörg
<message>I <3 Jörg</message>
Обробка бінарних даних:
XML не підтримує необроблені бінарні дані. Замість цього використовуйте кодування Base64.
6. Коментарі в XML
Синтаксис коментаря XML:
<!-- This is a valid XML comment -->
Правила коментарів XML:
- Не можуть розташовуватись перед декларацією XML.
- Не можуть містити
--(подвійний дефіс) всередині коментаря. - Посилання на сутності ігноруються в коментарях.
Приклад:
<!-- This is a comment with < and & symbols -->
Висновок
XML — ключова технологія для структурованого обміну даними, що живить веб‑стрічки, офісні документи, наукові дані та галузеві стандарти. Розуміння основної термінології XML, правил кодування та механізмів екранування забезпечує створення коректних XML‑документів, які працюватимуть у різних системах.
Дотримуючись найкращих практик щодо кодування символів та їх екранування, розробники можуть уникнути помилок парсингу та забезпечити сумісність у застосунках, що базуються на XML.