Открыть сервис

Расширяемый язык разметки

Расширяемый язык разметки (англ. eXtensible Markup Language, XML) — это текстовый формат для представления структурированных данных, основанный на синтаксисе тегов и атрибутов. XML не является языком программирования, а представляет собой метаязык, то есть средство для создания других языков разметки с произвольной, определяемой пользователем структурой. Ключевой особенностью XML является строгое соблюдение синтаксических правил (well-formedness) и возможность проверки соответствия документа заранее заданной схеме (validity). Стандарт разработан Консорциумом Всемирной паутины (W3C) и впервые опубликован в 1998 году как упрощённая версия более сложного стандарта SGML (Standard Generalized Markup Language).

История

Предпосылки и создание

К середине 1990-х годов язык SGML, разработанный в 1980-х годах, доказал свою мощь для описания сложных документов (например, технической документации и авиационных руководств), но оставался чрезвычайно сложным для реализации и повсеместного использования в Интернете. Одновременно с этим язык HTML, также являющийся приложением SGML, достиг огромной популярности, но обладал фиксированным набором тегов и не позволял описывать произвольные структуры данных.

В 1996 году под руководством Джона Боузэка (Jon Bosak) из Sun Microsystems началась работа над новым языком, который сочетал бы простоту HTML с гибкостью SGML. Рабочая группа W3C по XML (XML Working Group) поставила цель создать формат, пригодный для использования в Вебе, но не зависящий от платформы и легко обрабатываемый программно. Первая версия спецификации, XML 1.0, стала рекомендацией W3C 10 февраля 1998 года.

Развитие и версии

Основные вехи развития XML включают:

Синтаксис и структура

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

Пролог

Пролог обычно включает XML-декларацию, которая указывает версию XML и кодировку символов: ``xml <?xml version="1.0" encoding="UTF-8"?> `` Также в прологе могут находиться инструкции по обработке (processing instructions) и объявления типа документа (DOCTYPE), ссылающиеся на DTD.

Элементы и атрибуты

Основной строительный блок XML — элемент. Каждый элемент имеет имя, может содержать текст, другие элементы или быть пустым. Синтаксис строго регламентирован:

Атрибуты задаются в открывающем теге в виде пар «имя="значение"»: ``xml <book id="123" lang="ru">...</book> ``

Правила корректности (well-formedness)

Документ считается синтаксически корректным (well-formed), если он соответствует следующим правилам:

  1. Есть ровно один корневой элемент.
  2. Все элементы правильно вложены.
  3. Все открывающие теги имеют соответствующие закрывающие (или используются пустые элементы).
  4. Значения атрибутов заключены в кавычки (одинарные или двойные).
  5. Имена элементов и атрибутов состоят из допустимых символов.

Специальные символы

Для представления символов, имеющих специальное значение в XML, используются предопределённые сущности:

Для произвольных символов можно использовать числовые ссылки (например, &#160; для неразрывного пробела).

Схемы и проверка валидности

Документ, соответствующий определённой схеме, называется валидным (valid). Схема описывает, какие элементы и атрибуты могут появляться в документе, в каком порядке и с какими типами данных. Основные виды схем:

DTD (Document Type Definition)

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

XML Schema (XSD)

XML Schema Definition (XSD) — более современный и мощный стандарт. XSD сам написан на XML и поддерживает:

RELAX NG

RELAX NG — более простой и гибкий язык схем, также основанный на XML. Он использует регулярные выражения для описания структуры и считается более читаемым, чем XSD.

Применение

XML нашёл широкое применение в различных областях информационных технологий.

Форматы данных и обмена

XML стал основой для множества открытых и проприетарных форматов:

Конфигурационные файлы

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

Базы данных и обмен данными

XML используется для хранения и передачи данных между системами. Существуют XML-ориентированные базы данных (например, eXist-db, BaseX), которые хранят документы в нативном виде. Реляционные базы данных (Oracle, PostgreSQL, Microsoft SQL Server) поддерживают тип данных XML и функции для его обработки.

Промышленность и наука

Преимущества и недостатки

Преимущества

Недостатки

Сравнение с другими форматами

ХарактеристикаXMLJSONYAML
СинтаксисТегиКлюч-значениеОтступы
ЧитаемостьСредняяВысокаяВысокая
Размер файлаБольшойМалыйМалый
Типы данныхТолько строки (без схемы)Числа, строки, массивы, объектыЧисла, строки, массивы, объекты
СхемыDTD, XSD, RELAX NGJSON SchemaОтсутствует (часто)
КомментарииДаНетДа
Пространства имёнДаНетНет

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →