Files
obsidian/Clippings/XML-формат что это такое и как открыть файл — журнал «Код».md
2026-09-24 13:22:58 +05:00

341 lines
23 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "XML-формат: что это такое и как открыть файл — журнал «Код»"
source: https://thecode.media/chto-takoe-xml/
author:
published: 2025-06-30
created: 2025-08-24
description: Рассказываем и показываем на примерах, что такое XML-формат файлов, как он устроен и где применяется.
tags:
- clippings
- "#XML"
---
Когда мы говорили [о разметке в Маркдауне](https://thecode.media/markdown/), то там смысл был такой: есть текст, а мы его размечаем специальными символами, чтобы он хорошо выглядел. Теперь перейдём на этап выше — будем форматировать данные на уровне логики с помощью XML.
👉 XML нужен для работы с техническим текстом, где всё строго, упорядоченно и логично. Его, конечно, можно применить и к художественному тексту, но выйдет так себе.
## Что такое XML-формат
XML — это сокращение от eXtensible Markup Language, а переводится это как «расширяемый язык разметки». Смысл XML в том, чтобы выстроить внутри документа логическую структуру — чтобы было видно, что к чему относится и как всё связано между собой, в каком формате представлены данные.
### Зачем нужен
С помощью XML можно:
- записать оргструктуру компании или любую другую иерархию — «этот подчиняется тому»;
- разметить текст по смыслу — «тут важное, там второстепенное, вот это поясняет вон то»;
- хранить типовые данные — например, имена артистов, названия их альбомов и треки, или настройку какой-нибудь программы, или скрипты;
- разметить веб-страницу по смыслу и отдать эту разметку алгоритму, который сам нарисует дизайн;
- разметить текст для дальнейшего машинного обучения;
- хранить результаты работы программ, которые работают с текстом, — например, ничто не мешает текстовым редакторам хранить документы со всем оформлением в формате XML.
И многое другое, где нужен порядок, структура и работа с текстовыми данными.
![Что такое XML-формат и для чего он нужен](https://thecode.media/wp-content/uploads/2024/09/image9-1024x508.png)
Что такое XML-формат и для чего он нужен
## В чём сила XML
Сила XML в том, что данные здесь представляются как обычный текст, размеченный тегами (как в HTML). Например, чтобы записать оргструктуру компании в XML, не нужно рисовать схему в графическом редакторе, достаточно правильно разметить текст с именами и должностями. Файлики получаются маленькими, их легко обрабатывать.
[База по вёрстке: основы HTML](https://thecode.media/baza-po-vyorstke-osnovy-html/)
И ещё сила XML в том, что эти данные может прочитать и обработать компьютер. Например, если мы передаём ему оргструктуру компании, компьютер поймёт её: кто кому подчиняется, что куда входит и т. д. Для сравнения: если скормить компьютеру схему, нарисованную в графическом редакторе, он её не поймёт.
А вот если XML хорошо составлен, его также может понять человек.
Вам может быть интересно:
[![](https://thecode.media/wp-content/uploads/2020/09/photo_2020-09-24-13.58.07-320x213.jpeg) Markdown: что это и кому нужно](https://thecode.media/markdown/)
## Из чего состоит XML
Внешне XML очень похож на HTML: в нём тоже всё пишется в угловых скобках, есть закрывающие теги и параметры — аналоги классов и стилей. Но, в отличие от HTML, здесь нет обязательных тегов или вообще каких-то обязательных элементов. Объясним, как это работает, на примере.
[Самые частые ошибки в HTML-вёрстке](https://thecode.media/samye-chastye-oshibki-v-html-vyorstke/)
Допустим, у нас есть такой текст, из которого нужно сделать XML-документ:
*«По состоянию на 22 мая 2025 журнал „Код“ работает и в редакции есть главред Михаил Полянин и авторы Кристина Тульцева и Игорь Росляков».*
### Теги и атрибуты
Основное тело XML-документа состоит из тегов и атрибутов.
Теги образуют всю структуру файла. Если вы немного знакомы с HTML, то увидите, что здесь они выглядят так же. В основном теги бывают открывающие (`<tag>`) и закрывающие (`</tag>`). Но, в отличие от HTML, в XML можно использовать любые теги, которые нужны по логике создания файла.
Атрибуты — это дополнительные параметры тега, которые записываются внутри открывающего тега. Они заключены в кавычки. Может выглядеть так:
```markup
<tag attr="value">
```
### Комментарии и специальные символы
Комментарии в XML такие же, как в HTML. Это текстовые пометки, которые не влияют на остальной файл:
```markup
<!-- это комментарий, он не влияет на файл -->
```
Спецсимволы — это символы вроде угловых обозначений тегов. Мы не можем их использовать между настоящими тегами в чистом виде, потому что тогда файл сломается: он подумает, что мы открываем новый тег или делаем ещё какое-то действие, а нам на самом деле нужно просто поставить символ в текст.
[Что такое формат JSON и как с ним работать](https://thecode.media/json/)
Для работы со спецсимволами нужно использовать соответствующие им наборы других символов, которые ещё называются сущности. Если мы поставим в текст сущности, машина на выходе выведет как раз тот спецсимвол, который нам нужен.
Например, амперсанд `&` относится к числу спецсимволов, поэтому нельзя сделать так:
```markup
<title> Sanford&Son</title>
```
Вместо этого нужно так:
```markup
<title> Sanford&amp;Son</title>
```
Длиннее, зато работает.
Вот основные спецсимволы и соответствующие им сущности:
![Что такое XML-формат и для чего он нужен](https://thecode.media/wp-content/uploads/2024/09/image4-1-1024x370.png)
Источник: developer.mozilla.org
### Пролог
Любой XML начинается с пролога, это первая строка документа. В ней нужно написать, что перед нами именно XML:
```markup
<?xml version="1.0" encoding="UTF-8"?>
```
Пролог говорит, что ниже будет XML-разметка. Иначе программа-обработчик не будет знать, что с ним делать — рисовать как HTML или выводить как просто текст?
[Делаем сами себе игру для Android](https://thecode.media/stack-game-3/)
Что есть в прологе:
- Версия XML. Обычно 1.0.
- Кодировка для корректной работы с символами текста. В нашем примере это UTF-8.
### Корневой элемент
Внутри XML-документа всегда есть корневой тег-элемент — внутри него лежит всё остальное. Так как в XML мы придумываем названия для разметки сами, то пусть этот элемент будет называться `actual` (это название может быть любым):
```markdown
<?xml version="1.0" encoding="UTF-8"?>
<actual>
<!-- содержимое корневого элемента -->
</actual>
```
### Содержимое внутри корневого элемента
Теперь разбираем содержимое. Первое, что мы видим в документе, — это дата, поэтому можем сделать отдельный раздел со статусом издания. В него будет входить значение `Active` (издание работает) и два параметра — дата последней проверки и статус этой проверки. Сам элемент мы назовём `status`:
```markdown
<?xml version="1.0" encoding="UTF-8"?>
<actual>
<!-- содержимое корневого элемента -->
<status lastUpd = "22.05.2025" checked = "true">
Active
</status>
</actual>
```
Это очень похоже на стили и классы в HTML, но работает иначе: мы просто указываем параметры и их значения, а не подключаем какие-то внешние данные или правила.
Ещё вы могли заметить, что мы пишем дату в нестандартном формате (с точки зрения компьютера). Так можно: если мы потом будем писать обработчик этого XML, мы сможем научить его читать именно этот формат даты.
[Почему программистам сложно работать со временем в программах](https://thecode.media/timezone/)
👉 Это история о том, что XML — это просто полочки, на которые мы раскладываем данные. Какие там данные — ему не важно.
Добавим ниже сведения про название журнала:
```markdown
<?xml version="1.0" encoding="UTF-8"?>
<actual>
<!-- содержимое корневого элемента -->
<status lastUpd = "22.05.2025" checked = "true">
Active
</status>
<media type = "online">
Журнал «Код»
</media>
</actual>
```
Новый элемент мы назвали `media`  — так человеку будет проще прочитать и понять, что внутри, а компьютеру всё равно. Последнее — добавим информацию о составе редакции. Обратите внимание, что появилась вложенная структура: внутри элемента person есть три дочерних элемента: `name`, `lastname` и  `role`. Это значит, что они относятся к родительскому элементу, а не живут сами по себе:
```markdown
<?xml version="1.0" encoding="UTF-8"?>
<actual>
<!-- содержимое корневого элемента -->
<status lastUpd = "22.05.2025" checked = "true">
Active
</status>
<media type = "online">
Журнал «Код»
</media>
<!-- редакция -->
<person>
<name>
Михаил
</name>
<lastname>
Полянин
</lastname>
<role>
главред
</role>
</person>
<person>
<name>
Кристина
</name>
<lastname>
Тульцева
</lastname>
<role>
редактор
</role>
</person>
<person>
<name>
Игорь
</name>
<lastname>
Росляков
</lastname>
<role>
редактор
</role>
</person>
</actual>
```
Таким способом можно разобрать на логические составляющие любой технический или информационный документ — от инструкции к чайнику до ежегодного отчёта для инвесторов. Главное, не запутаться в элементах и чётко понимать, что от чего зависит и куда вкладывается.
### Секции CDATA
Это блок с дополнительными тегами внутри тега. Внутри можно вставить любой текст, даже спецсимволы. Выглядит так:
```markdown
<cdata_example>
<![CDATA[
Внутри CDATA можно писать <, >, & без экранирования
]]>
</cdata_example>
```
CDATA — способ сказать машине, чтобы она не обрабатывала этот блок как XML. Получается что-то вроде больших комментариев, но не совсем. CDATA затрудняет работу: поиск по этому разделу становится сложнее, он может мешать созданным шаблонам.
Главное, что XML создан для работы со структурированными данными, а CDATA работает как бы против этой идеи: это чёрный ящик, внутри которого может быть что угодно. Его нельзя проверить схемой, и он не поддерживает механизмы для усиления надёжности работы XML.
Иногда CDATA бывает полезен, но это особые случаи. Например, нужно встроить в файл фрагмент текста с большим количеством спецсимволов, такой как код.
## Где нужен XML-формат
XML применяют везде, где нужно выделить логическое содержимое документа, чтобы потом его можно было как-то обработать. Например, если у вас есть размеченный XML-файл с названием и характеристиками товаров, то можно научить сервер обрабатывать его как угодно: выводить название в заголовке или простым текстом, понимать, где лежит цена, откуда брать описание и к какому разделу отнести этот товар.
Ещё XML применяют в API, когда идёт ответ от сервера в виде XML-файлов.
## Как открыть XML-файл
Способов несколько. Всё зависит от того, что вы потом хотите сделать с файлом.
### На компьютере
Если файл нужно только открыть и просмотреть, проще всего перетащить его в поле адресной строки браузера. Редактировать нельзя, зато вся структура сразу видна:
![Что такое XML-формат и для чего он нужен](https://thecode.media/wp-content/uploads/2024/09/image8-1024x535.png)
Что такое XML-формат и для чего он нужен
Самый простой инструмент для редактирования — Блокнот на Windows и TextEdit на MacOS. Можно менять содержимое, но просматривать его не так удобно, потому что нет подсветки синтаксиса:
![Что такое XML-формат и для чего он нужен](https://thecode.media/wp-content/uploads/2024/09/image7-1024x847.png)
Что такое XML-формат и для чего он нужен
Более продвинутый вариант — использовать текстовые редакторы кода. Так будет выглядеть открытый файл в редакторе Sublime Text:
![Что такое XML-формат и для чего он нужен](https://thecode.media/wp-content/uploads/2024/09/image6-1-1024x682.png)
Что такое XML-формат и для чего он нужен
Самый мощный вариант — поставить IDE и всё делать в ней. Например, бесплатный настраиваемый Visual Studio Code:
![Что такое XML-формат и для чего он нужен](https://thecode.media/wp-content/uploads/2024/09/image1-2-1024x686.png)
Что такое XML-формат и для чего он нужен
### На мобильных устройствах
По умолчанию XML на смартфоне можно открыть в браузере, так же как на компьютере:
![Что такое XML-формат и для чего он нужен](https://thecode.media/wp-content/uploads/2024/09/image5-1024x709.jpg)
Что такое XML-формат и для чего он нужен
Если скачать отдельное приложение (их много, можно выбрать), файл можно открывать и редактировать в нём:
![Что такое XML-формат и для чего он нужен](https://thecode.media/wp-content/uploads/2024/09/image10-1024x709.jpg)
Что такое XML-формат и для чего он нужен
## Создание и редактирование XML файлов
Понадобится любой текстовый редактор или редактор кода. Минус текстового редактора в том, что там нет подсветки, поэтому лучше поставить что-нибудь для программирования.
Если не хотите разбираться в средах разработки, поставьте Sublime Text — он простой и удобный, там можно работать с любым текстом, его достаточно для всех простых задач, а если прокачать дополнительными плагинами, то можно спокойно писать и запускать код.
[Почему настоящие мастера пишут всё в Sublime Text](https://thecode.media/sublime-one-love/)
Для простого XML-файла нужно запомнить несколько правил.
Сначала пишем пролог:
```markup
<?xml version="1.0" encoding="UTF-8"?>
```
Потом ставим корневой тег:
```markup
<?xml version="1.0" encoding="UTF-8"?>
<root>
<!-- тут будет всё содержимое XML -->
</root>
```
Внутри корневого тега можно создавать любые другие, но нужно помнить:
- Не забывайте ставить парные теги — один открывающий, другой закрывающий. Если работаете в IDE, для этого можно установить дополнительный плагин, который будет делать это за вас.
- Регистр важен: нельзя написать один тег заглавными буквами, а другой строчными.
- Все атрибуты внутри тегов должны быть указаны в кавычках: `<book id="101">`.
- Спецсимволы, такие как угловые кавычки или амперсанд, нужно экранировать.
Созданный XML можно проверить валидаторами. Например, [jsonformatter.org](https://jsonformatter.org/xml-validator):
![Что такое XML-формат и для чего он нужен](https://thecode.media/wp-content/uploads/2024/09/image2-3-1024x641.png)
Что такое XML-формат и для чего он нужен
Или [w3schools.com](https://www.w3schools.com/xml/xml_validator.asp):
![Что такое XML-формат и для чего он нужен](https://thecode.media/wp-content/uploads/2024/09/image3-3-1024x697.png)
Что такое XML-формат и для чего он нужен
## Что дальше
В другой статье придумаем свой XML-формат и научим сервер с ним работать. Так тоже можно. В конце концов, это ИТ, тут можно вообще почти всё.
## Вам слово
Приходите к нам в соцсети поделиться своим мнением о формате XML и почитать, что пишут другие. А ещё там выходит дополнительный контент, которого нет на сайте — шпаргалки, опросы и разная дурка. В общем, вот [тележка](https://v.thecode.media/gfjty), вот [ВК](https://v.thecode.media/lmw36) — велком!