Последнее обновление: 25 марта 2025 года

Заголовок - Что такое XML: Всестороннее руководство

Что такое XML?

XML (Extensible Markup Language) — это язык разметки и формат файла, используемый для хранения, передачи и восстановления данных. Он предоставляет структуру для кодирования информации, делая её как читабельной для человека, так и машинно-читаемой.

Ключевые особенности XML

1. Определяется открытыми стандартами

  • Установлен Консорциумом World Wide Web (W3C) в 1998 году в рамках Спецификации XML 1.0.
  • Использует строгие правила, чтобы гарантировать, что данные структурированы и легко интерпретируемы.

2. Цели дизайна

  • XML разработан с упором на простоту, общность и удобство использования на различных платформах.
  • Использует текстовый формат, что делает его легким для чтения и редактирования.

3. Поддержка Unicode

  • XML поддерживает Unicode, что позволяет хранить и обрабатывать текст на нескольких языках.

4. Многофункциональность

  • Первоначально созданный для документов, XML теперь широко используется для представления данных в различных областях, включая веб-сервисы, API и файлы конфигурации.

5. Схема и API

  • Структуры XML могут быть определены с использованием Определения типа документа (DTD), Схемы XML (XSD) или Relax NG.
  • Различные API, такие как DOM (Модель объекта документа) и SAX (Простой API для XML), позволяют обрабатывать XML.

6. Общие применения XML

  • Обмен данными между различными системами (например, веб-сервисы, API).
  • Файлы конфигурации в программных приложениях.
  • Хранение структурированной информации (например, RSS ленты, графика SVG, форматы документов, такие как DOCX).
  • Веб-разработка (например, XHTML, SOAP, приложения на основе AJAX).

Обзор XML

1. Основная цель XML: Сериализация

Сериализация в XML означает:

  • Хранение данных в структурированном формате.
  • Передача данных между различными системами.
  • Восстановление данных в пригодной для использования форме.

Когда двум системам необходимо обменяться информацией, XML предоставляет стандартизированный формат файла для интероперабельности. Он выступает в роли “лингва франка” для обмена структурированными данными.

2. XML как язык разметки

XML — это язык разметки, что означает, что он:

  • Маркирует данные тегами для ясной структуры.
  • Организует информацию иерархически.
  • Категоризирует данные с использованием метаданных.

Пример:

<book>
    <title>Основы XML</title>
    <author>Джон Доу</author>
</book>

Здесь <book>, <title>, и <author> — это теги, определяющие элементы данных.

3. Схема XML (XSD) и валидация

Схема XML (XSD) определяет структурные правила для XML-документов.

XML-документы могут быть:

  • Корректными → Соответствуют базовым синтаксическим правилам (правильное вложение, закрывающие теги).
  • Действительными → Соответствуют правилам схемы (обязательные элементы, правильные типы данных).

Пример правила XSD:

<xs:element name="title" type="xs:string"/>

Это гарантирует, что <title> должен содержать значение типа string.

4. Типы медиа для XML (RFC 7303)

IETF RFC 7303 определяет типы медиа для передачи данных XML:

  • application/xml → Стандартные данные XML.
  • application/xml-external-parsed-entity → Разобранные сущности XML.
  • application/xml-dtd → Документы DTD XML.

Для форматов на основе XML используется суффикс +xml (например, image/svg+xml для изображений SVG).

5. XML в сетевых приложениях (RFC 3470 / IETF BCP 70)

IETF BCP 70 (RFC 3470) определяет лучшие практики для использования XML в сетевых приложениях, обеспечивая бесшовную интероперабельность данных между системами.


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 (Язык разметки финансовых продуктов)
  • Недвижимость и ипотека: MISMO
  • Обмен данными правительства: Национальная модель обмена информацией

XML в науке:

В метеорологии XML используется для представления оперативных данных о погоде в соответствии со стандартами IWXXM. Аналогично, Архитектура типов информации Darwin (DITA) — это стандарт XML, широко используемый в издательском деле.


