Код
#статьи

Что такое XML-формат и где его применяют

Возможно, он вам и не понадобится, но знать на всякий случай полезно.

Иллюстрация: Оля Ежак для Skillbox Media

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

Содержание


ЭКСПЕРТ

Андрей Машковцев

Эксперт Skillbox по Data Science и аналитике данных. Старший аналитик DWH в «Т-Банк». Ведёт телеграм-канал «Лайфхаки в аналитике».

Что такое XML и зачем он нужен

XML (eXtensible Markup Language) — это расширяемый язык разметки, предназначенный для хранения и передачи данных в структурированном виде. Данные находятся внутри тегов, которые помогают организовать данные в логической иерархии, понятной человеку и компьютеру.

Пример XML-разметки:

<message>
   Привет, мир!
</message>

В нашем случае <message> и </message> — это теги, которые определяют начало и конец элемента. Фраза «Привет, мир!» — это данные внутри тега, которые необходимо сохранить или передать.

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

XML применяется во множестве областей. Его часто используют для обмена данными между серверами и клиентами в веб-сервисах и API. Например, протокол SOAP (Simple Object Access Protocol) передаёт сообщения между сервисами в формате XML. Вот пример SOAP-запроса:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
   <soap:Header/>
   <soap:Body>
       <m:GetStockPrice xmlns:m="https://www.example.org/stock">
           <m:StockName>GOOG</m:StockName>
       </m:GetStockPrice>
   </soap:Body>
</soap:Envelope>

Запрос о том, сколько стоит акция GOOG (Google), отправляется на сервер, который обрабатывает его и возвращает ответ с текущей ценой.

Также XML часто встречается в конфигурационных файлах, которые содержат параметры и настройки программного обеспечения:

<config>
   <database>
       <host>localhost</host>
       <port>3306</port>
       <username>root</username>
       <password>password</password>
   </database>
</config>

В этом примере указаны параметры подключения к базе данных. Элементы <host>, <port>, <username>, и <password> содержат информацию о сервере базы данных, порте подключения и учётные данные для доступа.

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

Ещё XML задействован во многих технологиях и стандартах. Например, SVG (Scalable Vector Graphics) — это формат для описания векторной графики с помощью XML, который позволяет создавать масштабируемые изображения. Посмотрите на пример записи SVG-графики:

<svg width="300" height="300" xmlns="http://www.w3.org/2000/svg">
   <polygon points="150,50 250,250 50,250" fill="lightblue" stroke="black" stroke-width="4"/>
</svg>

В этом примере изображён треугольник размером 300×300 пикселей, залитый светло-голубым цветом и обведённый чёрной линией. Если захотите поэкспериментировать, добавьте этот код в онлайн-редактор SVG-графики и поиграйте с параметрами.

Мы рассмотрели лишь несколько примеров, но и по ним понятно, насколько XML важен для хранения и обмена данными. Гибкость и структура делают его полезным инструментом для разработчиков, системных администраторов и специалистов по работе с данными.

Как устроен и из чего состоит XML

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

  • Декларация XML. Разметка начинается с записи: <? xml version="1.0» encoding="UTF-8»?>. Эта строка указывает версию XML и кодировку документа, что помогает правильно интерпретировать содержимое файла.
  • Элементы. Это основные строительные блоки XML-документа. Они заключены в теги — например, <book>…</book> — и могут содержать текст, атрибуты и другие элементы.
  • Атрибуты. Это дополнительные данные, которые можно добавить к элементам, чтобы более точно указать их характеристики. Они записываются внутри открывающего тега и позволяют добавлять дополнительную информацию без создания новых элементов. Например, в элементе <book genre="учебник"> атрибут genre указывает на жанр книги, что помогает более точно описать её содержание.
  • Текстовое содержимое. К тексту относится всё, что находится между открывающим и закрывающим тегами элемента. Например, <title>XML для начинающих</title>.
  • Комментарии. Это элементы разметки, которые позволяют добавлять заметки и пояснения в код. Они заключены в <! --… -->, не влияют на обработку документа и нужны для удобства разработчиков.

Мы познакомились с основными элементами XML-файла. Теперь давайте рассмотрим правила, которые помогут вам создать первый документ.

✅ XML-документ должен иметь один корневой элемент, который содержит все остальные элементы. Например:

<library>
   <!-- Содержимое -->
</library>

❌ Неправильно, если в документе нет корневого элемента или если их несколько. Вот пример, когда документ не будет корректно обработан:

<library>
   <!-- Содержимое -->
</library>
<books>
   <!-- Другие элементы -->
</books>

✅ Все элементы должны быть правильно вложены. То есть каждый элемент должен быть закрыт перед тем, как начинается следующий:

<book>
   <title>XML для начинающих</title>
   <author>Иван Иванов</author>
</book>

❌ Неправильно, если элементы не закрыты или неправильно вложены:

<book>
   <title>XML для начинающих
   <author>Иван Иванов</book>

✅ В отличие от HTML, язык XML строг к синтаксису. Все элементы должны быть правильно закрыты и написаны в едином регистре. Также значения атрибутов обязательно должны быть заключены в кавычки:

<book title="XML для начинающих" author="Иван Иванов">
   <price>500</price>
</book>

❌ Пример неправильного синтаксиса: значение одного из атрибутов не заключено в кавычки, один из элементов не закрыт, есть теги с разным регистром:

<Book title=XML для начинающих author="Иван Иванов">
   <price>500
</BOOK>

Как вы могли заметить, в XML нет фиксированного набора тегов. Вы можете создавать собственные теги в соответствии с требованиями вашего проекта и использовать их для хранения данных. Теперь, зная всё это, давайте создадим свою первую XML-запись:

<?xml version="1.0" encoding="UTF-8"?>

<!-- Корневой элемент -->
<library>
   <!-- Комментарий: Начало списка книг -->
  
   <!-- Элемент книги с атрибутом -->
   <book genre="учебник">
       <!-- Текстовое содержимое -->
       <title>XML для начинающих</title>
       <author>Иван Иванов</author>
       <price>500</price>
   </book>
  
   <!-- Ещё один элемент книги -->
   <book genre="роман">
       <title>Приключения XML</title>
       <author>Мария Петрова</author>
       <price>600</price>
   </book>
  
</library>

Как открыть файл XML

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

Если вам нужно просто просмотреть XML-файл, вы можете использовать любой современный браузер: Chrome, Firefox, Safari или Edge. Для этого дважды щёлкните по файлу или перетащите его в окно браузера. Содержимое выбранного документа будет отображено в виде древовидной структуры, позволяющей удобно перемещаться и находить фрагменты.

Если вы хотите внести небольшие изменения в XML-документ, попробуйте воспользоваться любым текстовым редактором. Например, Notepad в Windows или TextEdit в macOS. Для начала работы перетащите XML-файл в окно редактора или воспользуйтесь меню: выберите «Файл» → «Открыть» и найдите нужный документ. После внесения изменений не забудьте сохранить файл.

Если вам нужно заполнить или отредактировать XML-документ, обычные текстовые редакторы могут оказаться неудобными. Лучше использовать редакторы кода с функциями форматирования, подсветки синтаксиса и валидации XML. Это могут быть Visual Studio Code, Brackets, Sublime Text, Notepad++, Oxygen XML Editor и другие. Выберите подходящий редактор, перетащите в него XML-файл или откройте его через меню.

Если вы не пользовались редакторами кода, рекомендуем обратить внимание на Visual Studio Code. Это мощная бесплатная программа компании Microsoft со множеством расширений и вариантов настройки.

Если вы работаете на чужом компьютере или не можете установить редактор кода, воспользуйтесь онлайн-сервисами. Например, CodeBeautify XML Viewer или XMLGrid.net. На этих сайтах вы можете вставить содержимое XML-файла в онлайн-редактор, загрузить файл с компьютера или добавить ссылку, если файл размещён на странице.

В последнее время для передачи данных между приложениями или микросервисами вместо XML всё чаще применяется формат JSON. JSON проще воспринимается «на глаз» за счет меньшего объема текста разметки (тегов и атрибутов).

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

Что дальше

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

  • W3Schools XML Tutorial — бесплатный интерактивный курс для начинающих с примерами и упражнениями. Он охватывает основы XML-синтаксиса, включая элементы, атрибуты и схемы.
  • MDN Web Docs: XML — подробное руководство по XML от Mozilla. Содержит объяснения концепций, примеры кода и полезные ссылки на дополнительную документацию и инструменты.
  • TutorialsPoint XML Tutorial — бесплатное пошаговое руководство по XML. Включает объяснения и примеры, охватывает темы от основ синтаксиса до продвинутых концепций, таких как XSLT и XPath.
  • XML.com — ресурс со множеством статей, руководств и новостей по XML. Содержит как вводные материалы для начинающих, так и углублённые статьи для опытных пользователей.

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована