XML (eXtensible Markup Language) — это язык разметки, который используется для хранения и передачи структурированных данных. Его используют в Java-разработке, в Android-разработке, при тестировании API, для хранения информации в различных базах данных, в лентах RSS.
Основное преимущество XML — язык позволяет структурировать данные внутри тегов, сделать информацию упорядоченной и понятной и для людей, и для компьютеров.

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

Например, пользователь может самостоятельно создать структуру для списка контактов, определив теги < contact >, < firstName >, < lastName >, < phone > и < email >. При необходимости можно добавить дополнительные поля
Разработка формата XML началась в 1996 году при поддержке Консорциума W3C (World Wide Web Consortium) — организации, которая занимается созданием и поддержанием стандартов для Всемирной паутины. Основной задачей было разработать простой, структурированный и гибкий язык для обмена данными в интернете.
Первая спецификация XML вышла в 1998 году. С тех пор формат совершенствуется, чтобы соответствовать современным требованиям.
Из чего состоит формат XML
Визуально XML похож на HTML — оба языка используют теги в угловых скобках. Однако их цели и применение кардинально отличаются. Если HTML создан для отображения контента в браузерах, то XML используется для хранения и передачи данных между системами.
Кроме того, HTML имеет стандартный, регламентированный набор тегов (например, <div>, <span>, <a>, <p>, <li>), а XML позволяет придумывать свои теги специально под задачу.
Ниже разберем подробнее, из чего состоит формат XML.
Теги
Каждый элемент в XML должен быть заключен в теги — текст в угловых скобках.

В примере у нас есть корневой элемент , внутри которого находятся элементы, заключенные в теги: < name >, < ingredients >, < instructions >
Теги бывают нескольких видов:
- Открывающий тег начинает элемент разметки. Примеры: <tag>, <book>, <name> и т.д.
- Закрывающий тег завершает элемент и всегда включает тот же текст, что и открывающий, с символом слеша. Например: </tag>, </book>, </name>. Если забыть поставить закрывающий тег, XML-документ будет некорректным.
Теги могут быть вложенными, то есть внутри одного тега может находиться другой. В примере с рецептом шоколадного торта, который представлен выше, теги <ingredient> являются вложенными для тега <ingredients>.
Корневой элемент
В любом XML-документе обязательно присутствует корневой элемент. Это элемент верхнего уровня — тег, с которого начинается и которым заканчивается документ и который заключает в себе все остальные элементы документа.
Корневой элемент в XML-документе — всегда только один. Он отражает общую суть данных, определяет логическую структуру, позволяет программам-парсерам корректно обрабатывать запросы и ответы.

В примере выше < catalog > является корневым элементом, который отражает суть документа — каталог книг, а также заключает в себе остальные элементы
Значение элемента
Это содержимое, которое находится между открывающим и закрывающим тегами, определяет смысловую нагрузку документа.
Значение элемента может:
- выражаться текстом или числом,
- содержать вложенные элементы.

В этом примере элемент < title > имеет значение «Война и мир», элемент < author > — значение «Лев Толстой», элемент < year > — значение «1869». Значения элементов содержат информацию, которую необходимо сохранить и передать
Атрибуты элемента
У элементов в XML могут быть атрибуты — дополнительные метаданные, которые содержат информацию об элементе. Атрибуты указываются в открывающем теге через пробел в формате название_атрибута = «значение атрибута».

В данном примере id="101", language="en", cover="hard" — атрибуты элемента < book >
Атрибуты делают разметку более информативной — благодаря им системе проще обрабатывать информацию, понимать, что ей пришло.
XML пролог
Иногда в документе XML встречается строка, которая указывает версию XML, кодировку и другие параметры. Эта строка называется XML прологом.

Version указывает версию XML (1.0 или 1.1), encoding — кодировку файла (например, UTF-8)
Строка не является обязательной, поэтому XML пролог можно не указывать. Но если он есть, то он обязательно должен быть на первой строке файла.
XSD-схема
XSD (XML Schema Definition) — это описание структуры XML-документа: как он должен выглядеть, что должен содержать. По сути, это ТЗ, инструкция, которая объясняет:
- какие элементы могут быть в XML-документе,
- в каком порядке они должны идти,
- какие у них могут быть атрибуты,
- какие данные допустимы (текст, числа и т.д.)
XSD-схема необходима разработчикам, которые пишут код для обработки XML, тестировщикам, которые проверяют данные перед загрузкой, и системам API. XSD-схема позволяет убедиться, что XML соответствует ожидаемому формату, также она помогает выявить ошибки до обработки данных.