2. Ключевая терминология в XML

Понимание основной терминологии в XML имеет решающее значение для эффективной работы с XML-документами.

Символ

XML-документ — это последовательность символов Unicode. XML 1.1 позволяет использовать практически все символы Unicode, за исключением нулевого символа (U+0000), который строго запрещен.

Процессор и приложение

  • Процессор XML (или парсер) читает и анализирует разметку XML.
  • Приложение получает структурированные данные от процессора и действует на них.

Разметка и контент

XML делит символы на разметку и контент:

  • Разметка: Включает элементы, атрибуты и сущности (например, <tag> и &amp;).
  • Контент: Реальные данные внутри элементов.
  • Секции CDATA: Позволяют тексту, который не следует интерпретировать как разметку, заключаться в <![CDATA[ ... ]]>.

Теги и элементы

  • Теги: Разметочные конструкции, заключенные в < >.
    • <section> (Тег начала)
    • </section> (Тег конца)
    • <line-break /> (Элемент с пустым тегом)
  • Элементы: Логические компоненты, определяемые тегами.
    • Пример: <greeting>Привет, мир!</greeting>

Атрибуты

Атрибуты предоставляют метаданные для элементов с использованием пар “имя-значение”. Пример:

<img src="image.jpg" alt="Описание" />
  • src="image.jpg" и alt="Описание" — это атрибуты элемента <img>.

3. Символы и экранирование в XML

Допустимые символы Unicode в XML

XML-документы разрешают только определенные символы Unicode, чтобы обеспечить правильный анализ.

Допустимые символы в XML 1.0:

  • Управляющие символы:
    • U+0009 (Горизонтальная табуляция)
    • U+000A (Перевод строки)
    • U+000D (Возврат каретки)
  • Текстовые символы:
    • U+0020–U+D7FF
    • U+E000–U+FFFD
    • U+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 (маркер порядка байтов) для правильного обнаружения.

5. Экранирование специальных символов в XML

Поскольку синтаксис XML резервирует определенные символы, они должны быть экранированы, чтобы избежать конфликтов.

Предопределенные сущности XML:

СимволЭкранированная формаПример
< (Меньше)&lt;I &lt;3 XMLI <3 XML
> (Больше)&gt;x &gt; yx > y
& (Амперсанд)&amp;AT&amp;TAT&T
' (Одинарная кавычка)&apos;"O&apos;Reilly"O’Reilly
" (Двойная кавычка)&quot;She said &quot;hello&quot;She said “hello”

Числовые ссылки на символы:

Для специальных символов, которые нельзя напечатать, используйте числовые ссылки:

  • Десятичные:
    &#20013;  <!-- Китайский символ "中" -->
    
  • Шестнадцатеричные:
    &#x4E2D;  <!-- Китайский символ "中" -->
    
  • Пример:
    <message>I &lt;3 J&#xF6;rg</message>
    
    Отобразится как: I <3 Jörg

Обработка двоичных данных:

XML не поддерживает исходные двоичные данные. Вместо этого используйте Base64 кодирование.


6. Комментарии в XML

Синтаксис комментариев XML:

<!-- Это допустимый XML-комментарий -->

Правила для XML-комментариев:

  • Не могут появляться перед декларацией XML.
  • Не могут содержать -- (двойной дефис) внутри комментария.
  • Ссылки на сущности игнорируются в комментариях.

Пример:

<!-- Это комментарий с символами < и & -->

Заключение

XML является важной технологией для обмена структурированными данными, поддерживая веб-ленты, офисные документы, научные данные и отраслевые стандарты. Понимание ключевой терминологии XML, правил кодировки и механизмов экранирования гарантирует корректные XML-документы, которые правильно функционируют на различных системах.

Следуя лучшим практикам в кодировке символов и экранировании, разработчики могут избежать ошибок синтаксического анализа и обеспечить совместимость в приложениях на основе XML.