XML (eXtensible Markup Language) – расширяемый язык разметки. Он является инструментом программирования. С помощью XML языка можно создавать логические структуры данных, хранить их и передавать в удобном формате как для устройства, так и для человека. Обладает простым и понятным синтаксисом. Сам по себе этот инструмент программирования универсален. Он поддерживает возможность описания разнообразных документов при помощи тегов, задаваемых разработчиком самостоятельно.
Сегодня предстоит изучить XML и структуру его документа. Нужно выяснить, для чего используется рассматриваемый инструмент, чем он отличается от HTML, какими особенностями обладает. Также вниманию будут представлены ключевые стандарты XML. Предложенная информация рассчитана на широкую публику. Она подойдет для изучения как веб-разработчиками, так и обычными пользователями.
XML – это инструмент, который широко используется в IT. Он пригодится везде, где необходимо выделить логическое содержимое документа для его дальнейшей обработки (компьютером или конечным пользователем). Рассматриваемый стандарт рекомендуется Консорциумом Всемирной паутины (W3C), поэтому он активно используется в API, когда сервер присылает в качестве ответа XML-файл.
Изучаемый стандарт дает возможность:
- Осуществлять запись иерархий. Здесь «один подчиняется другому».
- Производить разметку текста по смыслу от наиболее важного ко второстепенному. С помощью изучаемого инструмента предлагается выделять основные и дополнительные моменты, добавлять всевозможные комментарии и пояснения.
- Хранить разнообразные типовые данные. Сюда можно отнести различные скрипты, настройки приложений, названия чего-либо.
- Осуществлять разметку теста, используемого для машинного обучения.
- Хранить результаты работы текстовых редакторов и всевозможных программных приложений.
Иерархии с информацией XML могут быть использованы в различных языках разработки. К ним относят:
- OWL и RDF – для описания структур и ресурсов имеющихся каталогов;
- WSDL – при обращении к удаленным веб-сервисам и приложениям;
- XHTML – для формирования и отображения страниц в Интернете;
- SVG – для описание картинок в векторной форме представления;
- XAML – в процессе описания интерфейсов программного обеспечения.
Изучаемый стандарт напоминает HTML, но отличается от него. Соответствующую разницу должен понимать каждый будущий веб-разработчик.
Чем отличается от HTML
HTML и XML – два языка, которые дополняют друг друга. Они отлично сочетаются, но предназначаются для совершенно разных целей. XML используется, чтобы хранить и передавать информацию, а HTML – для ее непосредственного отображения.
В HTML теги являются предопределенными. Нынешние браузеры знают это. Они могут при помощи HTML-тегов корректно отобразить информацию, заключенную в них. В случае с XML разметкой теги не предопределены. Их разработчик задает в процессе написания исходного кода. Браузеры изначально ничего не знают о соответствующих тегах.
XML-документы могут быть без затруднений преобразованы в HTML-формат. При поступлении информации с сервера в браузер соответствующая процедура осуществляется в автоматическом режиме. Вручную ее тоже можно организовать. Для этого предстоит пользоваться специальным программным обеспечением: BeatifyConverter, Fconvert или Aconvert.
Ключевые особенности
Рассматриваемый язык разметки имеет ряд ключевых особенностей. Их должен знать каждый разработчик, чтобы лучше осознавать принципы работы XML.
К ключевым особенностям стандарта относят следующие моменты:
- Хорошую приспособленность для создания новых версий разнообразных документов и всевозможных объектов. Это связано с тем, что большая часть программного обеспечения продолжает работать, даже если часть данных удалена или добавлена.
- Формат хранения информации. Им является текст. Такой подход делает данные машинно- и программно-независимыми.
- Ясность и понятность как для устройств, так и для людей. Основным преимуществом изучаемого языка служит его высокий уровень читаемости. Это позволяет освоить XML даже тем, кто раньше был достаточно далек от разработки программного обеспечения.
- Размер XML-документа. Он окажется на порядок больше бинарного представления с аналогичными данными. Сэкономить пространство с помощью рассматриваемого языка не представляется возможным.
- Возможность решения большинства задач при помощи простейших, но производительных подходов. В процессе разработки использовать все встроенные возможности языка требуется крайне редко.
- Большую гибкость и отсутствие жестких ограничений у стандарта. Эта особенность позволяет одной и той же структуре быть представленной в нескольких интерпретациях.
Рассматриваемый язык имеет также несколько преимуществ перед остальными инструментами разработки. А еще – поддерживает различные стандарты. С ними рано или поздно познакомится каждый программист.
Преимущества
XML предусматривает несколько преимуществ:
- Высокий уровень доступности. Рассматриваемый язык разметки будет хорошо понятен и компьютерам, и человеку, и смартфонам, и планшетам, и другим устройствам. Документы, используемые в XML-формате, могут быть свободно изучены и откорректированы даже людьми, не имеющими никакого профильного образования в области IT-технологий и разработки программного обеспечения. Для этого достаточно воспользоваться стандартными инструментами редактирования.
- Хорошая совместимость. Это связано с тем, что информация в XML-документе записывается в виде обычного текстового формата. Для их передачи не нужна конвертация. Для внесения новых данных или разметки допускается использование самых разных систем. Пользователь сможет работать с XML-файлами на абсолютно разных операционных системах и платформах.
- Универсальность. Рассматриваемый формат необходим для структурирования, изменения, запроса разнообразных данных. Он будет также доступен в API и коде.
Сравнивая изучаемый формат с HTML, можно отметить, что во втором языке разметки тоже хранение информации осуществляется с помощью тегов. Только эти компоненты будут отвечать за представление данных в структурированной форме. HTML-теги предусматривают возможность настройки расположения отступов абзацев, заголовков и других элементов на странице. XML-теги будут на фоне HTML казаться более сложными – они задают смысл данных. Все это приводит к тому, что HTML не сможет заменить XML, а XML-данные можно представлять в HTML-тегах.
Стандарты XML
XML-стандарты – это расширения, которые предоставляют дополнительные возможности в процессе работы с XML-документами. К наиболее популярным из них принято относить:
- XPath. Используется для более удобной навигации по файлам в рассматриваемом формате.
- XQuery. Помогает обрабатывать данные в XML-формате и выполнять разнообразные иные операции с ними.
- XSLT. Используется для преобразования исходных документов в XML. Выполняет роль своеобразного конвертера. С помощью XSLT удастся перевести XML-файл в HTML и другие интерпретации.
- AJAX. Стандарт, который дает возможность корректировать содержимое веб-страницы, не требуя ее перезагрузки. Активно используется в веб-программировании.
- DTD. Применяется для определения списка разрешенных элементов для сущности в исходном XML-документе.
- XML DOM. Стандарт, который используется для управления отдельными элементами исходного файла. С помощью него можно получать, изменять, добавлять и удалять отдельные составляющие XML-документа.
Еще один момент, о котором необходимо помнить перед началом активной работы с рассматриваемым языком – это способы отображения файлов с соответствующим форматом.
Отображение XML-кода
Основой XML-документа служит текст. Это делает формат .xml легко распознаваемым на различных устройствах. Открыть его получится при помощи таких инструментов как:
- Excel;
- Word;
- Интернет-браузер (любой);
- XML-редактор (XML Editor или Code Beautify);
- «Блокнот» от Windows.
В основном работа с XML-файлами осуществляется при помощи любого текстового редактора. Это значительно упрощает взаимодействие с ними – пользователю или разработчику не потребуется устанавливать и настраивать на оборудовании дополнительное программное обеспечение.
Синтаксис и структура
Чтобы лучше понять, что собой представляет структура XML-документа, необходимо не только рассмотреть наглядный ее пример, но и изучить основы синтаксиса изучаемого языка. Эта информация поможет не только лучше разобраться в упомянутом стандарте, но и даст возможность создавать файлы в формате .xml.
Структура
XML-документ – это файл в формате .xml. Он представляет собой текстовый документ, составленный из элементов под названием «теги».
Структура рассматриваемого типа файлов может быть логической и физической. Согласно физической – файл будет состоять из сущностей, каждая из которых может ссылаться на другую.
Единственный корневой элемент – это документная сущность. Под сущностью принято понимать наименьшую часть в файле. Каждый такой элемент включает в себя символьные записи и имена. Символы делятся на два типа: символы данных и символы разметки. Первые отвечают за непосредственное хранение текста (информации).
К разметке относят следующие элементы:
- теги – используются для разграничения компонентов исходного файла;
- объявления и инструкции, включая их атрибуты;
- комментарии;
- ссылки на имеющиеся сущности;
- цепочки символов, обрамляющие секции «CDATA».
Логическая структура подразумевает, что файл включает в себя элементы, комментарии, а также объявления, ссылки на сущности и инструкции обработки. Все это в документе структурируется при помощи разметки.
Все элементы исходного файла подразделяются на корневой элемент и пролог. В качестве корневого элемента выступает обязательная часть документа, составляющая суть XML. Пролог не является необходимым. Он может вовсе отсутствовать.
Корневой элемент включает в себя:
- комментарии;
- вложенные элементы;
- символьные данные.
Вложенность элементов должна быть грамотной, иначе файл будет считывать некорректно.
Выше можно увидеть наглядный пример XML-разметки. Это – шаблон представления структуры документов, выполненных в рассматриваемом формате. Чтобы лучше понять его, необходимо внимательно изучить синтаксис языка.
Символы разметки
Чтобы составить файл в рассматриваемом формате, необходимо помнить, что основным его элементом является разметка. Она начинается и заканчивается символами «<» и «>» соответственно (без кавычек).
Вместе с угловыми скобками специальная роль отводится символу амперсанда («&»). Он помогает в процессе замены текста посредством сущностей. Угловые скобки задают границы элементов, а также инструкции обработки и некоторые другие последовательности.
XML-объявление
Объявление XML – это декларация. Она иногда выступает прологом. При XML-объявлении разработчик должен указать версию языка, используемого для написания исходного файла. Здесь же указываются сведения об используемой кодировке. Согласно установленным стандартам, объявление пишется в самом начале. Это связано с тем, что от версии языка зависит дальнейшая трактовка содержимого исходного документа.
В первой версии языка XML декларация действительно была прологом. Этот элемент мог отсутствовать в исходном файле с данными. Если объявление отсутствует, подразумевается, что дальнейшая трактовка информации осуществляется при помощи XML 1.0.
Выше – наглядный пример декларации. Она всегда будет иметь предложенный вид. Меняется в зависимости от ситуации только версия используемого языка и кодировка текста в исходном файле.
При работе с этим элементом необходимо помнить о нескольких правилах:
- Объявление – элемент, чувствительный к регистру. Это значит, что за ним необходимо внимательно следить.
- Начинается рассматриваемый элемент обязательно с «<?xml>», где xml пишется строчными буквами.
- Если в исходном файле имеется объявление, оно должно «идти» первой строчкой (оператором).
- HTTP помогает переопределять значение кодировки, указанной в XML-объявлении.
Эти простые правила помогут грамотно сформировать декларацию, если в ней есть необходимость.
Теги
Тег – это специальная конструкция разметки. Она включает в себя имя элемента. Теги бывают:
- открывающимися (начальными);
- закрывающимися (конечными);
- пустыми – они включают в себя открывающийся и закрывающиеся теги и ничего больше.
Каждый XML-элемент должен быть закрыт или начальным, или конечным тегом.
Элементы
Элемент XML – это некий «строительный блок» рассматриваемого документа. Он может вести себя различными способами: как контейнеры для хранения других элементов, атрибутов, медиа-объектов и текста. Элементы – это неотъемлемая часть XML-разметки документа. Область их действия обозначается при помощи тегов.
Выше – наглядный пример отображения элементов. Здесь:
- Title, author, price и year включают в себя текстовый контент. Это связано с тем, что они содержат текст.
- Book и bookstore содержат элементный контент, включающий в себя другие элементы.
- Book предусматривает атрибут (category=«CHILDREN»).
В XML-файлах иногда могут встречаться пустые элементы – это элементы, в которых отсутствует контент. Для его обозначения рекомендуется использовать записи:
Второй вариант записи носит название самозакрывающегося. Обе предложенные интерпретации будут выдавать одинаковый результат в XML-программах. Пустые элементы могут включать в себя атрибуты.
При написании XML-имен необходимо помнить следующее:
- имена элементов чувствительны к регистру;
- имена начинаются или с буквы, или с нижнего подчеркивания;
- сочетание XML не может быть в самом начале имени;
- в именах допустимо использовать: буквы, числа, дефис, подчеркивание, точку;
- имена элементов не могут включать в себя пробелы;
- цифры и символы пунктуации не могут стоять в самом начале.
В качестве имен допустимо использовать совершенно любые слова. Зарезервированных (за исключением XML) среди них нет.
Атрибуты
Атрибуты – это часть элементов XML. Каждый компонент рассматриваемого документа может включать в себя несколько уникальных атрибутов. С их помощью можно указать больше данных об элементе.
Атрибут – это то, что определяет свойства составляющих XML-файла. Он всегда представлен в виде пары: имя=значение.
Выше – пример интерпретации атрибута в теге. Его значение всегда пишется в двойных или одинарных кавычках. Атрибуты используются только в начальном теге и теге пустого элемента.
Здесь необходимо запомнить следующее:
- Имена атрибутов являются чувствительными к регистру. В случае с HTML подобная особенность отсутствует.
- Один и тот же атрибут не может обладать двумя значениями в синтаксисе.
- Имена атрибутов пишутся без кавычек. Значения соответствующего компонента всегда обрамляются кавычками.
Это – простейшие правила, которые помогут грамотно задавать разнообразные атрибуты в пределах XML-файлов.
Именные пространства
В процессе написания исходного кода иногда приходится использовать одинаковые по написанию объекты. Примером может послужить Claim. Это – жалоба и обращение. Разработчик должен сообщить системе, как правильно обрабатывать первый объект, а как – второй.
Чтобы добиться желаемого результата, необходимо задействовать пространство имен. Это – метод, используемый для устранения конфликтов наименования элементов в исходном коде. Задается именное пространство в виде атрибутов к тегу.
Служебные символы и текст
Имена XML элементов и атрибутов являются чувствительными к регистру, из-за чего названия начальных и конечных элементов должны быть написаны в одном регистре. Чтобы избежать проблем, связанных с символьной кодировкой, все XML-файлы рекомендуется сохранять как файлы Unicode UTF-8 или UTF-16.
Игнорируются следующие типы пробелов между элемента и атрибутами XML:
- табуляция;
- пробелы;
- переводы строк.
Некоторые символы, используемые в рассматриваемом языке, являются зарезервированными системой. Они не могут быть задействованы в качестве сильной информации, а также записаны в виде атрибутов в своем «классическом» исполнении. Для отображения зарезервированных символов используются специальные последовательности.
Соответствующие записи пригодятся, если необходимо задать внутри значений атрибутов кавычки и апострофы:
СимволЗамещающая комбинацияРасшифровка<<Меньше, чем>>Больше (лучше), чем&&Амперсанд“"Кавычка‘& apos;Апостроф
Структура XML-файлы теперь более-менее понятна. Быстрее освоить рассматриваемый язык и его особенности помогут дистанционные компьютерные курсы.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>XML и его особенности OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="XML (eXtensible Markup Language) – расширяемый язык разметки. Он является инструментом программирования. С помощью XML языка можно создавать логические структуры данных, хранить их и передавать в удобном формате как для устройства, так и для человека. Обладает простым и понятным синтаксисом. Сам по себе этот инструмент программирования универсален. Он поддерживает возможность описания разнообразных документов при помощи" />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/xml-i-ego-osobennosti/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/#article","name":"XML \u0438 \u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 OTUS","headline":"XML \u0438 \u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2024\/07\/oj-1080x720-2024-07-11T223844.421.jpg","width":2245,"height":1587},"datePublished":"2024-07-11T19:39:00+00:00","dateModified":"2024-07-11T19:39:03+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, Xml, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/#listItem","position":2,"name":"XML \u0438 \u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/#webpage","url":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/","name":"XML \u0438 \u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 OTUS","description":"XML (eXtensible Markup Language) \u2013 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u044b\u0439 \u044f\u0437\u044b\u043a \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438. \u041e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e XML \u044f\u0437\u044b\u043a\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0445 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u0443\u0434\u043e\u0431\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043a\u0430\u043a \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430. \u041e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c. \u0421\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u044d\u0442\u043e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u0435\u043d. \u041e\u043d \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2024\/07\/oj-1080x720-2024-07-11T223844.421.jpg","@id":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/#mainImage","width":2245,"height":1587},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/xml-i-ego-osobennosti\/#mainImage"},"datePublished":"2024-07-11T19:39:00+00:00","dateModified":"2024-07-11T19:39:03+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/10279" /><link rel='shortlink' href='https://otus.ru/journal/?p=10279' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fxml-i-ego-osobennosti%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fxml-i-ego-osobennosti%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-10279 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-10279" class="the-post post-10279 post type-post status-publish format-standard has-post-thumbnail category-polza tag-xml tag-programmirovanie">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
XML и его особенности
</h1>
<a href="https://otus.ru/journal/xml-i-ego-osobennosti/" class="date-link" data-wpel-link="internal"><time class="post-date">11 июля, 2024</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T223844.421.jpg" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="XML и его особенности" title="XML и его особенности" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T223844.421-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T223844.421-270x180.jpg 270w" data-src="https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T223844.421-770x515.jpg" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#%D0%93%D0%B4%D0%B5_%D0%B1%D1%83%D0%B4%D0%B5%D1%82_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%B5%D0%BD_XML" title="Где будет полезен XML">Где будет полезен XML</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-2" href="#%D0%A7%D0%B5%D0%BC_%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B0%D0%B5%D1%82%D1%81%D1%8F_%D0%BE%D1%82_HTML" title="Чем отличается от HTML">Чем отличается от HTML</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%9A%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D1%8B%D0%B5_%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8" title="Ключевые особенности">Ключевые особенности</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%9F%D1%80%D0%B5%D0%B8%D0%BC%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0" title="Преимущества">Преимущества</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-5" href="#%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D1%8B_XML" title="Стандарты XML">Стандарты XML</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-6" href="#%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_XML-%D0%BA%D0%BE%D0%B4%D0%B0" title="Отображение XML-кода">Отображение XML-кода</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-7" href="#%D0%A1%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81_%D0%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0" title="Синтаксис и структура">Синтаксис и структура</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-8" href="#%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0" title="Структура">Структура</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-9" href="#%D0%A1%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B8" title="Символы разметки">Символы разметки</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-10" href="#XML-%D0%BE%D0%B1%D1%8A%D1%8F%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5" title="XML-объявление">XML-объявление</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-11" href="#%D0%A2%D0%B5%D0%B3%D0%B8" title="Теги">Теги</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-12" href="#%D0%AD%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D1%8B" title="Элементы">Элементы</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-13" href="#%D0%90%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D1%8B" title="Атрибуты">Атрибуты</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-14" href="#%D0%98%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0" title="Именные пространства">Именные пространства</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-15" href="#%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B_%D0%B8_%D1%82%D0%B5%D0%BA%D1%81%D1%82" title="Служебные символы и текст">Служебные символы и текст</a></li></ul></li></ul></nav></div>
<p>XML (eXtensible Markup Language) – расширяемый язык разметки. Он является инструментом программирования. С помощью XML языка можно создавать логические структуры данных, хранить их и передавать в удобном формате как для устройства, так и для человека. Обладает простым и понятным синтаксисом. Сам по себе этот инструмент программирования универсален. Он поддерживает возможность описания разнообразных документов при помощи тегов, задаваемых разработчиком самостоятельно.</p>
<p>Сегодня предстоит изучить XML и структуру его документа. Нужно выяснить, для чего используется рассматриваемый инструмент, чем он отличается от HTML, какими особенностями обладает. Также вниманию будут представлены ключевые стандарты XML. Предложенная информация рассчитана на широкую публику. Она подойдет для изучения как веб-разработчиками, так и обычными пользователями.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%93%D0%B4%D0%B5_%D0%B1%D1%83%D0%B4%D0%B5%D1%82_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%B5%D0%BD_XML"></span>Где будет полезен XML<span class="ez-toc-section-end"></span></h2>
<p>XML – это инструмент, который широко используется в IT. Он пригодится везде, где необходимо выделить логическое содержимое документа для его дальнейшей обработки (компьютером или конечным пользователем). Рассматриваемый стандарт рекомендуется Консорциумом Всемирной паутины (W3C), поэтому он активно используется в API, когда сервер присылает в качестве ответа XML-файл.</p>
<p>Изучаемый стандарт дает возможность:</p>
<ol>
<li>Осуществлять запись иерархий. Здесь «один подчиняется другому».</li>
<li>Производить разметку текста по смыслу от наиболее важного ко второстепенному. С помощью изучаемого инструмента предлагается выделять основные и дополнительные моменты, добавлять всевозможные комментарии и пояснения.</li>
<li>Хранить разнообразные типовые данные. Сюда можно отнести различные скрипты, настройки приложений, названия чего-либо.</li>
<li>Осуществлять разметку теста, используемого для машинного обучения.</li>
<li>Хранить результаты работы текстовых редакторов и всевозможных программных приложений.</li>
</ol>
<p>Иерархии с информацией XML могут быть использованы в различных языках разработки. К ним относят:</p>
<ul>
<li>OWL и RDF – для описания структур и ресурсов имеющихся каталогов;</li>
<li>WSDL – при обращении к удаленным веб-сервисам и приложениям;</li>
<li>XHTML – для формирования и отображения страниц в Интернете;</li>
<li>SVG – для описание картинок в векторной форме представления;</li>
<li>XAML – в процессе описания интерфейсов программного обеспечения.</li>
</ul>
<p>Изучаемый стандарт напоминает HTML, но отличается от него. Соответствующую разницу должен понимать каждый будущий веб-разработчик.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A7%D0%B5%D0%BC_%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B0%D0%B5%D1%82%D1%81%D1%8F_%D0%BE%D1%82_HTML"></span>Чем отличается от HTML<span class="ez-toc-section-end"></span></h2>
<p>HTML и XML – два языка, которые дополняют друг друга. Они отлично сочетаются, но предназначаются для совершенно разных целей. XML используется, чтобы хранить и передавать информацию, а HTML – для ее непосредственного отображения.</p>
<p>В HTML теги являются предопределенными. Нынешние браузеры знают это. Они могут при помощи HTML-тегов корректно отобразить информацию, заключенную в них. В случае с XML разметкой теги не предопределены. Их разработчик задает в процессе написания исходного кода. Браузеры изначально ничего не знают о соответствующих тегах.</p>
<p>XML-документы могут быть без затруднений преобразованы в HTML-формат. При поступлении информации с сервера в браузер соответствующая процедура осуществляется в автоматическом режиме. Вручную ее тоже можно организовать. Для этого предстоит пользоваться специальным программным обеспечением: BeatifyConverter, Fconvert или Aconvert.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9A%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D1%8B%D0%B5_%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8"></span>Ключевые особенности<span class="ez-toc-section-end"></span></h2>
<p>Рассматриваемый язык разметки имеет ряд ключевых особенностей. Их должен знать каждый разработчик, чтобы лучше осознавать принципы работы XML.</p>
<p>К ключевым особенностям стандарта относят следующие моменты:</p>
<ol>
<li>Хорошую приспособленность для создания новых версий разнообразных документов и всевозможных объектов. Это связано с тем, что большая часть программного обеспечения продолжает работать, даже если часть данных удалена или добавлена.</li>
<li>Формат хранения информации. Им является текст. Такой подход делает данные машинно- и программно-независимыми.</li>
<li>Ясность и понятность как для устройств, так и для людей. Основным преимуществом изучаемого языка служит его высокий уровень читаемости. Это позволяет освоить XML даже тем, кто раньше был достаточно далек от разработки программного обеспечения.</li>
<li>Размер XML-документа. Он окажется на порядок больше бинарного представления с аналогичными данными. Сэкономить пространство с помощью рассматриваемого языка не представляется возможным.</li>
<li>Возможность решения большинства задач при помощи простейших, но производительных подходов. В процессе разработки использовать все встроенные возможности языка требуется крайне редко.</li>
<li>Большую гибкость и отсутствие жестких ограничений у стандарта. Эта особенность позволяет одной и той же структуре быть представленной в нескольких интерпретациях.</li>
</ol>
<p>Рассматриваемый язык имеет также несколько преимуществ перед остальными инструментами разработки. А еще – поддерживает различные стандарты. С ними рано или поздно познакомится каждый программист.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B5%D0%B8%D0%BC%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0"></span>Преимущества<span class="ez-toc-section-end"></span></h3>
<p>XML предусматривает несколько преимуществ:</p>
<ol>
<li>Высокий уровень доступности. Рассматриваемый язык разметки будет хорошо понятен и компьютерам, и человеку, и смартфонам, и планшетам, и другим устройствам. Документы, используемые в XML-формате, могут быть свободно изучены и откорректированы даже людьми, не имеющими никакого профильного образования в области IT-технологий и разработки программного обеспечения. Для этого достаточно воспользоваться стандартными инструментами редактирования.</li>
<li>Хорошая совместимость. Это связано с тем, что информация в XML-документе записывается в виде обычного текстового формата. Для их передачи не нужна конвертация. Для внесения новых данных или разметки допускается использование самых разных систем. Пользователь сможет работать с XML-файлами на абсолютно разных операционных системах и платформах.</li>
<li>Универсальность. Рассматриваемый формат необходим для структурирования, изменения, запроса разнообразных данных. Он будет также доступен в API и коде.</li>
</ol>
<p>Сравнивая изучаемый формат с HTML, можно отметить, что во втором языке разметки тоже хранение информации осуществляется с помощью тегов. Только эти компоненты будут отвечать за представление данных в структурированной форме. HTML-теги предусматривают возможность настройки расположения отступов абзацев, заголовков и других элементов на странице. XML-теги будут на фоне HTML казаться более сложными – они задают смысл данных. Все это приводит к тому, что HTML не сможет заменить XML, а XML-данные можно представлять в HTML-тегах.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D1%8B_XML"></span>Стандарты XML<span class="ez-toc-section-end"></span></h2>
<p>XML-стандарты – это расширения, которые предоставляют дополнительные возможности в процессе работы с XML-документами. К наиболее популярным из них принято относить:</p>
<ol>
<li>XPath. Используется для более удобной навигации по файлам в рассматриваемом формате.</li>
<li>XQuery. Помогает обрабатывать данные в XML-формате и выполнять разнообразные иные операции с ними.</li>
<li>XSLT. Используется для преобразования исходных документов в XML. Выполняет роль своеобразного конвертера. С помощью XSLT удастся перевести XML-файл в HTML и другие интерпретации.</li>
<li>AJAX. Стандарт, который дает возможность корректировать содержимое веб-страницы, не требуя ее перезагрузки. Активно используется в веб-программировании.</li>
<li>DTD. Применяется для определения списка разрешенных элементов для сущности в исходном XML-документе.</li>
<li>XML DOM. Стандарт, который используется для управления отдельными элементами исходного файла. С помощью него можно получать, изменять, добавлять и удалять отдельные составляющие XML-документа.</li>
</ol>
<p>Еще один момент, о котором необходимо помнить перед началом активной работы с рассматриваемым языком – это способы отображения файлов с соответствующим форматом.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_XML-%D0%BA%D0%BE%D0%B4%D0%B0"></span>Отображение XML-кода<span class="ez-toc-section-end"></span></h2>
<p>Основой XML-документа служит текст. Это делает формат .xml легко распознаваемым на различных устройствах. Открыть его получится при помощи таких инструментов как:</p>
<ul>
<li>Excel;</li>
<li>Word;</li>
<li>Интернет-браузер (любой);</li>
<li>XML-редактор (XML Editor или Code Beautify);</li>
<li>«Блокнот» от Windows.</li>
</ul>
<p>В основном работа с XML-файлами осуществляется при помощи любого текстового редактора. Это значительно упрощает взаимодействие с ними – пользователю или разработчику не потребуется устанавливать и настраивать на оборудовании дополнительное программное обеспечение.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81_%D0%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0"></span>Синтаксис и структура<span class="ez-toc-section-end"></span></h2>
<p>Чтобы лучше понять, что собой представляет структура XML-документа, необходимо не только рассмотреть наглядный ее пример, но и изучить основы синтаксиса изучаемого языка. Эта информация поможет не только лучше разобраться в упомянутом стандарте, но и даст возможность создавать файлы в формате .xml.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0"></span>Структура<span class="ez-toc-section-end"></span></h3>
<p>XML-документ – это файл в формате .xml. Он представляет собой текстовый документ, составленный из элементов под названием «теги».</p>
<p>Структура рассматриваемого типа файлов может быть логической и физической. Согласно физической – файл будет состоять из сущностей, каждая из которых может ссылаться на другую.</p>
<p>Единственный корневой элемент – это документная сущность. Под сущностью принято понимать наименьшую часть в файле. Каждый такой элемент включает в себя символьные записи и имена. Символы делятся на два типа: символы данных и символы разметки. Первые отвечают за непосредственное хранение текста (информации).</p>
<p>К разметке относят следующие элементы:</p>
<ul>
<li>теги – используются для разграничения компонентов исходного файла;</li>
<li>объявления и инструкции, включая их атрибуты;</li>
<li>комментарии;</li>
<li>ссылки на имеющиеся сущности;</li>
<li>цепочки символов, обрамляющие секции «CDATA».</li>
</ul>
<p>Логическая структура подразумевает, что файл включает в себя элементы, комментарии, а также объявления, ссылки на сущности и инструкции обработки. Все это в документе структурируется при помощи разметки.</p>
<p>Все элементы исходного файла подразделяются на корневой элемент и пролог. В качестве корневого элемента выступает обязательная часть документа, составляющая суть XML. Пролог не является необходимым. Он может вовсе отсутствовать.</p>
<p>Корневой элемент включает в себя:</p>
<ul>
<li>комментарии;</li>
<li>вложенные элементы;</li>
<li>символьные данные.</li>
</ul>
<p>Вложенность элементов должна быть грамотной, иначе файл будет считывать некорректно.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/docsz/AD_4nXdj-3M6f5KaDRMCehpYxUL41AjmIsez32MCEfk8Cec9AeaNiOlIJZ332ZIYbWrlwOz_q2Cctv0OdVwApR7ovNCSdD0NwyKQWdV1SBMMPLXOjEKtMadTdyeeu0J4KXcpjShvqYJwRkZIq_qwqvcJjHaCxZT1xZahlbwmnWTayg98D8A-PiSY0bQ?key=9ZxbuWhYLcRuO-Tzzr-SGA" alt="XML и его особенности"/></figure>
<p>Выше можно увидеть наглядный пример XML-разметки. Это – шаблон представления структуры документов, выполненных в рассматриваемом формате. Чтобы лучше понять его, необходимо внимательно изучить синтаксис языка.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%B8"></span>Символы разметки<span class="ez-toc-section-end"></span></h3>
<p>Чтобы составить файл в рассматриваемом формате, необходимо помнить, что основным его элементом является разметка. Она начинается и заканчивается символами «<» и «>» соответственно (без кавычек).</p>
<p>Вместе с угловыми скобками специальная роль отводится символу амперсанда («&»). Он помогает в процессе замены текста посредством сущностей. Угловые скобки задают границы элементов, а также инструкции обработки и некоторые другие последовательности.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="XML-%D0%BE%D0%B1%D1%8A%D1%8F%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5"></span>XML-объявление<span class="ez-toc-section-end"></span></h3>
<p>Объявление XML – это декларация. Она иногда выступает прологом. При XML-объявлении разработчик должен указать версию языка, используемого для написания исходного файла. Здесь же указываются сведения об используемой кодировке. Согласно установленным стандартам, объявление пишется в самом начале. Это связано с тем, что от версии языка зависит дальнейшая трактовка содержимого исходного документа.</p>
<p>В первой версии языка XML декларация действительно была прологом. Этот элемент мог отсутствовать в исходном файле с данными. Если объявление отсутствует, подразумевается, что дальнейшая трактовка информации осуществляется при помощи XML 1.0.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/docsz/AD_4nXe-TdVenDpzYWFr678H__bspdiOF_AmDGJYfGSDi1AiH4Mw1pAzGzCxotAP-vXTOdF-2S3aLvq35A4IaPBExA2VXhsuC1uqHdMZWAU9_nxP6G3eCDzF-8cXy7-tF_Y1AATh-Krw6sulOKIKLhuA0A_je2anJCuwkfqISwiFRuFV7Ww4ucaKLQ?key=9ZxbuWhYLcRuO-Tzzr-SGA" alt="XML и его особенности"/></figure>
<p>Выше – наглядный пример декларации. Она всегда будет иметь предложенный вид. Меняется в зависимости от ситуации только версия используемого языка и кодировка текста в исходном файле.</p>
<p>При работе с этим элементом необходимо помнить о нескольких правилах:</p>
<ol>
<li>Объявление – элемент, чувствительный к регистру. Это значит, что за ним необходимо внимательно следить.</li>
<li>Начинается рассматриваемый элемент обязательно с «<?xml>», где xml пишется строчными буквами.</li>
<li>Если в исходном файле имеется объявление, оно должно «идти» первой строчкой (оператором).</li>
<li>HTTP помогает переопределять значение кодировки, указанной в XML-объявлении.</li>
</ol>
<p>Эти простые правила помогут грамотно сформировать декларацию, если в ней есть необходимость.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A2%D0%B5%D0%B3%D0%B8"></span>Теги<span class="ez-toc-section-end"></span></h3>
<p>Тег – это специальная конструкция разметки. Она включает в себя имя элемента. Теги бывают:</p>
<ul>
<li>открывающимися (начальными);</li>
<li>закрывающимися (конечными);</li>
<li>пустыми – они включают в себя открывающийся и закрывающиеся теги и ничего больше.</li>
</ul>
<p>Каждый XML-элемент должен быть закрыт или начальным, или конечным тегом.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%AD%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D1%8B"></span>Элементы<span class="ez-toc-section-end"></span></h3>
<p>Элемент XML – это некий «строительный блок» рассматриваемого документа. Он может вести себя различными способами: как контейнеры для хранения других элементов, атрибутов, медиа-объектов и текста. Элементы – это неотъемлемая часть XML-разметки документа. Область их действия обозначается при помощи тегов.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcSengtQkajqXFxxYqcxGRNGu1DkcUOiRubaLMF-UvgRuYf0sEafb-Ghr07xavY83v2p1t9jpNZPQYkyew5xqnrDjrUkN-rHKHp3Tj5vevrXnSulek3PkCRVuMtSxOLUYQt5jpzD-GGfOnKhGOdM5U_w1nlSI42XZKUQWemXiDPv65qda4Cow?key=9ZxbuWhYLcRuO-Tzzr-SGA" alt="XML и его особенности"/></figure>
<p>Выше – наглядный пример отображения элементов. Здесь:</p>
<ol>
<li>Title, author, price и year включают в себя текстовый контент. Это связано с тем, что они содержат текст.</li>
<li>Book и bookstore содержат элементный контент, включающий в себя другие элементы.</li>
<li>Book предусматривает атрибут (category=«CHILDREN»).</li>
</ol>
<p>В XML-файлах иногда могут встречаться пустые элементы – это элементы, в которых отсутствует контент. Для его обозначения рекомендуется использовать записи:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/docsz/AD_4nXdWlhLjx11W-fCB0_q-Q9rAVXOULmQ7hMacl2Yy6UgpUwA2TDKnzVitgVwAnQ6247vV5Kf8J9ZgrWVefB8OXBUaYAW3cqy-m3ZpA7bwpXO18TVZN2mlqP5opjdHMsJTrwR6Mp9JdQQZJ8PCkbsK6-F-tO2BHSTaNWWrQb99uIwNgs-kKDaCeFI?key=9ZxbuWhYLcRuO-Tzzr-SGA" alt="XML и его особенности"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/docsz/AD_4nXeI-luTyVhpjHF-8U-HdeHkNT4v1Ga6YLPoZlAPBrbsOdlT8HDMzl5jhEpj3BMO1VHv0nEc6u90YI7Y_5oBTB0Q4TrV7HrXsJLgaHV2aoWmQo-U6hjBlAKNMrpOP_NMIccs_tnLXoPYYkbp8cbl3MU8LBCV6TEtOfcXKxckK5cIM9LjXNS1VQ?key=9ZxbuWhYLcRuO-Tzzr-SGA" alt="XML и его особенности"/></figure>
<p>Второй вариант записи носит название самозакрывающегося. Обе предложенные интерпретации будут выдавать одинаковый результат в XML-программах. Пустые элементы могут включать в себя атрибуты.</p>
<p>При написании XML-имен необходимо помнить следующее:</p>
<ul>
<li>имена элементов чувствительны к регистру;</li>
<li>имена начинаются или с буквы, или с нижнего подчеркивания;</li>
<li>сочетание XML не может быть в самом начале имени;</li>
<li>в именах допустимо использовать: буквы, числа, дефис, подчеркивание, точку;</li>
<li>имена элементов не могут включать в себя пробелы;</li>
<li>цифры и символы пунктуации не могут стоять в самом начале.</li>
</ul>
<p>В качестве имен допустимо использовать совершенно любые слова. Зарезервированных (за исключением XML) среди них нет.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%90%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D1%8B"></span>Атрибуты<span class="ez-toc-section-end"></span></h3>
<p>Атрибуты – это часть элементов XML. Каждый компонент рассматриваемого документа может включать в себя несколько уникальных атрибутов. С их помощью можно указать больше данных об элементе.</p>
<p>Атрибут – это то, что определяет свойства составляющих XML-файла. Он всегда представлен в виде пары: имя=значение.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh7-us.googleusercontent.com/docsz/AD_4nXdNn2BvIA1ytw3IIwELRkjm4OeF7qPwnkXQBdibiSXlri9mLrlsa7uKITjEP-Im-cmSLgwgd7EUrVXfLlcWc7o65m6f8hJYQpMzDxu472mziZ_KJ8MAOOkoCqUJDUCHm1HSrANfRC6PgsI5hd0qzHVjiIqeWgtBL-Pa8Ifddx54XqYL4m6yhQ?key=9ZxbuWhYLcRuO-Tzzr-SGA" alt="XML и его особенности"/></figure>
<p>Выше – пример интерпретации атрибута в теге. Его значение всегда пишется в двойных или одинарных кавычках. Атрибуты используются только в начальном теге и теге пустого элемента.</p>
<p>Здесь необходимо запомнить следующее:</p>
<ol>
<li>Имена атрибутов являются чувствительными к регистру. В случае с HTML подобная особенность отсутствует.</li>
<li>Один и тот же атрибут не может обладать двумя значениями в синтаксисе.</li>
<li>Имена атрибутов пишутся без кавычек. Значения соответствующего компонента всегда обрамляются кавычками.</li>
</ol>
<p>Это – простейшие правила, которые помогут грамотно задавать разнообразные атрибуты в пределах XML-файлов.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0"></span>Именные пространства<span class="ez-toc-section-end"></span></h3>
<p>В процессе написания исходного кода иногда приходится использовать одинаковые по написанию объекты. Примером может послужить Claim. Это – жалоба и обращение. Разработчик должен сообщить системе, как правильно обрабатывать первый объект, а как – второй.</p>
<p>Чтобы добиться желаемого результата, необходимо задействовать пространство имен. Это – метод, используемый для устранения конфликтов наименования элементов в исходном коде. Задается именное пространство в виде атрибутов к тегу.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B_%D0%B8_%D1%82%D0%B5%D0%BA%D1%81%D1%82"></span>Служебные символы и текст<span class="ez-toc-section-end"></span></h3>
<p>Имена XML элементов и атрибутов являются чувствительными к регистру, из-за чего названия начальных и конечных элементов должны быть написаны в одном регистре. Чтобы избежать проблем, связанных с символьной кодировкой, все XML-файлы рекомендуется сохранять как файлы Unicode UTF-8 или UTF-16.</p>
<p>Игнорируются следующие типы пробелов между элемента и атрибутами XML:</p>
<ul>
<li>табуляция;</li>
<li>пробелы;</li>
<li>переводы строк.</li>
</ul>
<p>Некоторые символы, используемые в рассматриваемом языке, являются зарезервированными системой. Они не могут быть задействованы в качестве сильной информации, а также записаны в виде атрибутов в своем «классическом» исполнении. Для отображения зарезервированных символов используются специальные последовательности.</p>
<p>Соответствующие записи пригодятся, если необходимо задать внутри значений атрибутов кавычки и апострофы:</p>
<figure class="wp-block-table"><table><tbody><tr><td>Символ</td><td>Замещающая комбинация</td><td>Расшифровка</td></tr><tr><td><</td><td>&lt;</td><td>Меньше, чем</td></tr><tr><td>></td><td>&gt;</td><td>Больше (лучше), чем</td></tr><tr><td>&</td><td>&amp;</td><td>Амперсанд</td></tr><tr><td>“</td><td>&quot;</td><td>Кавычка</td></tr><tr><td>‘</td><td>& apos;</td><td>Апостроф</td></tr></tbody></table></figure>
<p>Структура XML-файлы теперь более-менее понятна. Быстрее освоить рассматриваемый язык и его особенности помогут дистанционные компьютерные курсы.</p>
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a href="https://otus.ru/?utm_source=oj" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">Otus<span class="wpel-icon wpel-image wpel-icon-6"></span></a>!</em> </p>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/xml/" rel="tag" data-wpel-link="internal">Xml</a><a href="https://otus.ru/journal/tag/programmirovanie/" rel="tag" data-wpel-link="internal">программирование</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fxml-i-ego-osobennosti%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fxml-i-ego-osobennosti%2F&text=XML%20%D0%B8%20%D0%B5%D0%B3%D0%BE%20%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fxml-i-ego-osobennosti%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fxml-i-ego-osobennosti%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2024%2F07%2Foj-1080x720-2024-07-11T223844.421.jpg&description=XML%20%D0%B8%20%D0%B5%D0%B3%D0%BE%20%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/top-7-mifov-v-rabote-qa-testirovshhika/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/top-7-mifov-v-rabote-qa-testirovshhika/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="106" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20106%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Топ 7 мифов в работе QA-тестировщика" decoding="async" data-srcset="https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T212925.420-150x106.jpg 150w, https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T212925.420-300x212.jpg 300w, https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T212925.420-1024x724.jpg 1024w, https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T212925.420-768x543.jpg 768w, https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T212925.420-1536x1086.jpg 1536w" data-src="https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T212925.420-150x106.jpg" data-sizes="(max-width: 150px) 100vw, 150px" title="Топ 7 мифов в работе QA-тестировщика" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/top-7-mifov-v-rabote-qa-testirovshhika/" data-wpel-link="internal">Топ 7 мифов в работе QA-тестировщика</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/top-7-mifov-v-rabote-qa-testirovshhika/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2024-07-11T18:22:47+00:00">11 июля, 2024</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">7 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/sql-opisanie-i-osnovy-raboty/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/sql-opisanie-i-osnovy-raboty/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="106" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20106%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="SQL: описание и основы работы" decoding="async" data-srcset="https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T225253.909-150x106.jpg 150w, https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T225253.909-300x212.jpg 300w, https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T225253.909-1024x724.jpg 1024w, https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T225253.909-768x543.jpg 768w, https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T225253.909-1536x1086.jpg 1536w" data-src="https://otus.ru/journal/wp-content/uploads/2024/07/oj-1080x720-2024-07-11T225253.909-150x106.jpg" data-sizes="(max-width: 150px) 100vw, 150px" title="SQL: описание и основы работы" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/sql-opisanie-i-osnovy-raboty/" data-wpel-link="internal">SQL: описание и основы работы</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/sql-opisanie-i-osnovy-raboty/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2024-07-11T19:53:18+00:00">11 июля, 2024</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">9 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"0"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"0","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/xml-i-ego-osobennosti\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Tue, 10 Mar 2026 15:45:44 GMT -->