Пример простой XSD-схемы
Где используют XML
В первую очередь данный формат необходим для хранения и передачи данных. XML используют в API для передачи данных между сервером и программой, в файлах конфигурации приложений, игр, в системах управления контентом (CMS) для хранения настроек и контента, в текстовых редакторах и сервисах для офиса. Например, пакеты Microsoft Office и LibreOffice применяют XML для сохранения документов и настройки параметров.
Кроме того, XML используют в машинном обучении и в обработке естественного языка (NLP). С помощью формата делают разметку текстовых данных, создают обучающие наборы.
Также XML задействуют в различных технологиях. Например, XML применяется при создании RSS-фидов и карты сайта — Sitemap.xml для поисковых систем Google, «Яндекс» и других. Популярный формат векторной графики SVG также основан на XML.
Еще одна сфера применения XML — электронная коммерция. Формат используют интернет-магазины и маркетплейсы для описания каталогов, характеристик товаров, для управления заказами, аналитики, API-интеграций с CRM, платежными системами и сервисами логистики.

Например, товарные фиды в «Яндекс Маркете» представляют собой файлы в формате XML, которые содержат ссылки и краткие описания для товаров
Преимущества XML-формата
XML имеет ряд преимуществ, благодаря которым этот метаязык остается актуальным:
Доступность. Язык прост и понятен даже людям, которые не имеют специальных знаний и не обладают навыками программирования. За счет того, что данные представлены в виде текста с тегами, их легко читать.
Универсальность. Формат XML является гибким и универсальным. Он доступен в API и коде и с его помощью можно описать любую структуру данных. В отличие от других похожих форматов, например JSON, в XML нет жестких ограничений на типы данных, что позволяет его использовать для описания сложных структур данных.
Расширение функциональности. В XML можно добавлять новые элементы и атрибуты, не меняя структуру документа. Это делает формат удобным и адаптивным к потребностям пользователей.
Совместимость. XML совместим с платформами и операционными системами, поддерживается популярными языками программирования, такими как Java, C#, Python, PHP.
Как открыть XML-файл
Существует несколько способов открыть XML-файл и посмотреть в нем информацию. Самый простой — использовать любой современный браузер: Google Chrome, Safari, Яндекс Браузер, Firefox. Подключение к интернету для этого не требуется.

Чтобы открыть файл через браузер, достаточно щелкнуть по нему и через меню «Открыть с помощью» выбрать нужный браузер. Документ отобразится в виде древовидной структуры. Файл выше открыт в «Яндекс Браузере»
Также можно воспользоваться текстовыми редакторами MS Word, блокнот и т.д. Они позволяют не только открыть файл, но и внести изменения в код, если это необходимо. Этот вариант простой и доступный, но если файл большой и содержит множество элементов, просматривать его через блокнот или текстовый редактор будет не очень удобно.
Еще один вариант для тех, кто работает с XML-файлами и хочет проверить корректность разметки, — воспользоваться специальными программами. Открывать и редактировать документ можно с помощью Notepad++ (Windows) или Oxygen XML Editor (Windows, Mac OS X и Linux).
Также существуют специальные онлайн-сервисы, которые позволяют не только открыть XML-файлы, но и проверить корректность структуры, найти ошибки. Наиболее известными онлайн-сервисами для работы с XML являются XMLGrid, XML Validator, CodeBeautify XML Viewer.

Проверить файл в онлайн-сервисах можно несколькими способами: загрузить содержимое документа, загрузить сам файл или указать на него ссылку. Сервис проверит документ за доли секунд и укажет, что надо исправить
Главные мысли
- Это расширяемый язык разметки, который используется для структурирования данных.
- XML используют в разработке, в машинном обучении, для передачи данных по API, для хранения информации в различных базах данных, в лентах RSS.
- Основные преимущества XML — гибкость, универсальность, возможность расширять функциональность, а также совместимость с различными платформами и ОС.